คำถามติดแท็ก physics

เกี่ยวข้องกับการเคลื่อนที่ของวัตถุผ่านอวกาศและเวลา รวมถึงแนวคิดต่าง ๆ เช่นการเร่งความเร็ว (แรงขับและแรงโน้มถ่วง) มวลการตอบสนองการชนแรงเสียดทานและอื่น ๆ

2
เอนจิ้นฟิสิกส์ที่สามารถรองรับตัวดึงดูดได้หลายตัว?
ฉันรวบรวมเกมที่จะเล่นเป็นส่วนใหญ่ด้วยแรงโน้มถ่วงสามมิติ โดยที่ฉันหมายถึงดาวเคราะห์ / ดวงดาว / ดวงจันทร์หลายตัวประพฤติตามความเป็นจริงและการวางแผนเส้นทางและการทำนายเส้นทางในสนามโน้มถ่วง ฉันได้ดูเครื่องยนต์ฟิสิกส์หลากหลายชนิดเช่นBullet , tokamakหรือNewtonแต่ดูเหมือนว่าไม่มีพวกมันที่เหมาะสมเพราะฉันจะต้องเขียนกลไกแรงโน้มถ่วงอีกครั้งในกรอบของมัน คุณรู้หรือไม่ว่าเครื่องยนต์ฟิสิกส์ที่มีความสามารถในการจัดการกับวัตถุต่าง ๆ ดึงดูดกันได้หรือไม่? ฉันไม่ต้องการการจัดการ Scenegraph หรือการเรนเดอร์แค่ฟิสิกส์หลัก (การตรวจจับการชนจะเป็นโบนัสเช่นเดียวกับการเปลี่ยนแปลงของร่างกายที่แข็งแกร่ง) พื้นหลังของฉันอยู่ในวิชาฟิสิกส์ดังนั้นฉันจะสามารถเขียนเครื่องยนต์ที่ใช้การรวม Verlet หรือ RK4 (หรือแม้แต่การรวมออยเลอร์ถ้าฉันต้อง) แต่ฉันค่อนข้างจะปรับตัวออกจากชั้นวางของโซลูชั่น [แก้ไข]:มีแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการจำลองทางฟิสิกส์ของปัญหาร่างกายแบบออนไลน์และในสแต็คโอเวอร์โฟลว์

4
การจำลองทางฟิสิกส์ฝั่งเซิร์ฟเวอร์ที่มีผู้เล่นหลายร้อยคน
ขณะนี้ฉันกำลังทำงานในเกมแนวฟิสิกส์ที่ผู้เล่นคนเดียวซึ่งฉันต้องการให้ฟิสิกส์เป็นฝั่งเซิร์ฟเวอร์จำลอง นี่เป็นเพราะเกมจะมีกระดานผู้นำผู้เล่นที่ต่อเนื่องและอื่น ๆ และฉันต้องการป้องกันการโกงใด ๆ - โดยทั่วไปเป็นสถาปัตยกรรมไคลเอนต์ - เซิร์ฟเวอร์ที่แท้จริงไคลเอนต์ "โง่" และแสดงเฉพาะสิ่งที่เซิร์ฟเวอร์ต้องการให้คุณแสดง อย่างไรก็ตามปัญหาคือเกมนี้มีผู้เล่นหลายร้อยคน (อาจจะเป็นพันคน) ในเวลาเดียวกัน เรื่องนี้เกี่ยวข้องกับฉันเพราะมันน่าจะทำให้พลังในการประมวลผลของเซิร์ฟเวอร์ลดลงถ้าฉันต้องทำและรักษาสถานะเป็นร้อย ๆ รายการในเวลาเดียวกัน ฉันจะไม่มีปัญหาในการย้ายการจำลองฟิสิกส์ทั้งหมดไปยังฝั่งไคลเอ็นต์ แต่จากนั้นฉันจะต้องมีวิธีการตรวจสอบจริง ๆ ถ้าผลลัพธ์ของการจำลองไคลเอ็นต์นั้นถูกต้อง อย่างไรก็ตามฉันไม่สามารถหาวิธี ฉันคิดเกี่ยวกับการใช้ฝั่งเซิร์ฟเวอร์จำลองนาน ๆ ครั้งเพื่อตรวจสอบว่าไคลเอนต์ยังคงเล่นอยู่ แต่ฉันต้องการให้เซิร์ฟเวอร์มีความเครียดน้อยที่สุดเท่าที่จะทำได้ วิชาฟิสิกส์จะมีความซับซ้อนเท่ากับการสาธิต GDC 2011 โดย Glenn Fiedlerซึ่งอาจจะง่ายกว่า อย่างไรก็ตามฉากที่มีการชนกันของร่างกายที่แข็งกระด้างจะอยู่ในฉากเดียวและพวกมันจะมองเห็นได้ในครั้งเดียว ฉันมีความยากลำบากในการได้รับคำตอบของกรณีนี้เนื่องจากทรัพยากรส่วนใหญ่บนเว็บ - อีกครั้งเว็บไซต์ Glenn Fiedlers เป็นเว็บไซต์ที่ยอดเยี่ยม - พูดถึงฟิสิกส์เครือข่ายขนาดเล็ก (เช่น FPS ที่มีผู้เล่น 30 คนเช่น Halo) คำแนะนำเว็บไซต์เอกสารหรือสิ่งที่ชอบในเรื่องใด ๆ จะได้รับการชื่นชมมาก …

2
วิธีการแก้ไขการสอดแทรกของสองชนร่างกาย
ฉันใช้เครื่องมือทางฟิสิกส์ของเกม 3 มิติที่เรียบง่าย ฉันมีการตรวจจับการชนกันที่เหมาะสมแล้วตอนนี้ฉันกำลังพยายามหาส่วนการตอบสนองการชน ฉันใช้วิธีการตามแรงกระตุ้นเพื่อคำนวณความเร็วหลังการชน วิธีนี้ใช้ได้ผลดีทีเดียว แต่ก็ไม่ได้ป้องกันการแทรกซึมของร่างกายอย่างสมบูรณ์ ดังนั้นฉันจึงมีโค้ดเพิ่มเติมเพื่อแก้ไขการแทรกซึม ขณะนี้ฉันเพิ่งย้ายร่างกายไปตามการสัมผัสปกติโดยครึ่งหนึ่งของความลึกการเจาะ - ร่างกายแรกในทิศทางของการติดต่อปกติร่างกายที่สองในทิศทางตรงกันข้าม นี่เป็นเรื่องปกติเวลาส่วนใหญ่แล้ว แต่ก็มีผลที่ไม่พึงประสงค์บางอย่าง ตัวอย่างเช่นลองนึกภาพทางเดินแคบ ๆ และวัตถุเคลื่อนที่ผ่านมัน หากวัตถุชนกับผนังด้านหนึ่งของทางเดินความละเอียดการเจาะจะย้ายไปยังผนังฝั่งตรงข้ามจากนั้นในเฟรมถัดไปกลับเข้าไปในกำแพงแรกและอื่น ๆ ผลที่ได้คือวัตถุสั่นสะเทือนได้เร็วมากระหว่างผนังซึ่งไม่สวย ดังนั้นคำถามของฉันคือว่ามีวิธีที่ดีกว่าในการแก้ไขการเจาะหรือไม่ อาจจะไม่ย้ายร่างกายเพียงแค่ปรับความเร็วของพวกเขา (นอกเหนือจากการคำนวณแบบอิมพัลส์) ดังนั้นพวกเขาจึงหยุดเคลื่อนที่ไปหากันและกัน ฉันแค่เดาที่นี่ ความคิดใด ๆ

3
ปูกระเบื้องฟิสิกส์โดยใช้ Farseer
ฉันมีปัญหากับ Farseer Physics Engine ซึ่งในสภาพแวดล้อมที่มีการปูกระเบื้องวัตถุของฉันจะโต้ตอบกับมุมของวัตถุอื่น ๆ ในบางครั้งแม้ว่าวัตถุเหล่านั้นจะจัดเรียงอย่างสมบูรณ์แบบ ฉันได้อ่านเกี่ยวกับผู้คนที่แนะนำให้คุณคำนวณและสร้างวัตถุที่ใหญ่กว่าหนึ่งโดยใช้ Marching Squares หรือสิ่งที่คล้ายกัน อย่างไรก็ตามนี่ไม่ใช่ตัวเลือกเนื่องจากฉันต้องการให้แต่ละกระเบื้องมีคุณสมบัติทางกายภาพที่แตกต่างกันเช่นความเสียดทานและการซ่อมแซมที่แตกต่างกัน คำถามของฉันคืออะไรเป็นสาเหตุของมันคือมันลอยประเด็นความแม่นยำหรืออย่างอื่น? และมีวิธีแก้ไขหรือไม่โดยไม่ทำลายทั้งฟิสิกส์ของเครื่องยนต์?

3
วิธีการคำนวณความเร็วลดลงและเร่งความเร็ว?
ฉันกำลังคิดที่จะสร้างเกมแลนเดอร์ที่ซึ่งคุณสามารถควบคุมยานอวกาศและต้องลงจอดโดยไม่ชน สูตรง่าย ๆ ในการคำนวณความเร็วของการตกลงหรือการเร่งด้วยความสัมพันธ์กับเวลาทำงานของเครื่องยนต์เป็นช่วงเวลาคืออะไร?
9 physics 

3
เอนจินฟิสิกส์ 2 มิติแบบเบา ๆ ?
สวัสดีดังนั้นฉันเพิ่งได้เรียนรู้ห้องสมุดกราฟิก SFML และต้องการใช้หรือสร้างระบบฟิสิกส์ 2D ที่ไม่แข็งกระด้างเพื่อใช้กับมัน ฉันมีสามคำถาม: ความหมายของร่างกายที่แข็งแกร่งใน Box2d คือ ก้อนของสสารที่แข็งแรงมากจนระยะห่างระหว่างสสารสองชิ้นใด ๆ บนก้อนนั้นคงที่อย่างสมบูรณ์ และนี่คือสิ่งที่ฉันไม่ต้องการอย่างที่ฉันต้องการทำให้ร่างกายที่ยืดหยุ่น, ผิดปกติ, เปราะบางและเชื่อมต่อใหม่ 1. มีเครื่องยนต์ฟิสิกส์แบบ 2D ธรรมดา ๆ แต่มีคุณสมบัติแบบนี้หรือไม่? ฟรีหรือโอเพนซอร์สดีกว่า 2. ถ้าไม่สามารถใช้ box2d และสร้างมันเพื่อสร้างมันได้แม้ว่ามันจะขึ้นอยู่กับร่างกายที่แข็งทื่อหรือไม่? 3. ในที่สุดหากมีเครื่องมือฟิสิกส์อย่างง่ายเช่นนี้ฉันควรผ่านการสร้างใหม่หรือไม่เพื่อประสบการณ์และเพื่อเพิ่มพูนความรู้คณิตศาสตร์ฟิสิกส์? ฉันรู้สึกว่ามันจะช่วยได้ถ้าฉันต้องการแก้ไขโค้ดของเอ็นจิ้นที่มีอยู่หรือสร้างเกมด้วยฟิสิกส์ที่มีเอกลักษณ์ ขอบคุณ!
9 c++  physics 

5
ฉันจะสร้างวงสวิงในเกม platformer ได้อย่างไร?
ฉันกำลังพัฒนาเกมที่ผู้เล่นสามารถใช้เชือกในการแกว่ง (เช่นเดียวกับที่ Spiderman หรือBionic Commandoทำ) และฉันมีปัญหาในการใช้พฤติกรรมนี้ ทุกคนสามารถช่วยฉันได้อย่างไรฉันหมายถึงสูตรฟิสิกส์และอื่น ๆ จนถึงตอนนี้ฉันมี 3 แนวคิด มีใครใช้สปริง แต่ก็กินเวลาเยอะและบางครั้งก็น่ากลัว อีกสองคนกำลังพยายามคำนวณขั้นตอนต่อไป (อันหนึ่งผ่านการคำนวณพลังงานที่มีศักยภาพและอีกอันผ่านการคำนวณแรงบิด) และทั้งคู่ก็เกือบจะชนกันทุกครั้งที่นักแสดงพยายามแกว่ง นี่คือรหัสที่ฉันเขียนเพื่อคำนวณแรงบิด: float dx = Runner->getPosition().x - ancher.x; float dy = Runner->getPosition().y - ancher.y; float t0 = atan2(dy,dx); //my current angle float k = ((dy) *vx - (dx) * vy) / (dx * dx+dy * …

2
ฟิสิกส์สำหรับ platformer 2.5D ด้วยเครื่องบินที่โค้ง
ฉันกำลังสร้าง platformer 2.5D ใน XNA ซึ่งใช้โมเดล 3 มิติที่ จำกัด การเดินทางไปตามระนาบ 2D (เช่นเดียวกับTrine ) อย่างไรก็ตามเพื่อให้สิ่งต่าง ๆ มีเล่ห์เหลี่ยมฉันต้องการให้เครื่องบิน 2 มิติสามารถโค้งได้ พิจารณาการเล่นซ้ำของ Klonoa นี้ (คุณเพียงแค่ต้องดูเป็นเวลา 10 วินาที): แม้ว่าผู้เล่นจะอยู่ในระนาบ 2D แต่เครื่องบินนั้นสามารถล้อมรอบด้านข้างของภูเขาได้อย่างมีประสิทธิภาพช่วยให้ผู้เล่นเดินทางผ่านอวกาศ 3 มิติ - ตลอดเวลา จำกัด กับระนาบ 2D ปกติของ platformer ฟิสิกส์ควรเข้าหาในเกมเช่นนี้อย่างไร? ฉันควรใช้เอนจิ้นฟิสิกส์แบบ 2D หรือเอนจินฟิสิกส์แบบสามมิติ มีเครื่องมือฟิสิกส์ใด ๆ ที่ออกแบบโดยคำนึงถึงสถานการณ์นี้จริงหรือไม่? สำหรับสิ่งใดก็ตามที่ไม่ได้ออกแบบมาสำหรับสิ่งนี้: จำเป็นต้องมีแฮ็กหรือลูกเล่นอะไรเพื่อให้เครื่องยนต์ฟิสิกส์ร่วมมือกับฉัน
9 xna  3d  physics  2.5d 

1
การตรวจจับการชนขั้นพื้นฐาน Box2D
ฉันไม่เข้าใจวิธีฟังการชนใน Cocos2D / Box2D บอกว่าฉันมีร่างวงกลมสองวง หนึ่งมีขนาดเล็กมากและอื่น ๆ ที่ค่อนข้างใหญ่ เมื่อวงกลมเล็ก ๆ ชนกันด้วยวงกลมใหญ่ฉันอยากจะทำอะไรสักอย่าง (เล่นเสียง) วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ขณะนี้ฉันกำลังทดลองใช้วิธีทดสอบ TestPoint สิ่งที่ต้องการ: if(largeCircleBody->GetFixtureList()->TestPoint(smallCirclePoint)){ // collision happened... // play sound etc }

2
จำลองวัตถุที่ลอยอยู่บนน้ำ
ฉันกำลังทำเกมตกปลาบนลงล่าง ฉันต้องการใช้งานฟิสิกส์และการตรวจจับการชนเกี่ยวกับเรือที่แล่นไปรอบ ๆ ทะเลสาบ ฉันต้องการที่จะใช้แรงผลักดันจากมอเตอร์หลักหรือมอเตอร์หมุนรอบผลของลมบนวัตถุและการลากน้ำบนวัตถุ ฉันได้ดูเครื่องยนต์ฟิสิกส์ของฟาร์เซ่อร์ แต่ไม่มีประสบการณ์ใด ๆ ในการใช้เครื่องมือฟิสิกส์ฉันไม่แน่ใจว่าฟาร์เซ่อร์เหมาะสำหรับสิ่งประเภทนี้ (การสาธิตส่วนใหญ่ดูเหมือนจะใช้แรงโน้มถ่วงกับแนวตั้ง รุ่นประเภทบน / ล่าง) เครื่องยนต์ Farseer จะเหมาะสมหรือไม่? หรือเครื่องยนต์ที่แตกต่างจะเหมาะกว่านี้หรือไม่

6
เป็นไปได้ไหมที่จะมียานเกราะที่มีฟิสิกส์อย่าง GTA ในเกม MMO? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน9 เดือนที่ผ่านมา ฉันไม่เคยเห็นเกม MMO ใด ๆ ที่มีรถถังที่มีฟิสิกส์สมจริงและสามารถบรรลุความเร็วสูงได้ทำไม? เป็นเพราะข้อ จำกัด แบนด์วิดท์เครือข่ายหรือไม่ Second Life มียานพาหนะ แต่ฟิสิกส์นั้นแย่และความเร็วสูงสุดนั้นน่าสมเพช
9 physics  mmo 

1
ใครจะรู้วิธีนำภาพเคลื่อนไหว 2D ไปใช้ในเกม
ฉันสงสัยว่าพวกเขาจะนำแอนิเมชั่นของกระดูกไปใช้ในเกมแฟลชได้อย่างไรhttp://www.foddy.net/athletics.swfคุณรู้จักวัสดุการศึกษาใดบ้างที่ฉันสามารถเริ่มเรียนรู้ระบบกระดูก 2D ได้ ฉันเพิ่งใช้ระบบอวตารโดยเขียนบิตแมปหลายเฟรมในแต่ละเฟรม (คล้ายกับเรื่องราวของต้นเมเปิล) แต่มีบางคนบอกฉันว่าระบบกระดูกสามารถประหยัดทรัพยากรศิลปะได้มากขึ้นดังนั้นฉันต้องการเรียนรู้สิ่งนั้น

2
จะใช้การระเบิดแบบ 2d ซึ่งจะสร้างความเสียหายโดยคำนึงถึงการครอบคลุมและระยะทางอย่างไร
ฉันจะสร้างการระเบิด 2D ในลักษณะที่จะสร้างความเสียหายให้กับตัวละครที่ซ่อนอยู่ด้านหลังลังหรือฝาครอบอื่น ๆ ได้อย่างไร ความเสียหายในอุดมคติจะขึ้นอยู่กับความแข็งแรงของฝาครอบ (เช่นผนังโลหะจะป้องกันได้ดีกว่าลังไม้) ความเสียหายในอุดมคติจะลดลงตามระยะทางเช่นกัน ฉันจะใช้พอร์ตของเครื่องยนต์ฟิสิกส์ Box2D - Farseer ขอบคุณ.

4
ฉันจะทำให้ยานพาหนะเคลื่อนที่ไปยังจุดหนึ่งและหยุดได้โดยไม่ต้องแก้ไขปัญหาหรือการแกว่ง
เอาล่ะลองคิดดูว่าเรามียานพาหนะเช่นเดียวกับที่ฉันอธิบายไว้ในคำตอบของคำถามนี้ด้วยตำแหน่ง 2D ความเร็วความเร็วเชิงมุมและการลาก / แรงเสียดทาน มันสามารถเร่งความเร็วและทำลายด้วยจำนวนตัวแปร แต่ไม่หยุดตายทันทีหรือเข้าถึงความเร็วสูงสุดทันที ฉันจะทำให้มันเคลื่อนที่ไปยังจุดใดจุดหนึ่งและหยุดได้อย่างไรในเวลาที่เร็วที่สุดเท่าที่จะเป็นไปได้โดยไม่ต้องแก้ไขปัญหาหรือแกว่งไปมา ฉันกำลังคิดบางอย่างเช่น: หันไปทางตำแหน่งเป้าหมาย เร่งความเร็ว มองไปที่ 1 ขีดล่วงหน้าถามว่า "ถ้าฉันใช้เครื่องหมายขีดถัดไปฉันจะไปเกินเป้าหมายได้หรือไม่" ถ้ามันจะแหวกแนวใช้จำนวนครั้งตอนนี้ ฉันแน่ใจว่านี่เป็นปัญหาที่แก้ไขแล้วและอาจมีวิธีที่ดีกว่าวิธีที่ฉันอธิบาย
9 physics  ai 

3
การเชื่อมต่อแบบจำลองทางฟิสิกส์กับระบบพิกัดที่แตกต่างกัน
ฉันต้องการให้วัตถุเคลื่อนที่ระหว่างการจำลองทางฟิสิกส์สองรายการผ่าน "หน้าต่าง" และชนกับสิ่งที่จำลองมาทั้งสองกรณีที่พวกเขาตัดระนาบหน้าต่าง ระบบพิกัดของการจำลองไม่ได้มีจุดกำเนิดเดียวกันและอาจมีทิศทางที่แตกต่างกัน การห่อแบบจำลองให้กับตัวเองนั้นไม่จำเป็น แต่จะเป็นข้อดี ฉันจะเชื่อมต่อระบบได้อย่างมีประสิทธิภาพโดยไม่ต้องคัดลอกแต่ละวัตถุได้อย่างไร แก้ไข: การคำนวณควรแม่นยำที่สุดเท่าที่จะเป็นไปได้ดังนั้นวัตถุจะไม่ติดหากพวกเขาข้ามหน้าต่างในเวลาเดียวกันจากฝั่งตรงข้าม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.