Newton fizikli bir oyun yaratmaya çalışıyorum.
Bunun geri kalanını okumadan önce, bu benim asıl sorum şu cevabı bulmaya çalışıyorum:
- Kodumu çalıştırmayı denedikten sonra bir pencerede açılan bir hata alıyorum. Hangi kütüphane veya dll eksik?
Bir elmam, bir portakalım ve bir kalemim var. Mermi fizik motoru ile belgelerin çoğunu okudum, ama elmanın bir kağıt parçası gibi davranmasını sağlayamıyorum (2d-ish). Box2d fizik motorları ve benim istediğim bu değil. Siber dünyalarda, gerçek hayatta kutuları sevmiyorum.
Elmanın yere yüzmesini istiyorum, bir parça kağıt gibi ileri geri sallanıyorum. Bu site koduma entegre ettiğim bazı yararlı bilgiler verdi: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Lütfen-YARDIM !! -Simüle-kağıt-kayan-yere
Nesnelerin diğer nesne türleri gibi davrandığı bir oyun için bu fikrim var, ancak oyunun simülasyonları çalışmıyor.
Saymak için çok fazla elma türünden geçtim ve hiçbiri yaklaşmadı. Benzer şeyleri deneyen diğer insanları aramayı denedim ( http://lmgtfy.com/?q=simluating+game+apples+in+real+life gibi googles kullanarak ), ancak hiçbir elma iade edilmez!
Bu yüzden, burada yeni bir bölgeye gireceğimi düşünüyorum (endişelenmeyin, tekniklerimi açacağım) ve bu yüzden işler benim için çalışmıyor.
Farklı elma türlerini programlamayı denedim, ama belki de bir siber elmaya ihtiyacım var? Bunlardan birini nereden alacağımı bilmiyorum, belki böyle bir yerde: http://cyberapples.com/ Bu site şimdilik şimdilik kapalı - sadece bazı cgi çöp kutuları ya da bir şey hakkında konuşuyor. Bu konuda da ipucu var mı?
Bu benim kod oyun elma simüle ile ilgili bir parçasıdır:
///... /* 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!();
Gördüğünüz gibi, temel kavramları aldım ve değişken isimlerim ve nesne niteliklerimle çok açıklayıcıyım. Oyunda dünyayı gerçek mutfağa göre basitleştirmeme rağmen dünyayı çok kısa ve net bir şekilde kuruyorum.
Sorunun bağlayıcıdır düşünüyorum paper_2d_behaving_apple
için actual_existing_apple_on_myCounter
elma ve sonra (havadaki birine o transfer apple_now_inAir
);
Durum ne olursa olsun ve her şeyi ne kadar iyi biçimlendirirsem de hiçbir şey olmuyor gibi görünüyor. Programı nasıl çalıştırdığımı gösteren bir resim aşağıdadır:
Daha önce kimse bununla karşılaştı mı? Şimdiden teşekkürler. Programlamaya yeni başlıyorum, yakın zamanda kariyer değiştirdim, bu yüzden üzülmeyin.
Teşekkürler Bob
apple_now_inAir.Drop!();
- bir isyandır . Bu yazı hakkında bir şeyler var - iddialı, şaşkın, mahkum ...