Я намагаюся створити гру з ньютонівською фізикою.
Перш ніж прочитати решту цього, це моє головне питання, на яке я намагаюся знайти відповідь:
- Я продовжую отримувати помилку, яка з’являється у вікні після того, як я спробую запустити свій код. Яку бібліотеку чи DLL мені не вистачає?
У мене є яблуко, апельсин і олівець. Я читав більшу частину документації з двигуном фізики кулі, але я просто не можу змусити яблуко поводитись як папірець (2d-ish). Фізичні двигуни Box2d і подібні - це не те, що я хочу. Я не люблю коробки в реальному житті, не кажучи вже про кіберсвіти.
Я хочу, щоб яблуко пливе до землі, наче хитаючись туди-сюди, як би папірець. Цей сайт дав корисну інформацію, яку я інтегрував у свій код: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Please-HELP !! -Simulating-paper-floating-to ground
У мене є така ідея для гри, де ти змушуєш предмети вести себе як інші типи об’єктів, але мої імітації гри просто не працюють.
Я пережив занадто багато видів яблук, щоб порахувати, і жоден з них навіть не наблизився. Я намагався шукати інших людей, які спробували подібні речі (використовуючи googles на зразок http://lmgtfy.com/?q=simluating+game+apples+in+real+life ), але яблука ніколи не повертаються!
Таким чином, я думаю, що я заходжу сюди на нову територію (не хвилюйтесь, я відкрив джерело своїх методів), і тому речі просто не працюють для мене.
Я спробував програмувати різні види яблук, але, можливо, мені потрібне кібер-яблуко? Я не знаю, де можна взяти одну з таких, можливо, у такому місці: http://cyberapples.com/ Хоча цей сайт поки що не працює - це коли-небудь говорити про якийсь сміттєвий смітник чи щось таке. Якісь поради щодо цього також?
Це частина мого коду, яка стосується яблука, що імітує ігрові речі:
///... /* 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!();
- це бунт. Є щось про цю посаду - амбітний, розгублений, приречений ...