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

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

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

11
เกม 2D มีอนาคตไหม? [ปิด]
ตอนนี้ฉันกำลังทำงานกับเอนจิ้นฟิสิกส์แบบซอฟต์ - 2D (เนื่องจากไม่มีตัวตนอยู่ตอนนี้ -_-) แต่ฉันกังวลว่าไม่มีประโยชน์ที่จะใช้เวลาเป็นปี ๆ แม้ว่าฉันชอบที่จะทำงานกับมันฉันสงสัยว่าเครื่องมือดังกล่าวจะได้รับรายได้ใด ๆ จากการพิจารณาว่าใครก็ตามยินดีจ่ายเงินสำหรับห้องสมุดน่าจะทำงานในรูปแบบ 3 มิติ เกม 2D มีอนาคตในอุตสาหกรรมเกมหรือไม่? ฉันควรจะวางเครื่องยนต์และหาสิ่งที่มีความหมายในการทำงาน โบนัส: ฉันพยายามคิดหาวิธีที่ไม่เหมือนใครในการนำเครื่องมือฟิสิกส์มาใช้ในเกม 2 มิติโดยดูจากเกมที่มีหลายมิติ แต่ยังคงอยู่ในมุมมอง 2 มิติเช่น Paper Mario ความคิดใด ๆ

6
การนำลวดพันสายไฟ (เช่น Worms Ninja Rope) มาใช้ในเครื่องมือฟิสิกส์ 2D
เมื่อไม่นานมานี้ฉันได้ทดลองใช้เชือกฟิสิกส์และฉันพบว่าวิธีแก้ปัญหา "มาตรฐาน" - การทำเชือกจากชุดของวัตถุที่พันกันด้วยสปริงหรือข้อต่อ - ไม่น่าพอใจ โดยเฉพาะอย่างยิ่งเมื่อการแกว่งเชือกมีความเกี่ยวข้องกับการเล่นเกม ฉันไม่สนใจเกี่ยวกับความสามารถของเชือกในการห่อหุ้มหรือหย่อนยาน สำหรับการเล่นเกมสิ่งที่สำคัญคือความสามารถในการพันเชือกเพื่อล้อมรอบสภาพแวดล้อมและจากนั้นก็แกะออก มันไม่จำเป็นต้องทำตัวเหมือนเชือก - "ลวด" ซึ่งประกอบด้วยส่วนของเส้นตรงจะทำ นี่คือภาพประกอบ: สิ่งนี้คล้ายกับ "Ninja Rope" จากเกมเวิร์ม เพราะฉันใช้เครื่องมือฟิสิกส์ 2D - สภาพแวดล้อมของฉันประกอบด้วยรูปหลายเหลี่ยมนูน 2 มิติ (โดยเฉพาะฉันใช้ SAT ใน Farseer) ดังนั้นคำถามของฉันคือ: คุณจะใช้เอฟเฟกต์ "การห่อ" ได้อย่างไร ดูเหมือนว่าจะเห็นได้ชัดว่าการวางสายนั้นจะประกอบด้วยชุดของส่วนของเส้นที่ "แยก" และ "เข้าร่วม" และส่วนสุดท้าย (ใช้งานอยู่) ของบรรทัดนั้นซึ่งวัตถุที่กำลังเคลื่อนที่ติดอยู่นั้นจะเป็นรอยต่อที่มีความยาวคงที่ แต่อะไรคือคณิตศาสตร์ / อัลกอริธึมที่เกี่ยวข้องในการพิจารณาว่าเมื่อใดและที่ใดที่จะต้องแบ่งเซกเมนต์บรรทัดที่ใช้งาน และเมื่อมันจะต้องเข้าร่วมกับกลุ่มก่อนหน้า? (ก่อนหน้านี้คำถามนี้ถามเกี่ยวกับการทำสิ่งนี้เพื่อสภาพแวดล้อมแบบไดนามิกด้วย - ฉันตัดสินใจที่จะแยกมันออกเป็นคำถามอื่น ๆ )

5
การชดเชยความล่าช้าด้วยเกม 2D บนเครือข่าย
ฉันต้องการสร้างเกม 2 มิติที่เป็นเกม sandbox / กิจกรรมที่ขับเคลื่อนด้วยฟิสิกส์ มีบางอย่างที่ฉันไม่เข้าใจจริงๆ จากการวิจัยดูเหมือนว่าการอัปเดตจากเซิร์ฟเวอร์ควรอยู่ที่ประมาณ 100 มิลลิวินาทีเท่านั้น ฉันสามารถดูว่ามันใช้งานได้อย่างไรสำหรับผู้เล่นเนื่องจากพวกเขาสามารถจำลองฟิสิกส์พร้อมกันและทำการชดเชยความล่าช้าผ่านการแก้ไข สิ่งที่ฉันไม่เข้าใจก็คือวิธีนี้ใช้งานได้กับการอัปเดตจากผู้เล่นคนอื่น หากลูกค้าได้รับแจ้งตำแหน่งผู้เล่นทุก ๆ 100 มิลลิวินาทีเท่านั้นฉันไม่เห็นว่ามันทำงานได้อย่างไรเพราะมีจำนวนมากที่สามารถเกิดขึ้นได้ใน 100ms ผู้เล่นสามารถเปลี่ยนทิศทางได้สองครั้งหรือมากกว่านั้นในเวลานั้น ฉันสงสัยว่าใครจะมีความเข้าใจในเรื่องนี้บ้าง โดยทั่วไปแล้ววิธีนี้ใช้งานได้กับการถ่ายภาพและอะไรแบบนั้น? ขอบคุณ

5
การจำลองความดันในการจำลองแบบของเหลวที่ใช้กริด
ฉันมีระบบน้ำที่ใช้ระบบกริด 2 มิติในเกม XNA ของฉันเรามีวิธีการใช้เซลลูลาร์ออโตมาตาเพื่อจำลองการตกของน้ำและการแพร่กระจาย ตัวอย่างของน้ำที่ไหลลงมาตามทางลาด: แต่ละแผ่นสามารถมีค่าของเหลว 0 ถึง 255 ค่าซึ่งเก็บไว้ในหน่วยไบต์ ฉันไม่ได้ใช้floatsระบบน้ำเก่าที่ฉันเคยทำ แต่มันเพิ่มภาวะแทรกซ้อนและมีผลการทำงานที่ยอดเยี่ยม กระเบื้องน้ำแต่ละอัพเดตตัวเองด้วยชุดของกฎง่ายๆ: หากไทล์ด้านล่างมีช่องว่างให้ย้ายมากที่สุดเท่าที่เป็นไปได้จากไทล์ปัจจุบันไปยังล่างสุด (Flow Down) หากทั้งสองด้านนั้นไม่เหมือนกันและไม่เป็นศูนย์และทั้งสองจะผ่านได้เราจะได้ผลรวมของ 3 แผ่น (ซ้าย + ปัจจุบัน + ขวา) และหารด้วย 3 โดยปล่อยให้ส่วนที่เหลืออยู่บนแผ่นกลาง (ปัจจุบัน) หากกฎข้างต้นให้ผลรวมเป็น 2 เราควรแบ่งไพ่ออกเป็นสองด้าน (1, 0, 1) หากกฎ 2 ให้ 1 เป็นผลรวมให้เลือกด้านที่สุ่มเพื่อไหลเข้า หากกฎ 2 ล้มเหลวเราควรตรวจสอบว่าด้านใดด้านหนึ่งสามารถผ่านได้และอีกด้านหนึ่งไม่ได้ หากเป็นจริงเราจะแบ่งไทล์ปัจจุบันออกเป็นสองส่วนสำหรับ 2 ไทล์ ฉันจะขยายตรรกะนี้เพื่อรวมความกดดันได้อย่างไร แรงดันจะทำให้ของเหลวเพิ่มขึ้นเหนือ "U-Bends" และเติมในช่องอากาศ …
30 xna  c#  physics  grid  water 

2
EA DICE สร้างสภาพแวดล้อมที่ทำลายล้างได้ใน Battlefield Bad Company 2 และ Battlefield 3 ได้อย่างไร [ปิด]
ผู้คนใน EA DICE สร้างสภาพแวดล้อมที่สามารถทำลายได้ใน Battlefield Bad Company 2 และ Battlefield 3 ได้อย่างไร พวกเขารวมตัวอาคารออกจากภูมิภาคย่อยที่กำหนดไว้ล่วงหน้าซึ่งแตกสลายเมื่อมีการระเบิดหรือสิ่งที่คล้ายกัน? ฉันไม่สามารถคิดอย่างอื่นได้
30 physics 

3
ข้อดีและข้อเสียของผู้รวมระบบที่ต่างกัน [ปิด]
เมื่อสร้างสิ่งต่าง ๆ เช่นฟิสิกส์ในเกมคุณต้องมีผู้รวม ฉันเคยเห็นการรวม Verlet กล่าวถึงสถานที่ต่าง ๆ เป็นทางเลือกที่ดีในการรวมออยเลอร์ ยกตัวอย่างเช่นในเอกสารที่มีชื่อเสียงโดยโทมัส Jakobsen อย่างไรก็ตามในบทความนี้ Glenn Fiedler เขียน: แทนที่จะแนะนำให้คุณรู้จักกับผู้รวมกลุ่มที่หลากหลายที่มีอยู่ฉันจะตัดการไล่ล่าและตรงไปที่ดีที่สุด ผู้ประกอบการนี้เรียกว่า Runge Kutta order 4 integrator aka RK4 เห็นได้ชัดว่าไม่มีกระสุนเงิน ข้อดีและข้อเสียของผู้รวมระบบที่ต่างกันคืออะไร เกี่ยวกับความเรียบง่าย, ความเร็ว, ความแม่นยำ, ความเสถียรและอื่น ๆ ผู้รวมระบบใดที่เหมาะสมที่สุดสำหรับเกมประเภทใด เมื่อใดที่คุณจะใช้ Verlet, RK4 หรืออื่น ๆ คุณควรใช้ออยเลอร์หรือไม่?
29 physics 

10
ใน Pong คุณจะคำนวณทิศทางของลูกบอลได้อย่างไรเมื่อมันกระดอนจากไม้พาย?
ฉันพยายามที่จะสรุปปัญหาของ Hello World-y ในการพัฒนาเกม ฉันได้สร้างเกม TicTacToe ใน XNA แล้วฉันเดาว่าขั้นตอนต่อไปจะเป็นโคลนการฝ่าวงล้อม โปรดจำไว้ว่าฉันไม่มีความรู้เกี่ยวกับการเขียนโปรแกรมเกมหรือแม้แต่คณิตศาสตร์ที่ฉันควรนำไปใช้กับที่ไหน นั่นเป็นเหตุผลที่ฉันถามคำถามนี้ คำถาม: ฉันจะทราบได้อย่างไรว่าลูกบอลควรตีกลับอย่างไรเมื่อมันกระทบกับไม้พายที่ด้านล่างของหน้าจอ ฉันคิดว่ามันจะเป็นเช่น: จับความเร็วและมุมจากลูกบอลที่เข้ามา ตรวจจับตำแหน่งที่สัมผัสกับแถบ (ซ้ายสุด, ขวาสุด, กึ่งกลาง) และตามที่ให้ความเร็วสูงขึ้นหากสัมผัสบริเวณด้านนอก นี่คือที่ฉันติดอยู่ ฮิฮิ. ข้อมูลเชิงลึกใด ๆ ฉันรู้ว่านี่ไม่ใช่คำถามประเภทคำตอบที่ตรงไปตรงมา แต่ฉันแน่ใจว่ามันเป็นปัญหาที่ทุกคนเผชิญ ฉันกำลังอ่านหนังสือLinear Algebraที่แนะนำบนเว็บไซต์นี้ แต่ฉันก็ยังไม่รู้ว่าควรสมัครที่นี่หรือไม่
28 xna  c#  2d  mathematics  physics 

2
ต้นไม้รูปสี่เหลี่ยมเทียบกับการตรวจจับการชนกันของระบบกริด
ฉันกำลังสร้างเกมประเภทผู้เล่นร่วม 4 คนและฉันกำลังจะใช้รหัสตรวจจับการชนกัน ฉันได้อ่านบทความและสิ่งต่าง ๆ มากมายเกี่ยวกับวิธีจัดการกับการตรวจจับการชน แต่ฉันมีเวลายากที่จะทราบว่าจะไปกับอะไร ดูเหมือนว่าต้นไม้รูปสี่เหลี่ยมเป็นวิธีที่พบได้บ่อยที่สุด แต่ในทรัพยากรบางอย่างพวกเขาพูดถึงวิธีแก้ปัญหาแบบกริด สำหรับการใช้กริดสำหรับการตรวจจับในเกมก่อนหน้าฉันพอใจกับมัน แต่จริงๆแล้วมันดีกว่าต้นไม้รูปสี่เหลี่ยมหรือไม่? ฉันไม่แน่ใจว่าสิ่งใดที่ให้ประสิทธิภาพที่ดีที่สุดและฉันก็ใช้มาตรฐานเล็กน้อยด้วยเช่นกันไม่แตกต่างกันมากนัก ดีกว่าอีกไหม? หรือสง่างามมากขึ้น? ฉันไม่แน่ใจว่าฉันควรใช้อันไหน คำแนะนำใด ๆ ยินดีต้อนรับ ขอบคุณ

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

6
วิธีการทำให้แน่ใจว่าวัตถุหมุนได้เข้าเป้าด้วยปลายด้านขวา
ฉันกำลังทำงานกับอาวุธประเภทมีดขว้างปาที่ผู้เล่นมีเป้าหมายฟรีแล้วขว้างมีด มีดหมุนผ่านอากาศและในการปะทะกันหยุดหมุนและผู้ปกครองเองกับวัตถุที่มันชนกัน การหมุนถูกจัดการผ่านทางภาพเคลื่อนไหวในขณะที่เส้นทางของมีดถูกจัดการโดยฟิสิกส์ ปัญหาหนึ่งที่ฉันเผชิญคือทำอย่างไรเพื่อให้แน่ใจว่าเมื่อมีดชนกับศัตรูว่ามีดจะหันเข้าหาพวกเขา ในขณะที่สิ่งที่เกิดขึ้นบางครั้งก็คือมีดฝังอยู่ในมือของศัตรูก่อน ซึ่งไม่สมจริงอย่างเห็นได้ชัด ในเวลาเดียวกันฉันคิดว่ามันไม่มีเหตุผลที่จะมีดที่จะ "กด" ศัตรูถ้ามันชนใบมีดก่อนเนื่องจากอัตราที่มีดหมุนอยู่นอกเหนือการควบคุมของผู้เล่น ฉันได้ดูภาพจากกล้องที่คล้ายกันของ killcam ที่ช้ามาก ๆ และทุกครั้งที่มีการโยนอาวุธมันจะหมุนไปในอากาศและในที่สุดก็จะมีดาบที่ชี้ไปที่เป้าหมาย สำหรับเกมที่ระยะการขว้างปาสอดคล้องกันนี่จะค่อนข้างตรงไปตรงมา แต่ฉันไม่แน่ใจว่าจะทำนายได้อย่างไรเนื่องจากมีปัจจัยที่คาดเดาไม่ได้หลายอย่างที่เกี่ยวข้องเช่น ทิศทางของมีด, การหมุนของมีด, ตำแหน่งของศัตรู, ระยะทางจากศัตรู ฯลฯ หากเป็นไปได้ฉันไม่ต้องการใช้ตรรกะการทำนายที่ซับซ้อนเนื่องจากเกมจะเป็นอุปกรณ์ระดับต่ำ มีวิธี "ควันและกระจก" เพื่อแก้ปัญหานี้หรือไม่? ตัวอย่าง: https://youtu.be/0fav8lFpBko?t=42s


4
อะไรคือ“ เดลต้า” ในรหัสนี้? มันสะท้อนถึงสิ่งมาตรฐานในเกม dev หรือไม่?
ฉันรู้น้อยมากเกี่ยวกับการเขียนโปรแกรมเกม แต่ต้องการเรียนรู้เพิ่มเติม ฉันกำลังพยายามที่จะเข้าใจรหัสสำหรับนี้เกม ฉันพยายามที่จะเข้าใจว่าทำไมรหัสถึงผ่าน "delta" ไปยัง Shipcontrols.js ซึ่งเปลี่ยนทิศทางของเรือตามการป้อนข้อมูลของผู้ใช้ โดยทั่วไปเกมจะคำนวณ "เดลต้า" ทุกวง ... นี่คือเวอร์ชั่นย่อของสแต็กที่ใช้ delta ถึงหนึ่งลูป ... var delta = now - this.time; this.time = now; this.current.render.call(this.current, delta, this.renderer); ก้าวเข้าสู่ที่นี่ ... ctx.manager.add("game", scene, camera, function(delta, renderer) { if(delta > 25 && this.objects.lowFPS < 1000) this.objects.lowFPS++; var dt = delta/16.6; this.objects.components.shipControls.update(dt); ก้าวเข้าสู่ที่นี่ …

7
การคำนวณแรงโน้มถ่วงแบบมัลติเธรด 2D
ฉันกำลังสร้างเกมสำรวจอวกาศและตอนนี้ฉันเริ่มทำงานกับแรงโน้มถ่วง (ใน C # กับ XNA) แรงโน้มถ่วงยังคงต้องการการปรับแต่ง แต่ก่อนที่ฉันจะทำได้ฉันต้องจัดการกับปัญหาด้านประสิทธิภาพด้วยการคำนวณทางฟิสิกส์ของฉัน นี่คือการใช้วัตถุ 100 รายการโดยปกติแล้วการแสดงผล 1,000 รายการโดยไม่มีการคำนวณทางฟิสิกส์ได้ดีกว่า 300 FPS (ซึ่งเป็นฝา FPS ของฉัน) แต่วัตถุใด ๆ ที่มากกว่า 10 หรือมากกว่านั้นจะนำเกมมาด้วย เข่าเมื่อทำการคำนวณทางฟิสิกส์ ฉันตรวจสอบการใช้เธรดของฉันและเธรดแรกกำลังฆ่าตัวเองจากงานทั้งหมดดังนั้นฉันจึงคิดว่าฉันต้องทำการคำนวณทางฟิสิกส์ในเธรดอื่น อย่างไรก็ตามเมื่อฉันพยายามเรียกใช้เมธอดการอัปเดตของคลาส Gravity.cs ในเธรดอื่นแม้ว่าเมธอดการอัปเดตของ Gravity จะไม่มีอะไรอยู่เกมยังคงลดเหลือ 2 FPS Gravity.cs public void Update() { foreach (KeyValuePair<string, Entity> e in entityEngine.Entities) { Vector2 Force = new Vector2(); foreach …

3
หนังสือฟิสิกส์ที่ดีสำหรับการพัฒนาเกมคืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังมองหาหนังสือเริ่มต้นที่ดีเกี่ยวกับวิชาฟิสิกส์ในการพัฒนาเกม สิ่งที่เน้นเกม 2D น่าจะดีกว่า
23 2d  physics  books 

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