Я пытаюсь создать игру с ньютоновской физикой.
Прежде чем вы прочитаете остальную часть этого, это мой главный вопрос, на который я пытаюсь найти ответ:
- Я продолжаю получать сообщение об ошибке, которое появляется в окне после попытки запуска кода. Какую библиотеку или DLL мне не хватает?
У меня есть яблоко, апельсин и карандаш. Я прочитал большую часть документации с помощью движка физики пули, но я просто не могу заставить яблоко вести себя как лист бумаги (2d-ish). Физические движки Box2d и такие не то, что я хочу. Я не люблю коробки в реальной жизни, не говоря уже о кибермирах.
Я хочу, чтобы яблоко упало на землю, качаясь взад-вперед, как лист бумаги. Этот сайт дал некоторую полезную информацию, которую я интегрировал в свой код: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Please-HELP !! -Simulating-paper-float-to-ground
У меня есть идея для игры, в которой вы заставляете объекты вести себя как другие типы объектов, но мои симуляции игры просто не работают.
Я прошел через слишком много типов яблок, чтобы сосчитать, и ни одно из них даже близко не подошло. Я пытался найти других людей, которые пробовали похожие вещи (используя googles, такие как http://lmgtfy.com/?q=simluating+game+apples+in+real+life ), но яблоки никогда не возвращались!
Таким образом, я думаю, что я ухожу на новую территорию здесь (не волнуйтесь, я открою исходные тексты моих методов), и именно поэтому у меня просто ничего не получается.
Я пробовал программировать разные виды яблок, но, может быть, мне нужно кибер яблоко? Я не знаю, где взять один из них, может быть, в таком месте, как это: http://cyberapples.com/ Хотя этот сайт пока закрыт - он говорит только о каком-то мусорном ведре cgi или о чем-то подобном . Любые советы по этому вопросу?
Это часть моего кода, которая имеет дело с яблоком, имитирующим игровой материал:
///... /* 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!();
Как вы можете видеть, у меня есть основные понятия, и я очень описательно с именами моих переменных и атрибутами объекта. Я настроил мир очень кратко и четко, хотя я упростил мир в игре по сравнению с реальной кухней.
Я думаю, что проблема заключается в том, paper_2d_behaving_apple
чтобы actual_existing_apple_on_myCounter
привязать яблоко к яблоку, а затем перенести его в воздух ( apple_now_inAir
);
Как бы то ни было, и независимо от того, насколько хорошо я все форматирую, похоже, ничего не происходит. Ниже изображение того, как я запускаю программу:
Кто-нибудь сталкивался с этим раньше? Заранее спасибо. Я только начинаю с программирования игр, недавно сменив карьеру, так что не чувствую себя плохо.
Спасибо боб
apple_now_inAir.Drop!();
это бунт. В этом посте есть что-то амбициозное, растерянное, обреченное ...