Simulasi Game Apel - Tidak bisa berfungsi [ditutup]


11

Saya mencoba membuat game dengan fisika newton.

Sebelum Anda membaca sisanya, ini adalah pertanyaan utama saya. Saya mencoba mencari jawaban untuk:

  • Saya terus mendapatkan kesalahan yang muncul di jendela setelah saya mencoba dan menjalankan kode saya. Pustaka atau dll apa yang saya lewatkan?

Saya punya apel, jeruk, dan pensil. Saya sudah membaca sebagian besar dokumentasi dengan mesin fisika peluru, tapi sepertinya saya tidak bisa membuat apel berperilaku seperti selembar kertas (2d-ish). Mesin fisika Box2d dan semacamnya bukan yang saya inginkan. Saya tidak suka kotak di kehidupan nyata, apalagi di dunia cyber.

Saya ingin apel melayang ke tanah, jenis berayun bolak-balik seperti selembar kertas. Situs ini memberikan beberapa info berguna yang saya integrasikan ke dalam kode saya: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Please-HELP !! -Simulating-paper-floating-to-ground

Saya memiliki ide ini untuk gim di mana Anda membuat objek berperilaku seperti jenis objek lainnya, tetapi simulasi gim saya tidak berfungsi.

Saya telah melewati terlalu banyak jenis apel untuk dihitung, dan tidak ada satupun yang mendekati. Saya sudah mencoba mencari orang lain yang telah mencoba hal serupa, (menggunakan googles seperti http://lmgtfy.com/?q=simluating+game+apples+in+real+life ), tetapi tidak ada apel yang pernah dikembalikan!

Jadi, saya pikir saya akan pergi ke wilayah baru di sini (jangan khawatir, saya akan membuka sumber teknik saya), dan itulah sebabnya hal-hal tidak bekerja untuk saya.

Saya sudah mencoba memprogram berbagai jenis apel, tapi mungkin saya perlu apel cyber? Saya tidak tahu di mana mendapatkan salah satu dari itu, mungkin di tempat seperti ini: http://cyberapples.com/ Situs itu sedang turun untuk saat ini - itu hanya berbicara tentang beberapa tempat sampah cgi atau sesuatu. Ada tips tentang ini juga?

Ini adalah bagian dari kode saya yang berkaitan dengan apel yang mensimulasikan permainan:

///... /* 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!();

Seperti yang Anda lihat, konsep dasar saya turun, dan saya sangat deskriptif dengan nama variabel dan atribut objek. Saya mengatur dunia dengan sangat ringkas dan jelas, meskipun saya telah menyederhanakan dunia dalam game dibandingkan dengan dapur sebenarnya.

Saya pikir masalah ini mengikat paper_2d_behaving_appleke actual_existing_apple_on_myCounterapel, dan kemudian mentransfer bahwa untuk satu di udara ( apple_now_inAir);

Apa pun masalahnya, dan betapa pun baiknya saya memformat semuanya, sepertinya tidak ada yang terjadi. Di bawah ini adalah gambar bagaimana saya menjalankan program:

masukkan deskripsi gambar di sini

Adakah yang pernah mengalami ini sebelumnya? Terima kasih sebelumnya. Saya baru saja memulai dengan permainan pemrograman, setelah baru saja berganti karier, jadi jangan merasa buruk.

Terima kasih, Bob


2
Anda terlalu banyak bertanya di sini. Bagian tentang ketidakcocokan harus ditanyakan pada stackexchange karena tidak benar-benar terkait dengan gamedev. Bagian apel harus ditanyakan di sini sebagai pertanyaannya sendiri. Coba juga untuk menghapus beberapa teks yang tidak relevan tentang tidak memiliki cukup perwakilan dan hal-hal cerita pribadi lainnya yang tidak membantu orang menjawab pertanyaan.
AttackingHobo

3
"Mengapa kode saya tidak bisa berfungsi?" cukup banyak meringkas setiap pertanyaan pemrograman yang pernah ada. Pikirkan tentang apa yang ingin Anda ketahui, dan kemudian edit pertanyaan yang sesuai.
jcora

13
Ini sekarang pertanyaan favorit saya di gamedev.SE.
Jimmy

6
Saya mulai mengedit ini. Lalu aku sadar itu pasti trolling ("cyber apple"?). Jika ini tidak trolling, Anda benar-benar harus mulai dengan sesuatu yang sederhana.
MichaelHouse

2
Ini sangat lucu. Rubyism - apple_now_inAir.Drop!();- adalah kerusuhan. Ada sesuatu tentang pos ini - ambisius, bingung, hancur ...
solidsnack

Jawaban:


34

Masalah utama yang saya lihat di sini adalah bahwa Anda menggunakan sistem Windows. OS ini berfungsi paling baik untuk mensimulasikan hal-hal seperti jendela dan pintu (non-organik). Anda perlu beralih ke komputer Macintosh , ini luar biasa dengan simulasi apel. Versi terbaru dari OS tidak hanya mensimulasikan apel, ia memiliki dukungan tambahan untuk kucing besar, terutama singa gunung. Namun, jika Anda ingin terus menggunakan sistem Windows Anda, Anda perlu melakukan beberapa perubahan. Pertama mengunduh Visual Studio , penggunaan utamanya adalah untuk memvisualisasikan kode. Dalam kasus Anda, ini akan memvisualisasikan apel Anda.

Selanjutnya Anda perlu menanam kode pohon biner untuk membuat apel Anda matang dengan baik. Pastikan untuk menambahkan banyak daun agar pohon tumbuh kuat (juga pastikan Anda memberikannya akar yang besar). Untuk menguji kematangan apel, Anda dapat mengambil satu byte dari satu dan melewatkan bit-bit melalui tasteTest()fungsi. Sekarang, Anda punya apel! Tapi, kamu bilang kamu ingin mereka seperti kertas kan? Anda ingin mem-port-nya ke file datar untuk mencapai efek itu. Jangan gunakan database untuk menyimpan apel, mereka tidak akan cukup rata.

Akhirnya, untuk membuat apel melayang, Anda kehilangan satu langkah penting dalam kode Anda! Anda lupa menambahkan:

paper_2d_behaving_apple.hasGravity = true;

Ini kesalahan noob, tapi tidak apa-apa. Akhirnya, pastikan Anda meletakkan apel di bagian atas layar, jadi ada tempat untuk jatuh. Dan Jimmy menyarankan, Anda juga dapat membalikkan monitor jika apel berada di sisi yang salah, karena Anda baru memulai, ini kemungkinan akan terjadi.

Sebagai bonus tambahan, karena Anda menggunakan Windows, jika Anda ingin membuat bagan pai apel di Microsoft Excel, Anda dapat dengan mudah mensimulasikan jendela untuk mendinginkannya.


Atau ada cara yang jauh lebih mudah untuk melakukan ini jika Anda ingin menghabiskan sedikit uang.

Ada perangkat yang disebut ENCOM Digitizing Molecular Laser. Saya pernah melihatnya digunakan untuk mendigitalkan apel sebelumnya, dan saya pikir itu akan berguna bagi Anda. Anda bahkan tidak perlu mengetikkan semua variabel itu, pemindai akan melakukannya untuk Anda. Ini dia sedang beraksi:

masukkan deskripsi gambar di sini


5
Mungkin membingungkan Anda, tetapi saya memahaminya. Komputer saya yang punya masalah, itulah sebabnya saya berpikir saya kehilangan beberapa perpustakaan atau sesuatu. Saya sebenarnya sedang membaca panduan gaya pengkodean google sekarang. Semoga itu akan menyelesaikan beberapa masalah yang kalian miliki tentang gaya pengkodean saya.
Bob Flanderson

1
Anda benar, saya bingung. Saya mengubah jawaban saya.
MichaelHouse

Iya! Harap visualisasikan apel saya! Saya belum bisa melakukannya karena saya masih belum menemukan perpustakaan yang saya lewatkan
Bob Flanderson

2
Saya pikir masalah root adalah: paper_2d_behaving_apple.owner.has_wife = false; Jika punya istri maka dia akan memberitahunya apa yang salah.
David Thielen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.