แอปเปิ้ลเกมจำลอง - ไม่สามารถทำงานได้ [ปิด]


11

ฉันพยายามสร้างเกมด้วยฟิสิกส์นิวตัน

ก่อนที่คุณจะอ่านส่วนที่เหลือนี่เป็นคำถามหลักของฉันฉันพยายามหาคำตอบ:

  • ฉันได้รับข้อผิดพลาดที่ปรากฏขึ้นในหน้าต่างหลังจากที่ฉันพยายามเรียกใช้รหัสของฉัน ฉันหายไปในไลบรารีหรือ dll ใด

ฉันมีแอปเปิ้ลส้มและดินสอ ฉันได้อ่านเอกสารส่วนใหญ่ด้วยเครื่องมือแสดงหัวข้อย่อยทางฟิสิกส์แล้ว แต่ฉันไม่สามารถทำให้แอปเปิ้ลทำตัวเหมือนกระดาษ (2d-ish) เครื่องยนต์ฟิสิกส์ Box2d และนั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันไม่ชอบกล่องในชีวิตจริงปล่อยให้อยู่คนเดียวในโลกไซเบอร์

ฉันต้องการให้แอปเปิ้ลลอยลงไปที่พื้นแบบแกว่งไปมาเหมือนกระดาษแผ่นหนึ่ง ไซต์นี้ให้ข้อมูลที่เป็นประโยชน์บางอย่างที่ฉันรวมเข้ากับรหัสของฉัน: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854- ได้โปรดช่วยด้วย !! - จำลองกระดาษลอยไปสู่พื้น

ฉันมีความคิดนี้สำหรับเกมที่คุณทำให้วัตถุมีพฤติกรรมเหมือนกับวัตถุประเภทอื่น แต่การจำลองเกมของฉันไม่ทำงาน

ฉันผ่านแอปเปิ้ลหลายประเภทมากเกินไปที่จะนับและไม่มีใครเข้ามาเลย ฉันลองค้นหาคนอื่นที่ลองใช้สิ่งที่คล้ายกัน (ใช้ 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);

ไม่ว่ากรณีจะเป็นเช่นไรและไม่ว่าฉันจะจัดรูปแบบทุกอย่างดีแค่ไหนก็ไม่มีอะไรเกิดขึ้น ด้านล่างนี้เป็นภาพที่ฉันเรียกใช้โปรแกรม:

ป้อนคำอธิบายรูปภาพที่นี่

มีใครเคยเจอเรื่องนี้มาก่อนไหม? ขอบคุณล่วงหน้า. ฉันเพิ่งเริ่มต้นกับเกมการเขียนโปรแกรมเมื่อเร็ว ๆ นี้เปลี่ยนอาชีพดังนั้นอย่ารู้สึกแย่

ขอบคุณ Bob


2
คุณกำลังถามคำถามมากเกินไปที่นี่ ส่วนที่เกี่ยวกับความไม่ลงรอยกันควรถูกถามใน stackexchange เนื่องจากไม่เกี่ยวข้องกับ gamedev ส่วนแอปเปิ้ลควรถามที่นี่เป็นคำถามของตัวเอง นอกจากนี้พยายามลบข้อความที่ไม่เกี่ยวข้องบางอย่างเกี่ยวกับการมีตัวแทนไม่เพียงพอและเรื่องส่วนตัวอื่น ๆ ที่ไม่ได้ช่วยให้ผู้คนตอบคำถาม
AttackHobo

3
"ทำไมฉันไม่สามารถใช้รหัสได้?" สรุปคำถามการเขียนโปรแกรมทุกครั้ง คิดเกี่ยวกับสิ่งที่คุณต้องการทราบแล้วแก้ไขคำถามให้ถูกต้อง
jcora

13
ตอนนี้เป็นคำถามที่ฉันชอบใน gamedev.SE
จิมมี่

6
ฉันเริ่มแก้ไขสิ่งนี้ จากนั้นฉันก็รู้ว่าต้องหมุนรอบ ("ไซเบอร์แอปเปิ้ล"?) ถ้าไม่หลอกคุณจริงๆต้องเริ่มต้นด้วยสิ่งที่ง่าย
MichaelHouse

2
มันตลกมาก The Rubyism - apple_now_inAir.Drop!();- เป็นจลาจล มีบางอย่างเกี่ยวกับโพสต์นี้ - ทะเยอทะยาน, สับสน, ถึงวาระ ...
solidsnack

คำตอบ:


34

ปัญหาหลักที่ฉันเห็นที่นี่คือคุณกำลังใช้ระบบ Windows ระบบปฏิบัติการนี้ทำงานได้ดีที่สุดสำหรับการจำลองสิ่งต่าง ๆ เช่นหน้าต่างและประตู (ไม่ใช่ออแกนิกส์) คุณจำเป็นต้องเปลี่ยนไปใช้คอมพิวเตอร์ Macintoshสิ่งเหล่านี้มีความพิเศษด้วยแอปเปิ้ลจำลอง เวอร์ชั่นล่าสุดของระบบปฏิบัติการไม่เพียง แต่จำลองแอปเปิ้ลเท่านั้น แต่ยังมีการสนับสนุนเพิ่มเติมสำหรับแมวตัวใหญ่โดยเฉพาะสิงโตภูเขา อย่างไรก็ตามหากคุณต้องการใช้ระบบ Windows ต่อไปคุณจะต้องทำการเปลี่ยนแปลงบางอย่าง ขั้นแรกให้ดาวน์โหลดVisual Studioมันคือการใช้งานหลักสำหรับการแสดงผลรหัส ในกรณีของคุณมันจะเห็นภาพแอปเปิ้ลของคุณ

ต่อไปคุณจะต้องปลูกต้นไม้ไบนารีเพื่อให้แอปเปิ้ลของคุณเติบโตเต็มที่ ตรวจสอบให้แน่ใจว่าได้เพิ่มใบมากมายเพื่อให้ต้นไม้แข็งแรงขึ้น (เช่นกันให้แน่ใจว่าคุณให้รากใหญ่) เพื่อทดสอบความสุกของแอปเปิ้ลคุณสามารถนำไบต์ออกมาหนึ่งไบต์แล้วส่งบิตผ่านtasteTest()ฟังก์ชัน ตอนนี้คุณมีแอปเปิ้ลแล้ว! แต่คุณบอกว่าคุณต้องการให้พวกเขาเป็นเหมือนกระดาษใช่มั้ย คุณจะต้องการย้ายไฟล์ไปยังไฟล์แฟล็ตเพื่อให้ได้เอฟเฟกต์นั้น อย่าใช้ฐานข้อมูลเพื่อจัดเก็บแอปเปิ้ลพวกเขาจะไม่แบนพอ

ในที่สุดเพื่อให้แอปเปิ้ลลอยลงมาคุณก็พลาดขั้นตอนสำคัญในรหัสของคุณไป! คุณลืมที่จะเพิ่ม:

paper_2d_behaving_apple.hasGravity = true;

มันเป็นความผิดพลาด noob แต่ก็ไม่เป็นไร ในที่สุดตรวจสอบให้แน่ใจว่าคุณวางแอปเปิ้ลไว้ที่ด้านบนของหน้าจอ และแนะนำให้จิมมี่คุณสามารถพลิกจอแสดงผลกลับหัวหากแอปเปิ้ลอยู่ผิดด้านเนื่องจากคุณเพิ่งเริ่มต้นนี่น่าจะเกิดขึ้น

โบนัสด้านข้างเนื่องจากคุณใช้ Windows หากคุณต้องการสร้างแผนภูมิวงกลมของ Apple ใน Microsoft Excel คุณสามารถจำลองหน้าต่างเพื่อทำให้มันเย็นลงได้อย่างง่ายดาย


หรือมีวิธีที่ง่ายกว่ามากในการทำเช่นนี้หากคุณต้องการใช้เงินเล็กน้อย

มีอุปกรณ์ที่เรียกว่า ENCOM Digitizing Molecular Laser ฉันเคยเห็นว่ามันเคยทำให้แอปเปิ้ลเป็นดิจิทัลมาก่อนและฉันคิดว่ามันจะเป็นประโยชน์สำหรับคุณ คุณไม่จำเป็นต้องพิมพ์ตัวแปรเหล่านั้นทั้งหมด แต่สแกนเนอร์จะทำเพื่อคุณ นี่คือการกระทำ:

ป้อนคำอธิบายรูปภาพที่นี่


5
อาจทำให้คุณสับสน แต่ฉันเข้าใจ มันเป็นคอมพิวเตอร์ของฉันที่มีปัญหาซึ่งเป็นสาเหตุที่ฉันคิดว่าฉันขาดห้องสมุดหรืออะไรบางอย่าง ตอนนี้ฉันอ่านคู่มือสไตล์การเขียนโค้ด Googleแล้ว หวังว่าจะแก้ไขข้อกังวลบางอย่างที่พวกคุณมีเกี่ยวกับสไตล์การเขียนโค้ดของฉัน
Bob Flanderson

1
คุณพูดถูกฉันสับสน ฉันเปลี่ยนคำตอบ
MichaelHouse

ใช่ โปรดนึกภาพแอปเปิ้ลของฉัน! ฉันยังไม่สามารถทำเช่นนี้ได้เพราะฉันยังไม่พบห้องสมุดที่ฉันขาดหายไป
บ็อบฟลานเดอร์

2
ฉันคิดว่าปัญหารากคือ: paper_2d_behaving_apple.owner.has_wife = false; ถ้ามีภรรยาแล้วเธอจะบอกเขาว่ามีอะไรผิดปกติ
David Thielen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.