J'essaie de créer un jeu avec la physique newtonienne.
Avant de lire le reste de ceci, c'est ma principale question à laquelle j'essaie de trouver une réponse:
- Je continue à recevoir une erreur qui apparaît dans une fenêtre après avoir essayé et exécuté mon code. Quelle bibliothèque ou dll me manque?
J'ai une pomme, une orange et un crayon. J'ai lu la plupart de la documentation avec le moteur de physique des balles, mais je n'arrive pas à faire en sorte que la pomme se comporte comme un morceau de papier (2d-ish). Les moteurs physiques Box2d et autres ne sont pas ce que je veux. Je n'aime pas les boîtes dans la vraie vie, et encore moins dans les cyber-mondes.
Je veux que la pomme flotte jusqu'au sol, se balançant d'avant en arrière comme le ferait un morceau de papier. Ce site a donné quelques informations utiles que j'ai intégrées dans mon code: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Please-HELP !! -Simulating-paper-floating-to-ground
J'ai cette idée d'un jeu où vous faites en sorte que les objets se comportent comme d'autres types d'objets, mais mes simulations du jeu ne fonctionnent tout simplement pas.
J'ai traversé trop de types de pommes pour les compter, et aucune d'entre elles ne s'en approche. J'ai essayé de chercher d'autres personnes qui ont essayé des choses similaires (en utilisant des googles comme http://lmgtfy.com/?q=simluating+game+apples+in+real+life ), mais aucune pomme n'est jamais retournée!
Ainsi, je pense que je vais dans un nouveau territoire ici (ne vous inquiétez pas, je vais ouvrir mes techniques), et c'est pourquoi les choses ne fonctionnent tout simplement pas pour moi.
J'ai essayé de programmer différents types de pommes, mais j'ai peut-être besoin d'une cyber pomme? Je ne sais pas où en trouver un, peut-être dans un endroit comme celui-ci: http://cyberapples.com/ Ce site est en panne pour le moment - il ne parle que d'une poubelle cgi ou quelque chose du genre . Des conseils à ce sujet également?
C'est la partie de mon code qui traite de la pomme simulant un truc de jeu:
///... /* 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!();
Comme vous pouvez le voir, j'ai les concepts de base, et je suis très descriptif avec mes noms de variable et les attributs d'objet. J'ai configuré le monde de manière très succincte et claire, bien que j'aie simplifié le monde dans le jeu par rapport à la cuisine réelle.
Je pense que le problème lie le paper_2d_behaving_apple
à la actual_existing_apple_on_myCounter
pomme, puis le transfère à celui en l'air ( apple_now_inAir
);
Quoi qu'il en soit, et peu importe à quel point je formate tout, rien ne semble se produire. Ci-dessous est une image de la façon dont je lance le programme:
Quelqu'un a-t-il déjà rencontré cela? Merci d'avance. Je commence tout juste à programmer des jeux, ayant récemment changé de carrière, alors ne vous sentez pas mal.
Merci, Bob
apple_now_inAir.Drop!();
- est une émeute. Il y a quelque chose à propos de ce post - ambitieux, confus, condamné ...