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

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

16
ผู้เขียนเกมทุกคนควรรู้คณิตศาสตร์ [ปิด]
คำถามง่ายๆพอ: โปรแกรมเมอร์เกมทุกคนควรมีความเข้าใจอย่างถ่องแท้เพื่อให้ประสบความสำเร็จ ฉันไม่ได้พูดถึงการแสดงผลคณิตศาสตร์หรืออะไรในพื้นที่เฉพาะของการเขียนโปรแกรมเกมโดยเฉพาะอย่างยิ่งสิ่งต่าง ๆ ที่แม้แต่ผู้เขียนโปรแกรมเกมควรรู้และถ้าพวกเขาไม่คิดว่ามันจะมีประโยชน์ หมายเหตุ:เนื่องจากไม่มีคำตอบที่ถูกต้องคำถามนี้ (และคำตอบ) คือวิกิชุมชน นอกจากนี้ถ้าคุณอยากสมการทางคณิตศาสตร์น้ำยางแฟนซีรู้สึกอิสระที่จะใช้http://mathurl.com/

12
จะพัฒนาสูตรความเสียหาย RPG ได้อย่างไร?
ฉันกำลังพัฒนาเกม RPG 2d แบบคลาสสิก (ในหลอดเลือดดำคล้ายกับแฟนตาซีสุดท้าย) และฉันสงสัยว่าใครมีคำแนะนำเกี่ยวกับวิธีการทำสูตร / ลิงก์ไปยังแหล่งข้อมูล / ตัวอย่างเสียหาย? ฉันจะอธิบายการตั้งค่าปัจจุบันของฉัน หวังว่าฉันจะไม่หักโหมกับคำถามนี้และฉันขอโทษถ้าคำถามของฉันมีขนาดใหญ่ / กว้างเกินไป สถิติตัวละครของฉันประกอบด้วย: enum Stat { HP = 0, MP = 1, SP = 2, Strength = 3, Vitality = 4, Magic = 5, Spirit = 6, Skill = 7, Speed = 8, //Speed/Agility are the same thing …

2
quaternion คืออะไร
quaternion คืออะไรและทำงานอย่างไร นอกจากนี้คุณได้ประโยชน์อะไรจากการใช้สามจุดบนระนาบ 2D ในที่สุดเมื่อไหร่จึงถือว่าการปฏิบัติที่ดีในการใช้ quaternions?

8
การเคลื่อนย้ายเรือไปมาระหว่างดาวเคราะห์ทั้งสองไปพร้อมกับเบซิเยร์หายไปสมการบางส่วนสำหรับการเร่งความเร็ว
ตกลงฉันโพสต์สิ่งนี้ไว้ที่ math.stackechange.com แต่ไม่ได้รับคำตอบใด ๆ :( ก่อนอื่นนี่คือภาพปัญหาของฉันคำอธิบายต่อไปนี้: ดังนั้นฉันจึงได้รับคะแนนและค่าทั้งหมด เรือเริ่มเคลื่อนที่ไปรอบ ๆ ดาวเคราะห์ด้านซ้ายP1ด้วยS=0.27 Degreesต่อ gametick เมื่อมันมาถึงPoint Aมันจะเริ่มตามโค้ง bezier จนกระทั่งมันมาถึงPoint Dจากนั้นมันจะเดินทางไปรอบ ๆ ดาวเคราะห์ที่ถูกต้องP2ด้วยS=0.42 Degreesเห็บต่อเกม ความแตกต่างSคือเพื่อให้การเดินทางด้วยความเร็วการเคลื่อนที่เดียวกันรอบ ๆ ดาวเคราะห์ จนถึงตอนนี้ฉันก็เริ่มทำงานแล้วตอนนี้ปัญหาของฉัน เมื่อใดS P1และS P2แตกต่างกันมากเรือรบกระโดดข้ามความเร็วทั้งสองเมื่อถึงที่หมายปลายทางซึ่งดูไม่ดีนัก ดังนั้นผมจึงต้องเร่งเรือระหว่างPoint AและPoint DจากไปS P1S P2 สิ่งที่ฉันขาดไปคือสีม่วงนั่นคือ: วิธีในการคำนวณเห็บที่ใช้เรือเคลื่อนที่ไปตาม bezier โดยพิจารณาจากความเร่ง และวิธีหาตำแหน่งบนเส้นโค้งเบซิเยร์ตาม T ลองพิจารณาความเร่งอีกครั้ง ATM ฉันคำนวณความยาวของ bezier โดยการคำนวณระยะทางระหว่างNจุดต่างๆ ดังนั้นสิ่งที่ฉันคิดว่าฉันต้องการคือวิธีการปรับขนาดที่Tฉันจำเป็นต้องใช้ในการคำนวณ bezier ของฉันตามการเร่งความเร็ว
48 2d  mathematics 

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

7
Atan และ atan2 ใช้สำหรับเกมอะไร
ฉันกำลังมีความเข้าใจปัญหาบางอย่างMath.tan()และและMath.atan()Math.atan2() ฉันมีความรู้พื้นฐานเกี่ยวกับตรีโกณมิติ แต่การใช้ SIN, COS และ TAN เป็นต้นสำหรับการพัฒนาเกมนั้นเป็นเรื่องใหม่สำหรับฉัน ฉันกำลังอ่านบทช่วยสอนบางอย่างและฉันเห็นว่าโดยการใช้แทนเจนต์เราจะได้มุมที่วัตถุหนึ่งต้องหมุนด้วยการเผชิญหน้ากับวัตถุอื่นเช่นเมาส์ของฉัน เหตุใดเราจึงยังต้องใช้ atan หรือ atan2

4
ลูกบอลกระทบมุมมันจะเบี่ยงเบนไปจากไหน
ฉันต้องการแปรงตรีโกณมิติของฉันและหวังว่าคุณจะสามารถช่วยได้ที่นี่ด้วยแบบจำลองทางคณิตศาสตร์อย่างง่าย นี่คือแบบจำลองของฉันในภาพที่แนบมา ฉันทราบว่าภาพเคลื่อนไหวเฟรมมีปัญหาอื่น ๆ เมื่อลูกบอลเคลื่อนที่เร็วมาก แต่ตอนนี้ฉันแค่ต้องคำนวณ ballDx และ ballDy เป็นไปได้ว่า ballDx = 0 (การเคลื่อนที่ในแนวดิ่งเท่านั้น) แต่เมื่อลูกบอลเบี่ยงเบน ballDx อาจได้รับค่าที่แตกต่าง

2
วิธีการสร้างสูตรที่ปรับได้สำหรับข้อกำหนดระดับ RPG ขึ้นไป?
ฉันกำลังพยายามสร้างสูตรที่สามารถแก้ไขได้อย่างง่ายดายโดยการเปลี่ยนค่าสองค่า: number_of_levels และ last_level_experience นี่คือเพื่อให้ผู้ใช้ modding เกมเปลี่ยนข้อกำหนดการปรับระดับ ฉันได้รับแล้วเพื่อให้ฉันสามารถระบุจำนวน XP ที่ต้องการสำหรับระดับสุดท้ายขึ้นไป แต่ฉันต้องการควบคุม XP ที่จำเป็นสำหรับระดับแรกขึ้นไปซึ่งในกรณีนี้อาจแตกต่างกันมาก ตัวอย่างเช่นถ้าฉันมี 40 ระดับและ 1,000,000 XP สำหรับระดับสุดท้ายความต้องการในการเลื่อนระดับแรกจะเท่ากับ 625 แต่ถ้าฉันเปลี่ยนระดับเป็น 80 ระดับแรกจะเพิ่มเป็น 156 ในทั้งสองกรณีความต้องการระดับสุดท้าย 1,000,000 ต้องมีวิธีที่จะทำให้คอมพิวเตอร์ทำงานในลักษณะเส้นโค้งที่เหมาะสมโดยให้ค่าพื้นฐานทั้งสองนี้ #include <iostream> int main() { int levels = 40; if (levels < 2) levels = 2; int experience_for_last_level = 1e6; float fraction = …

5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

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

2
ทำไมเราถึงใช้ทฤษฎีบทพีทาโกรัสในเกมฟิสิกส์?
ฉันเพิ่งเรียนรู้ว่าเราใช้ทฤษฎีบทพีทาโกรัสมากในการคำนวณทางฟิสิกส์ของเราและฉันเกรงว่าฉันจะไม่เข้าใจ นี่คือตัวอย่างจากหนังสือเพื่อให้แน่ใจว่าวัตถุไม่เคลื่อนที่เร็วกว่าMAXIMUM_VELOCITYค่าคงที่ในระนาบแนวนอน: MAXIMUM_VELOCITY = <any number>; SQUARED_MAXIMUM_VELOCITY = MAXIMUM_VELOCITY * MAXIMUM_VELOCITY; function animate(){ var squared_horizontal_velocity = (x_velocity * x_velocity) + (z_velocity * z_velocity); if( squared_horizontal_velocity <= SQUARED_MAXIMUM_VELOCITY ){ scalar = squared_horizontal_velocity / SQUARED_MAXIMUM_VELOCITY; x_velocity = x_velocity / scalar; z_velocity = x_velocity / scalar; } } ลองทำสิ่งนี้กับตัวเลข: วัตถุพยายามย้าย 5 หน่วยใน x …

5
ฉันจะคำนวณระดับปัจจุบันจาก XP ทั้งหมดได้อย่างไรเมื่อแต่ละระดับต้องการ XP เพิ่มเติมตามสัดส่วน
ในเกมของฉัน, XP ที่จำเป็นในการเข้าถึงระดับถัดไปคือปัจจุบันระดับ×ระดับเกณฑ์ ระบุว่าฉันจะได้รับระดับปัจจุบันของฉันจากXP ทั้งหมดที่เคยได้รับ? ตัวอย่างเช่น: Level Threshold = 50 Current Level = 1 เริ่มต้นที่ระดับ 1 ฉันต้องการ(1 × 50) = 50 XP เพื่อไปที่ระดับ 2 และต่อไป Level 1: 50 XP needed to reach level 2 Level 2: 100 more XP needed to reach level 3 Level 3: 150 more XP needed …

6
เกมที่ไม่ได้ใช้งานจัดการกับจำนวนที่มากเช่นนี้ได้อย่างไร
แค่สงสัยว่าเกมเช่น Tap titans และ Cookie Clicker จัดการกับจำนวนที่มากขนาดนี้ได้อย่างไร ฉันกำลังพยายามใช้งานเกมที่ไม่ได้ใช้งาน แต่รูปแบบตัวเลขที่ใหญ่ที่สุดที่รองรับโดย C # คือทศนิยม ฉันต้องการสนับสนุนมากถึง 10 ^ 500; ที่จะต้องมีจุดลอย ฉันจะจัดการสิ่งนี้ได้อย่างไร PS จะต้องเป็นแพลตฟอร์มข้ามเช่นพีซี, Mac, iOS, Android และเข้ากันได้กับ Unity

6
มีข้อเสียของการใช้การตรวจสอบระยะทางมากกว่าการตรวจสอบระยะทาง?
ฉันใช้การตรวจสอบระยะทางกำลังสองสำหรับการตรวจสอบระยะทางทั้งหมด (ความยาวเวกเตอร์ 3) ของฉันเนื่องจากประสิทธิภาพที่เพิ่มขึ้นจากการไม่ทดสอบรากที่สอง (เช่นการตรวจสอบความยาวธรรมดา) จากรูปลักษณ์ของมันการตรวจสอบระยะทางกำลังสองทำได้ดีในทุกสถานการณ์: if x^2 < y^2, then x < y, even when 0 < (x or y) < 1 ฉันไม่ได้พิจารณาสถานการณ์ที่ x หรือ y น้อยกว่า 0 เนื่องจากระยะทางและระยะทางกำลังสองจะเป็นบวกเสมอ ตั้งแต่งานนี้ดูเหมือนว่าไม่จำเป็นต้องตรวจสอบระยะทาง แต่ฉันมีความรู้สึกที่จู้จี้ที่ฉันขาดอะไรไป สิ่งนี้จะยังคงอยู่ในสถานการณ์ที่มีความสำคัญอย่างยิ่งหรือไม่?

4
ฉันจะย้ายวัตถุในเส้นทาง“ ไม่มีที่สิ้นสุด” หรือ“ รูปที่ 8” ได้อย่างไร
เมื่อฉันต้องการย้ายวัตถุไปรอบ ๆ จุดฉันทำ: point.x *= cosf(timer.timeElapsed); point.y *= sinf(timer.timeElapsed); วิธีทำให้จุดเคลื่อนที่บนวิถีวิถีแปดหรืออนันต์

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