Próbuję stworzyć grę z fizyką newtonowską.
Zanim przeczytasz resztę, oto moje główne pytanie, na które staram się znaleźć odpowiedź na:
- Po próbie uruchomienia kodu pojawia się błąd, który pojawia się w oknie. Jakiej biblioteki lub biblioteki DLL brakuje?
Mam jabłko, pomarańczę i ołówek. Przeczytałem większość dokumentacji z silnikiem fizyki pocisków, ale po prostu nie wydaje mi się, aby jabłko zachowywało się jak kartka papieru (2d-ish). Silniki fizyki Box2d i takie nie są tym, czego chcę. Nie lubię pudełek w prawdziwym życiu, a tym bardziej w cyberświatach.
Chcę, żeby jabłko opadło na ziemię, jakby kołysało się w przód iw tył, jak kawałek papieru. Ta strona zawiera przydatne informacje, które zintegrowałem z moim kodem: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Please-HELP !! -Simulation-paper-floating-to-ground
Mam pomysł na grę, w której sprawiasz, że obiekty zachowują się jak inne typy obiektów, ale moje symulacje gry po prostu nie działają.
Przeszedłem zbyt wiele rodzajów jabłek, aby je policzyć, i żadne z nich nawet się nie zbliżyło. Próbowałem szukać innych osób, które próbowały podobnych rzeczy (używając Google, takich jak http://lmgtfy.com/?q=simluating+game+apples+in+real+life ), ale żadne jabłka nigdy nie są zwracane!
Dlatego myślę, że wchodzę tutaj na nowe terytorium (nie martw się, otworzę źródła moich technik) i właśnie dlatego rzeczy po prostu mi nie działają.
Próbowałem programować różne rodzaje jabłek, ale może potrzebuję cyber-jabłka? Nie wiem, skąd wziąć jeden z nich, może w takim miejscu: http://cyberapples.com/ Ta strona jest na razie niedostępna - mówi się tylko o jakimś śmietniku cgi lub czymś podobnym . Wszelkie wskazówki na ten temat?
To część mojego kodu, która zajmuje się jabłkiem symulującym grę:
///... /* setup other objects in the room and other stuff */ ...
// see http://www.orangepippin.com/apples/arlet-swiss-gourmet
// for more arlet apple details
paper_2d_behaving_apple = new ArletApple[);
/ setup the arlet apple's general characteristics
paper_2d_behaving_apple.species = SPECIES.MALUS_DOMESTICA;
paper_2d_behaving_apple.parentage = PARENTAGE.GOLDEN_DELICIOUS_X_IDARED:
paper_2d_behaving_apple.introduced = make_year(1958);
paper_2d_behaving_apple.fruitColor = COLORS.red;
paper_2d_behaving_apple.fleshCOlor = APPLE_FLESH_COLORS::CREAM;
paper_2d_behaving_apple.fruitSize = GENERIC_FRUIT_SIZES.MEDIUM;
paper_2d_behaving_apple.GoodFor.add("eating fresh");
paper_2d_behaving_apple.GoodFor.add("cooking");
paper_2d_behaving_apple.GoodFor.add("use / keeping: 3 months or more");
paper_2d_behaving_apple.GoodFor.add("ripening PERIOD: 3 months or more");
paper_2d_behaving_apple.diseaseResistances = [DISEASE_RES::SCAB, DISEASE_RES::MILDEW];
///... (I cut some of this out for brevity's sake) ...
///* setup this specific apple's characteristics
paper_2d_behaving_apple.base_color = 0xff2000;
paper_2d_behaving_apple.bumpMap = BUMP_MAP_APPLE;
paper_2d_behaving_apple.texture = TEXTURE_REALISTIC_APPLE;
paper_2d_behaving_apple.feel_texture = SMOOTH;
paper_2d_behaving_apple.has_small_orangey_stripes = TRUE;
paper_2d_behaving_apple.DoesntHaveStem = FALSE;
paper_2d_behaving_apple.juicy = true; // needs a lowercase true for some reason
paper_2d_behaving_apple.has_bugs = false; // heck no it doesn't, I only buy good apples
///... (again I cut some stuff out so this post would'n't be too long) ...
// from http://www.3dbuzz.com/vbforum/showthread.php?50854-Please-HELP!!-Simulating-paper-floating-to-ground
// "i think reactor can do this, i would try cloth witha high air resistance and a very high stifness"
paper_2d_behaving_apple.addReactor(REactor());
// got this technique from http://www.gimptutorials.eu/html/clothify_filter_gimp_gnu.html
import gimp ; GIMP::Clothify(paper_2d_behaving_apple); pass
// / 7 should be high enough - it's a big number
paper_2d_behaving_apple.reactor.stiffness = 7.0f;
paper_2d_behaving_apple.reactor.airResistance = 5.0f; // high, but not "very high"
// setup the world the apple exists in
paper_2d_behaving_apple.owner = new BobFlanderson();
paper_2d_behaving_apple.owner.appearance = APPEARANCE_AWESOME;
paper_2d_behaving_apple.owner.clothes.size = CLOTHES_SIZE_MEDIUM;
paper_2d_behaving_apple.owner.owns_house = false;
paper_2d_behaving_apple.owner.apartment.sucks = true;
paper_2d_behaving_apple.owner.has_wife = false;
paper_2d_behaving_apple.viewSpace = LIVING_ROOM;
paper_2d_behaving_apple.RESTINGon = Kitchen.GetSurfaces()->COUNTER_BY_STOVE;
////... (also cut some more out here too) ...
// transform the paper behaving apple into something viewable
view_matrix = new ViewMatrix();
view_matrix.DoTransformation(paper_2d_behaving_apple);
view_matrix.makeViewable();
World->ApplyViewMatrix(view_matrix);
paper_2d_behaving_apple.RenderToNeakedEye();
// THIS IS WHERE I'm HAVING THE TROUBLE
actual_existing_apple_on_myCounter = new ExistingApple(paper_2d_behaving_apple);
actual_existing_apple_on_myCounter.bindInRealLive();
// THIS NEVER WORKS! I DON"T KNOW HOW YOU GUYS DO THIS STUFF!
actual_existing_apple_on_myCounter.Translate(LANGUAGES::ENGLISH);
// saw the IW_FIXED on some jam making site
// (http://www.madewithmarmalade.com/devnet/documentation#/api/api/group__IwGeomCore.html)
// - that's the closest I've come to seeing anything close to what
// I'm trying to do
actual_existing_apple_on_myCounter.TranslateTo(0, 0, IW_FIXED(10.0f));
apple_now_inAir = actual_existing_apple_on_myCounter;
// I know this is C++ code, but some ruby sites were saying that it's best
// to put an exclamation point after a function that modifies a physical
// object - no luck yet for me
apple_now_inAir.Drop!();
Jak widać, mam podstawowe pojęcia i jestem bardzo opisowy z moimi nazwami zmiennych i atrybutami obiektu. Ustawiam świat bardzo zwięźle i wyraźnie, chociaż uprościłem świat w grze w porównaniu do rzeczywistej kuchni.
Myślę, że problem wiąże paper_2d_behaving_apple
się z actual_existing_apple_on_myCounter
jabłkiem, a następnie przeniesieniem go do tego w powietrzu ( apple_now_inAir
);
Cokolwiek to jest i bez względu na to, jak dobrze wszystko sformatuję, nic się nie dzieje. Poniżej znajduje się obraz tego, jak uruchamiam program:
Czy ktoś już na to wpadł? Z góry dziękuję. Zaczynam od programowania gier, ostatnio zmieniłem karierę, więc nie czuj się źle.
Dzięki, Bob
apple_now_inAir.Drop!();
- to zamieszki. Jest coś w tym poście - ambitny, zdezorientowany, skazany na porażkę ...