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

คำถามคณิตศาสตร์ที่เกี่ยวข้องกับคณิตศาสตร์เรขาคณิตแคลคูลัสสูตรและการคำนวณอื่น ๆ ที่ใช้ในการพัฒนาเกม

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

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

8
ฉันจะป้องกันข้อได้เปรียบที่เป็นตัวเลขขนาดเล็กจากการมีส่วนร่วมในการเผชิญหน้าได้อย่างไร?
ฉันได้พบกับเกมมาระยะหนึ่งแล้วและฉันมีปัญหากับบางสิ่ง: ฉันมีตัวละครสองตัวแต่ละคนมีคุณสมบัติ (ประมาณสิบ) ในช่วง (ระหว่าง 1 ถึง 20) ฉันต้องการใช้คุณลักษณะเหล่านี้เพื่อสร้าง 'ม้วน' เพื่อให้ม้วนที่สูงกว่าชนะการเผชิญหน้านั้น เป็นที่น่าสังเกตว่าตัวละครทั้งสองนั้นไม่ได้สร้างความเสียหาย / ปกป้องซึ่งกันและกัน พวกเขาทั้งคู่กลิ้งเพื่อดูว่าพวกเขาผ่านสิ่งที่ฉันคิดว่าเราสามารถเรียกการตรวจสอบทักษะ ทั้งคู่กำลังกลิ้งเพื่อผ่าน / ล้มเหลวกับค่าทั่วไป พวกเขาไม่ได้โต้ตอบกับคนอื่น อย่างไรก็ตามเมื่อตัวละครตัวใดตัวหนึ่งมีข้อได้เปรียบเชิงตัวเลขเพียงเล็กน้อยสูตรใด ๆ ที่ฉันได้พบจะทำให้ได้ผลลัพธ์ที่ยอดเยี่ยมกว่าที่เคยชนะมาเป็นส่วนใหญ่ สิ่งนี้ไม่พึงประสงค์ ฉันได้ลองถ่วงน้ำหนักแอตทริบิวต์ 'ที่เกี่ยวข้องที่สุด' สำหรับการทดสอบที่ 80% และผลรวมของคุณลักษณะอื่น ๆ ที่ 20% ฉันพยายามเปรียบเทียบค่าเฉลี่ยเพื่อสร้างความแตกต่างสัมพัทธ์และใช้สิ่งนั้นเพื่อเพิ่มตัวละครที่อ่อนแอ ทั้งสองวิธีทำให้เกิดข้อได้เปรียบที่สำคัญที่ฉันพยายามลบ (ตัวอย่างเช่นถ้าฉันพบ 5,000 ครั้งมันจะทำให้ฝ่ายหนึ่งชนะทั้ง 5,000 ครั้ง) การเพิ่มองค์ประกอบ "โชค" ก็มีความสำคัญเช่นกันหากว่ามีการถ่วงน้ำหนักอย่างใดอย่างหนึ่งเพื่อให้สอดคล้องกับตัวละครที่น้อยกว่าและฉันไม่ได้สมดุลที่ดีที่นั่น ฉันสามารถใช้วิธีการใดในการลดผลกระทบของข้อได้เปรียบเชิงตัวเลขเล็กน้อย แต่ยังคงรักษาและเพิ่มความได้เปรียบนั้นเมื่อช่องว่างสัมพัทธ์ในคุณลักษณะเพิ่มขึ้น ตามคำขอนี่คือรายละเอียดที่ฉันมีจนถึงตอนนี้ บางสิ่งที่ฉันยังไม่เข้าใจดังนั้นพวกเขาจึงยังคงเป็นคนทั่วไป: ในขณะนี้การม้วนจะถูกสร้างขึ้นเป็น 0.8 * (mainAttribute) + …

12
การเปรียบเทียบมุมและหาความแตกต่าง
ฉันต้องการเปรียบเทียบมุมและรับทราบระยะห่างระหว่างพวกเขา สำหรับแอปพลิเคชันนี้ฉันทำงานเป็นองศา แต่ก็สามารถใช้ได้กับเรเดียนและบัณฑิต ปัญหาเกี่ยวกับมุมคือพวกมันขึ้นอยู่กับเลขคณิตจำเพาะเช่น 0-360 องศา สมมติว่ามุมหนึ่งอยู่ที่ 15 องศาและมุมหนึ่งคือ 45 ความแตกต่างคือ 30 องศาและมุม 45 องศามากกว่า 15 องศา แต่นี่จะหยุดลงเมื่อคุณพูด 345 องศาและ 30 องศา แม้ว่าจะเปรียบเทียบอย่างเหมาะสม แต่ความแตกต่างระหว่างพวกเขาคือ 315 องศาแทนที่จะเป็น 45 องศาที่ถูกต้อง ฉันจะแก้ปัญหานี้ได้อย่างไร ฉันสามารถเขียนรหัสอัลกอริทึม: if(angle1 > angle2) delta_theta = 360 - angle2 - angle1; else delta_theta = angle2 - angle1; แต่ฉันต้องการทางออกที่หลีกเลี่ยงการเปรียบเทียบ / สาขาและอาศัยเลขคณิตทั้งหมด

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
ฉันจะสร้างสมการผลตอบแทนลดลงอย่างง่ายได้อย่างไร
มีสูตรสำหรับสมการส่งคืนที่ลดน้อยลง อย่างไรก็ตามสิ่งเหล่านี้มักจะเกี่ยวข้องกับการอธิบาย มีวิธีอื่นอีกไหมในการหาสมการดังกล่าว ยกตัวอย่างเช่นกรณีทดสอบต่อไปนี้ - หนึ่งฟาร์มผลิตอาหาร 10 ชนิดสำหรับทุก ๆ 10 ฟาร์มที่ผลิตอัตราการผลิตลดลง 5%

3
กราฟิกการ์ดทำอะไรกับองค์ประกอบที่สี่ของเวกเตอร์เป็นตำแหน่งสุดท้าย
จากคำถามนี้ปรากฏว่าคุณต้องการเวกเตอร์ตำแหน่งสี่องค์ประกอบเนื่องจากง่ายต่อการแก้ไขตำแหน่งด้วยการคูณเมทริกซ์ ด้วยตัวเองสิ่งนี้จะบอกเป็นนัยถึงองค์ประกอบที่สี่ควรมองข้ามเมื่อคิดว่ามันเป็นตัวแทนของจุดสามมิติ (สมมติว่าไม่มีการแปลง) แต่ฉันรู้ว่านี่ไม่เป็นความจริงเหมือนเมื่อฉันจัดหาเวกเตอร์ 4 ให้กับ GPU ถ้าสี่ องค์ประกอบไม่ได้เป็นหนึ่งก็ไม่ได้แสดงผล - ทำไม? ความสำคัญขององค์ประกอบที่สี่คืออะไรเมื่ออยู่ใน rasterizer? แก้ไข : ในการตรวจสอบคำถามนี้เป็นคำที่ค่อนข้างต่ำ; มันจะแม่นยำมากขึ้นสำหรับย่อหน้าที่สองที่จะพูดว่า: "ถ้าค่าขององค์ประกอบที่สี่ไม่อยู่ในช่วงที่กำหนดมันจะไม่แสดงผล 'ถูกต้อง' / 'ตามที่คาดหวัง'"

3
ฉันจะอ่านระหว่างค่าที่วนซ้ำ (เช่นสีหรือการหมุน) ได้อย่างไร
ดูการสาธิต ฉันพยายามที่จะทำให้รอยต่อหมุนได้อย่างราบรื่นรอบจุดศูนย์กลางของผืนผ้าใบไปยังมุมของตัวชี้เมาส์ สิ่งที่ฉันได้ผล แต่ฉันต้องการให้มันเคลื่อนไหวได้ในระยะทางที่สั้นที่สุดเท่าที่จะเป็นไปได้เพื่อให้ได้มุมของเมาส์ ปัญหาเกิดขึ้นเมื่อค่าวนรอบที่เส้นแนวนอน ( 3.14และ-3.14) วางเมาส์เหนือบริเวณนั้นเพื่อดูว่าทิศทางเปลี่ยนไปอย่างไรและมันจะย้อนกลับไปได้ไกล รหัสที่เกี่ยวข้อง // ease the current angle to the target angle joint.angle += ( joint.targetAngle - joint.angle ) * 0.1; // get angle from joint to mouse var dx = e.clientX - joint.x, dy = e.clientY - joint.y; joint.targetAngle = Math.atan2( dy, dx …

3
มีฟังก์ชั่นไซน์ที่เร็วกว่านี้ไหม?
ฉันกำลังทำงานเกี่ยวกับการสร้างเสียง perlin 3d ไลบรารี C # Math ดูเหมือนว่าเกินความจำเป็นสำหรับสิ่งที่ฉันต้องการเนื่องจากฟังก์ชั่นส่วนใหญ่ใช้การคิดแบบสองครั้ง ฉันใช้ Math.Sin () ในหลายแห่งเพื่อสร้างเสียง ไม่มีใครรู้ถึงฟังก์ชั่นไซน์ที่เร็วกว่านี้ไหม?
25 xna  c#  mathematics 

5
วิธีการคำนวณพื้นที่การมองเห็นในเกมแบบสองมิติได้อย่างรวดเร็ว
ฉันมีเมทริกซ์ของแผ่นกระเบื้องบนบางแผ่นที่มีวัตถุ ฉันต้องการคำนวณผู้เล่นที่สามารถมองเห็นไทล์และไม่ได้และฉันต้องทำอย่างมีประสิทธิภาพ (ดังนั้นมันจะคำนวณเร็วพอแม้ว่าฉันจะมีเมทริกซ์ขนาดใหญ่ (100x100) และวัตถุจำนวนมาก ฉันพยายามทำด้วยอัลกอริทึมของ Bresenhamแต่มันช้า นอกจากนี้ยังทำให้ฉันมีข้อผิดพลาด: ----XXX- ----X**- ----XXX- -@------ -@------ -@------ ----XXX- ----X**- ----XXX- (raw version) (Besenham) (correct, since tunnel walls are still visible at distance) (@ is the player, X is obstacle, * is invisible, - is visible) ฉันแน่ใจว่าสิ่งนี้สามารถทำได้ - หลังจากทั้งหมดเรามี NetHack, Zangband และพวกเขาทั้งหมดจัดการกับปัญหานี้อย่างใด :) คุณสามารถแนะนำอัลกอริทึมสำหรับสิ่งนี้ได้อย่างไร …

6
คุณจะมองภาพ quaternion ได้อย่างไร?
เมื่อฉันมองเห็นเมทริกซ์การหมุนสามมิติหรือเมทริกซ์มาตราส่วนฉันเห็นภาพมันเป็นสามแกน มีวิธีที่คล้ายกันที่ฉันสามารถเห็นภาพ quaternion หมุน?

7
ฉันจะดักจับวัตถุด้วยการเคลื่อนที่เป็นวงกลมได้อย่างไร
ฉันกำลังสร้างเกมอวกาศ 2 มิติและต้องทำให้ยานอวกาศดักจับดาวเคราะห์ ฉันมีรหัสการทำงานสำหรับการสกัดกั้นเส้นตรง แต่ไม่สามารถหาวิธีคำนวณตำแหน่งของดาวเคราะห์ในวงโคจรเป็นวงกลมได้ เกมไม่ถูกต้องทางวิทยาศาสตร์ดังนั้นฉันจึงไม่กังวลเกี่ยวกับความเฉื่อยแรงโน้มถ่วงวงโคจรรูปไข่ ฯลฯ ฉันรู้ตำแหน่งยานอวกาศและความเร็วรวมถึงดาวเคราะห์วงโคจร (Radius) และความเร็ว

6
วิธีเพิ่มประสิทธิภาพฟังก์ชั่นระยะทาง?
ในขณะที่พัฒนาเกมคล้าย RTS ที่เรียบง่ายพอสมควรฉันสังเกตว่าการคำนวณระยะทางของฉันทำให้เกิดผลกระทบต่อประสิทธิภาพ ตลอดเวลามีการตรวจสอบระยะทางเพื่อทราบว่ายูนิตอยู่ในระยะใกล้เป้าหมายหรือไม่หากกระสุนปืนมาถึงเป้าหมายหากผู้เล่นวิ่งผ่านรถปิคอัพชนทั่วไป ฯลฯ รายการจะดำเนินต่อไปและตรวจสอบหา ระยะห่างระหว่างจุดสองจุดใช้กันมาก คำถามของฉันเกี่ยวกับเรื่องนั้นอย่างแน่นอน ฉันต้องการทราบว่าผู้พัฒนาเกมทางเลือกมีอะไรบ้างในการตรวจสอบระยะทางนอกเหนือจากวิธี sqrt (x * x + y * y) ตามปกติซึ่งใช้เวลาค่อนข้างนานหากเราทำการแสดงหลายพันครั้งต่อเฟรม ฉันต้องการที่จะชี้ให้เห็นว่าฉันทราบระยะทางแมนฮัตตันและการเปรียบเทียบระยะทางกำลังสอง (โดยข้ามคอขวด sqrt) มีอะไรอีกไหม

4
ความยาวส่วนโค้ง Bezier
ดูเพิ่มเติมที่: คำถามเดียวกันกับ Math.SE ฉันจะค้นหาความยาวของเส้นโค้ง Bezier ได้อย่างไร ตัวอย่างเช่นเส้นโค้ง Bezier เชิงเส้นมีความยาว: length = sqrt(pow(x[1] - x[0], 2) + pow(y[1] - y[0], 2)); แต่สิ่งที่เกี่ยวกับเส้นโค้งกำลังสองลูกบาศก์หรือ n- องศา Bezier (เป้าหมายของฉันคือการประเมินความละเอียดของการสุ่มตัวอย่างล่วงหน้าดังนั้นฉันไม่ต้องเสียเวลาตรวจสอบว่าจุดต่อไปแตะที่จุดก่อนหน้า)

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