การพัฒนาเกม

คำถาม & คำตอบสำหรับนักพัฒนาเกมมืออาชีพและเป็นอิสระ

1
เป้าหมายของเมาส์ใน FPS
ฉันต้องการสร้าง First Person Shooter และเลื่อนกล้องด้วยเมาส์ ปัญหาคือเมื่อเคอร์เซอร์ถึงขีด จำกัด ของหน้าจอกล้องจะไม่หมุนอีกต่อไป ฉันจะทำให้เมาส์อยู่ตรงกลางและตรวจจับการเคลื่อนไหวได้อย่างไร?

3
เมื่อหลาย ๆ คลาสจำเป็นต้องเข้าถึงข้อมูลเดียวกันข้อมูลจะถูกประกาศที่ไหน?
ฉันมีเกมป้องกันหอคอยพื้นฐาน 2 มิติใน C ++ แต่ละแผนที่เป็นคลาสที่แยกต่างหากซึ่งสืบทอดมาจาก GameState แผนที่จะมอบหมายตรรกะและรหัสการวาดภาพให้กับแต่ละวัตถุในเกมและตั้งค่าข้อมูลเช่นเส้นทางแผนที่ ในโค้ดหลอกส่วนลอจิกอาจมีลักษณะดังนี้: update(): for each creep in creeps: creep.update() for each tower in towers: tower.update() for each missile in missiles: missile.update() วัตถุ (ครีพหอคอยและขีปนาวุธ) ถูกเก็บไว้ในพอยน์เตอร์พอยน์เตอร์ หอคอยต้องมีการเข้าถึง vector-of-creeps และ vector-of-missiles เพื่อสร้างขีปนาวุธใหม่และระบุเป้าหมาย คำถามคือ: ฉันจะประกาศเวกเตอร์ได้ที่ไหน พวกเขาควรเป็นสมาชิกของคลาส Map หรือไม่และส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน tower.update ()? หรือประกาศทั่วโลก? หรือมีวิธีแก้ไขปัญหาอื่น ๆ ที่ฉันขาดไปทั้งหมดหรือไม่ เมื่อหลาย ๆ คลาสจำเป็นต้องเข้าถึงข้อมูลเดียวกันข้อมูลจะถูกประกาศที่ไหน?

7
เกี่ยวกับความแม่นยำของ floating point และทำไมเราถึงยังใช้มันอยู่
จุดลอยตัวนั้นมักจะลำบากสำหรับความแม่นยำในโลกขนาดใหญ่ นี้บทความอธิบายเบื้องหลังฉากและข้อเสนอที่เห็นได้ชัดทางเลือก - ถาวรหมายเลขจุด ข้อเท็จจริงบางอย่างน่าประทับใจจริง ๆ เช่น: "ความแม่นยำ 64 บิตนำคุณไปสู่ระยะทางไกลที่สุดของพลูโตจากดวงอาทิตย์ (7.4 พันล้านกิโลเมตร) ด้วยความแม่นยำซับไมโครมิเตอร์" ความแม่นยำของ sub-micrometer นั้นมากกว่าความต้องการ fps ใด ๆ (สำหรับตำแหน่งและแม้แต่ความเร็ว) และมันจะช่วยให้คุณสร้างโลกที่ยิ่งใหญ่ได้ คำถามของฉันคือทำไมเรายังคงใช้จุดลอยตัวถ้าจุดคงที่มีข้อดีดังกล่าว? API การแสดงผลและห้องสมุดฟิสิกส์ส่วนใหญ่ใช้จุดลอยตัว (และประสบกับข้อเสียดังนั้นผู้พัฒนาจึงต้องหลีกเลี่ยง) พวกมันช้ากว่านี้ไหม? นอกจากนี้คุณคิดว่าเอ็นจิ้นดาวเคราะห์ที่ปรับขนาดได้เช่น outerra หรืออินฟินิตี้จัดการกับขนาดใหญ่ได้อย่างไร พวกเขาใช้จุดคงที่สำหรับตำแหน่งหรือมีอัลกอริทึมการแบ่งพื้นที่บางส่วนหรือไม่?
38 graphics  physics 

2
ฉันกำลังหมุนวัตถุบนสองแกนดังนั้นทำไมมันหมุนรอบแกนที่สามต่อไป?
ฉันเห็นคำถามเกิดขึ้นบ่อยครั้งที่มีปัญหาพื้นฐานนี้ แต่ทุกคำถามล้วนแล้วแต่เกี่ยวข้องกับคุณลักษณะหรือเครื่องมือที่กำหนด นี่คือความพยายามในการสร้างคำตอบที่ยอมรับได้ซึ่งเราสามารถอ้างถึงผู้ใช้เมื่อเกิดเหตุการณ์นี้ขึ้น - ด้วยตัวอย่างภาพเคลื่อนไหวมากมาย! :) สมมติว่าเรากำลังสร้างกล้องตัวแรก แนวคิดพื้นฐานคือควรหันเหมองไปทางซ้ายและขวา ดังนั้นเราจึงเขียนโค้ดแบบนี้ (ใช้ Unity เป็นตัวอย่าง): void Update() { float speed = lookSpeed * Time.deltaTime; // Yaw around the y axis using the player's horizontal input. transform.Rotate(0f, Input.GetAxis("Horizontal") * speed, 0f); // Pitch around the x axis using the player's vertical input. transform.Rotate(-Input.GetAxis("Vertical") * …

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

4
จะเกิดอะไรขึ้นเมื่อ Time.time มีขนาดใหญ่มากใน Unity?
ตามที่กล่าวไว้ที่นี่ : Time.time เวลาที่จุดเริ่มต้นของเฟรมนี้ (อ่านอย่างเดียว) นี่คือเวลาในไม่กี่วินาทีนับตั้งแต่เริ่มเกม และอย่างที่ฉันรู้ว่าเวลาถูกเก็บไว้ในโฟลต ดังนั้นคำถามของฉันคือสิ่งที่จะเกิดขึ้นเมื่อมูลค่าของเวลามีขนาดใหญ่มาก? มันล้นได้ไหม มันจะสูญเสียความแม่นยำและทำให้เกิดข้อบกพร่องหรือไม่ เกมจะมีปัญหาหรือไม่
37 unity 

9
ฉันจะหาปริมาณความตรงของเส้นตรงได้อย่างไร
ฉันกำลังทำงานกับเกมที่ต้องการให้ผู้เล่นวาดเส้นจากจุด A (x1, y1) ไปยังอีกจุด B (x2, y2) บนหน้าจอของอุปกรณ์ Android ฉันต้องการค้นหาว่าการวาดที่เหมาะสมกับเส้นตรงนั้นดีแค่ไหน ตัวอย่างเช่นผลลัพธ์ 90% จะหมายถึงการวาดเส้นนั้นเหมาะกับเส้น หากผู้เล่นลากเส้นโค้งจาก A ถึง B ก็ควรได้คะแนนต่ำ ไม่ทราบจุดสิ้นสุดล่วงหน้า ฉันจะทำสิ่งนี้ได้อย่างไร

4
แพทช์ในเกมทำงานอย่างไร
บางครั้งเกมคอนโซลและพีซีมีแพตช์เพื่อแก้ไขข้อบกพร่องที่นักพัฒนาพลาด / ไม่มีเวลาแก้ไข คำถามของฉันคือทำงานเหล่านี้ได้อย่างไร บางครั้งไฟล์แพตช์มีขนาดไม่กี่เมกะไบต์ ฉันไม่เข้าใจว่าไฟล์ขนาดเล็กสามารถเปลี่ยนแปลงโปรแกรมที่เป็นไปตามข้อกำหนดได้อย่างไร
37 console  pc  patching 

9
lategame ในเกม 4X จะทำให้ตื่นเต้นขึ้นได้อย่างไร?
ฉันเล่นเกม 4X จำนวนมากเมื่อไม่นานมานี้ (eXplore, eXpand, eXploit, eXterminate, เช่น Civilization series เป็นต้น) และสังเกตเห็นว่าพวกเขาส่วนใหญ่ประสบปัญหาเดียวกัน: ทันทีที่ผู้เล่นคนหนึ่งมีประสิทธิภาพมากกว่า อื่น ๆ ผู้เล่นนั้นแทบจะไม่สามารถเอาชนะได้ ผู้เล่นที่โดดเด่นสามารถเข้าถึงทรัพยากรได้มากกว่าผู้อื่น นอกจากนี้ผู้เล่นนั้นมีข้อได้เปรียบที่สำคัญในการวิจัยซึ่งหมายความว่ากลุ่มอื่น ๆ จะถอยกลับในไม่ช้าเทคโนโลยีให้ผู้เล่นที่มีประสิทธิภาพยิ่งขึ้นเครื่องมือที่กลุ่มอ่อนแอไม่สามารถตอบโต้ดังนั้นมันทำให้เกมง่ายขึ้นสำหรับพวกเขา ในช่วงนี้ค่อนข้างชัดเจนว่าผู้เล่นคนนี้จะชนะอย่างหลีกเลี่ยงไม่ได้ อย่างไรก็ตามเกมมักจะไม่หยุดที่นี่ มันยังคงดำเนินต่อไปอีกหลายชั่วโมงในขณะที่ผู้เล่นที่โดดเด่นจะหมุนผู้เล่นที่อ่อนแอลงทุกคน สิ่งนี้ไม่ท้าทายสำหรับพวกเขาเพราะพวกมันมีพลังมหาศาล ดังนั้นขั้นตอนของเกมนี้จึงกลายเป็นงานที่น่าเบื่อและน่าเบื่อสำหรับทุกคน ผู้เล่นที่โดดเด่นย้ายหน่วยจากฐานศัตรู / เมือง / ดาวเคราะห์หนึ่งไปยังอีกคนหนึ่งโดยรู้ว่าไม่มีสิ่งใดที่พวกเขาสามารถพบได้ที่นั่นสามารถหยุดพวกเขาได้ตราบใดที่พวกเขาหลีกเลี่ยงข้อผิดพลาดที่หลีกเลี่ยงได้ง่ายๆ มรณกรรม เกม 4X สามารถถูกออกแบบมาเพื่อหลีกเลี่ยงเกมที่น่าเบื่อและน่าเบื่อได้อย่างไร?

6
การสร้างเอฟเฟ็กต์การสลับสีแบบย้อนยุคใน OpenGL
ฉันกำลังทำงานกับเกมที่คล้ายกับMegamanซึ่งฉันต้องเปลี่ยนสีของพิกเซลบางตัวในขณะใช้งานจริง สำหรับการอ้างอิง : ในMegamanเมื่อคุณเปลี่ยนอาวุธที่คุณเลือกจากนั้นจานสีของตัวละครหลักจะเปลี่ยนไปตามอาวุธที่เลือก ไม่ทั้งหมดของผีสางของการเปลี่ยนแปลงสีเพียงบางคนทำ เอฟเฟกต์แบบนี้เป็นเรื่องปกติและค่อนข้างง่ายที่จะทำกับ NES เนื่องจากโปรแกรมเมอร์สามารถเข้าถึงพาเล็ตและการแมปโลจิคัลระหว่างพิกเซลและดัชนีพาเล็ต สำหรับฮาร์ดแวร์ที่ทันสมัยสิ่งนี้ค่อนข้างท้าทายกว่าเพราะแนวคิดของจานสีไม่เหมือนกัน พื้นผิวทั้งหมดของฉันเป็นแบบ 32 บิตและไม่ใช้จานสี มีสองวิธีที่ฉันรู้เพื่อให้ได้ผลตามที่ฉันต้องการ แต่ฉันอยากรู้ว่าถ้ามีวิธีที่ดีกว่าในการบรรลุผลนี้ได้อย่างง่ายดาย สองตัวเลือกที่ฉันรู้คือ: ใช้ shader และเขียน GLSL บางอย่างเพื่อดำเนินการ "palette swapping" หากไม่สามารถใช้เฉดสีได้ (เช่นเนื่องจากการ์ดกราฟิกไม่รองรับ) ก็เป็นไปได้ที่จะลอกแบบพื้นผิว "ดั้งเดิม" และสร้างรุ่นที่แตกต่างกันโดยมีการเปลี่ยนสีที่นำไปใช้ล่วงหน้า เป็นการดีที่ฉันต้องการใช้ shader เนื่องจากดูเหมือนว่าตรงไปตรงมาและต้องการงานเพิ่มเติมเล็กน้อยเมื่อเทียบกับวิธีการทำซ้ำพื้นผิว ฉันกังวลว่าพื้นผิวที่ซ้ำซ้อนเพียงเพื่อเปลี่ยนสีในพวกเขากำลังสูญเสีย VRAM - ฉันไม่ควรกังวลเกี่ยวกับสิ่งนั้นหรือ แก้ไข : ฉันลงเอยด้วยการใช้เทคนิคของคำตอบที่ยอมรับและนี่คือ shader ของฉันสำหรับการอ้างอิง uniform sampler2D texture; uniform sampler2D colorTable; uniform float paletteIndex; void main() …

13
อะไรคือทางเลือกในการลบล้างความเสียหายเพื่อแก้ไขการหยุดชะงักของการต่อสู้?
ความเสียหายจากรอยขีดข่วนเป็นช่างเกมโดยที่การโจมตีที่ประสบความสำเร็จจะสร้างความเสียหายน้อยที่สุด มักจะใช้ในระบบการต่อสู้แบบหักลบซึ่งการป้องกันจะถูกลบออกจากความเสียหายที่กระทำโดยผู้โจมตีโดยตรง ดังนั้นเป้าหมายจะได้รับความเสียหายน้อยที่สุดเสมอ ข้อเสียของระบบดังกล่าวสำหรับฉันอย่างน้อยก็คือมันเป็นแฮ็ค มันต้องใช้สูตรง่ายๆเช่นDamage = Attack - Defenseและเปลี่ยนมันเป็น (เล็กน้อย) Damage = max(Attack - Defense, 1)ที่ซับซ้อนมากขึ้นที่หนึ่ง: ฉันยังรู้สึกว่ามันเบี่ยงเบนจากทักษะของผู้เล่นในการพัฒนาตัวละคร / ฯลฯ ไม่ว่าพวกเขาจะได้รับโบนัสการป้องกันเท่าใดการโจมตีทุกครั้งจะสร้างความเสียหายเล็กน้อย เหตุใดคุณจึงต้องได้รับการป้องกันที่สูงถ้ามันไม่ได้มีความหมายอะไรเลย? นอกจากนี้ตอนนี้สนับสนุนการใช้ตัวเลขที่มากขึ้นสำหรับ Hp และความเสียหายดังนั้นความเสียหายจากรอยขีดข่วนนั้นเป็นสิ่งที่ละเลยไม่ได้อย่างแท้จริง ท้ายที่สุดถ้าความเสียหายขั้นต่ำคือ 1 และคุณมีเพียง 10 Hp นั่นก็ยังคงเป็น 10% ของพลังชีวิตของคุณ แม้จะมี 20 Hp นั่นก็คือ 5% และฉันจะหลีกเลี่ยงการใช้ตัวเลขที่มีขนาดใหญ่กว่านี้เว้นแต่จะจำเป็นจริงๆ อย่างไรก็ตามมีสิ่งหนึ่งที่สำคัญอย่างยิ่งต่อความเสียหายของรอยขีดข่วน: มันแก้ปัญหาการหยุดชะงัก การหยุดชะงักเกิดขึ้นเมื่อทั้งสองฝ่ายไม่สามารถทำดาเมจกับอีกฝ่ายได้ หากคุณลงทุนทรัพยากรทั้งหมดในการป้องกันและการโจมตีน้อยตัวละครของคุณอาจไม่ได้รับความเสียหาย แต่พวกเขาจะไม่สามารถจัดการได้มากนัก ดังนั้นคุณสามารถเผชิญหน้าได้โดยที่ทั้งสองฝ่ายไม่สามารถทำดาเมจได้ โดยเฉพาะอย่างยิ่งถ้าคุณไม่มีกลไกสุ่มอย่างเช่นเพลงฮิต (ซึ่งฉันก็เกลียด) อย่างน้อยก็มีความเสียหายจากการขูดขีดใครบางคนก็จะชนะในที่สุด อาจเป็นเพียงหนึ่งเดียวที่มีการโจมตีมากที่สุดของ Hp หรือสูงสุด …

9
ฉันจะสร้างเครื่องกำเนิดไฟฟ้าแบบ "สุ่ม" ที่มีอคติกับเหตุการณ์ก่อนหน้าได้อย่างไร
ฉันกำลังมองหาที่จะใช้ระบบตามโอกาสซึ่งเป็นลำเอียงจากเหตุการณ์ก่อนหน้านี้ ข้อมูลประกอบ: บางปีที่ผ่านมาฉันจำการอัปเดตสำหรับ World of Warcraft ประกาศว่าพวกเขาใช้เครื่องคิดเลขโอกาสใหม่ที่จะตอบโต้เหตุการณ์โซ่ตรวน (เช่นการนัดหยุดงานที่สำคัญหรือหลบหลายครั้งในแถว) แนวคิดก็คือในกรณีที่คุณจะหลบการโจมตีโอกาสที่คุณจะหลบการโจมตีครั้งต่อไปจะลดน้อยลง แต่มันก็ใช้ได้ทั้งสองทาง การไม่หลบการโจมตีจะเพิ่มโอกาสในการหลบการโจมตีครั้งต่อไป เคล็ดลับสำคัญที่นี่คือว่าในการทดลองหลายครั้งโอกาสหลบจะยังคงสอดคล้องกับเปอร์เซ็นต์ที่มอบให้กับผู้เล่นในแผ่นสถิติของเขาหรือเธอ ระบบประเภทนี้ทำให้ฉันทึ่งมากในเวลานี้และตอนนี้ฉันอยู่ในสถานการณ์ที่ต้องการวิธีแก้ปัญหาดังกล่าว นี่คือปัญหาของฉัน: ฉันเดาว่าฉันจะสามารถหาแหล่งข้อมูลออนไลน์เกี่ยวกับการใช้ระบบดังกล่าวได้ แต่ฉันอาจจะขาดคำที่เกี่ยวข้องในการค้นหา นอกจากนี้ฉันต้องการวิธีการนี้เพื่อให้พอดีกับระบบที่ไม่ใช่แบบทวินาม (เช่นสองผลลัพธ์) แต่มี 4 เหตุการณ์ที่ไม่เกิดร่วมกันแทน แนวทางปัจจุบันของฉันคล้ายกับระบบตั๋วล็อตเตอรี่ เมื่อมีเหตุการณ์เกิดขึ้นฉันเปลี่ยนน้ำหนักให้สอดคล้องกับกิจกรรมอื่น ๆ ทั้งหมด สิ่งนี้สามารถใช้งานได้หากเหตุการณ์ทั้งสี่นั้นมีแนวโน้มที่จะเท่ากัน แต่ในกรณีของฉันต้องมีความแพร่หลายมากขึ้น แต่เมื่อมีเหตุการณ์ที่แพร่หลายเกิดขึ้นบ่อยครั้งมันทำให้น้ำหนักของอีกฝ่ายสูงกว่าที่ตั้งใจไว้และฉันไม่สามารถหาตัวเลขสำหรับการเลื่อนน้ำหนักที่จำเป็นเพื่อรักษาค่าตั๋วเฉลี่ยรอบค่าเริ่มต้นของเหตุการณ์ได้ รับ ตัวชี้ทิศทางเล็กน้อยหรือตัวอย่างที่ชัดเจนจะได้รับการชื่นชมมาก
37 random 

6
รูปแบบไฟล์ที่ดีสำหรับการบันทึกข้อมูลเกมคืออะไร [ปิด]
ฉันต้องการบันทึกข้อมูลเกมที่กำหนดเอง แผนที่ผู้เล่น ฯลฯ พวกเขาทั้งหมดจะมี "วัตถุย่อย" ตัวอย่างเช่นแผนที่และแผนที่จะมี "อาร์เรย์" ของไทล์ เช่นข้อมูลลำดับชั้น หวังว่าไม่มีอะไรไบนารี อะไรคือรูปแบบที่ดีสำหรับสิ่งเหล่านี้ จนถึงตอนนี้ฉันก็ถือว่า: Serailization:นี่คือเร็วและง่าย แต่มีแนวโน้มที่จะแตกเมื่อฉันเปลี่ยนคลาสพื้นฐาน :( XML:ฉันเกลียดการแยกวิเคราะห์สิ่งนี้จริงๆ กรณีทดสอบของฉันมีโค้ดมากกว่า 100 บรรทัดและดูเหมือนว่า "งานที่ยุ่ง" มากมายสำหรับรูปแบบที่เรียบง่ายมาก INI:จะค่อนข้างซุ่มซ่ามสำหรับข้อมูลลำดับชั้น Protobuf:ไม่เคยใช้ แต่อ่านว่าคุณต้องทำเยอะแยะไปหมดและทำลายถ้าคุณเปลี่ยนชั้นเรียน ตัวเลือกอื่น? นั่นคือเหตุผลที่ฉันมาที่นี่! แก้ไข: นี่คือ Java btw แก้ไข 2: ฉันตัดสินที่ "การทำให้เป็นอันดับไบนารีควบคุม" (ดูด้านล่าง) ข้อดี: มันรวดเร็ว มันมีขนาดเล็ก (บนดิสก์) และสามารถบีบอัด / คลายการบีบอัดได้อย่างง่ายดายระหว่างอ่าน / เขียน มันง่ายมากที่จะอ่าน / เขียนจากเกมและชุดเครื่องมือ ฉันสามารถตัดสินใจว่าจะรวม / ไม่รวมวัตถุ …
37 java  file-format  xml  data  file 

3
ไดเร็กตอรี่ใดที่จะเขียนไฟล์ / ข้อมูลของเกม?
ฉันต้องมีรายการที่ชัดเจนของไดเรกทอรีหนึ่งหรือมากกว่าต่อแพลตฟอร์มของการที่จะนำเกมบันทึกไฟล์และเกมที่สร้างข้อมูลอื่น ๆ อาจเป็นไปตามข้อกำหนดของนักพัฒนาระบบปฏิบัติการหรือเนื่องจากเป็นการใช้งานทั่วไปหากไม่มีข้อเสนอแนะ โปรดระบุหนึ่งคำตอบต่อแพลตฟอร์มที่มีไดเรกทอรีต่างกัน นอกจากนี้ตัวอย่างวิธีรับตำแหน่งไดเรกทอรีใน C ++ หรือ C นั้นดีที่สุดเนื่องจากเป็นภาษาที่คุณจะมีเวลามากขึ้น สถานที่: ข้อมูลเกมของผู้เล่น (เกมที่บันทึกไว้, การกำหนดค่า) ข้อมูลเกมที่แชร์ (เช่นคะแนนสูงหรือกำหนดค่าสำหรับผู้ใช้คอมพิวเตอร์ทุกคน) ข้อมูลเกมชั่วคราว (ไดเรกทอรีแคช aka)
37 savegame 

4
จะออกแบบคลาสโจมตีในเกม RPG ได้อย่างไร?
ฉันอยู่ในช่วงการวางแผนของเกมสไตล์ RPG ขนาดเล็ก ตัวละครจะมีชุดของคุณลักษณะเช่นความแข็งแกร่งความคล่องตัว ฯลฯ ซึ่งแสดงเป็นจำนวนเต็ม ตัวละครจะมีชุดของการโจมตีที่แสดงว่าเป็นระดับการโจมตี ในการโจมตีแต่ละครั้งฉันต้องการให้มันสร้างความเสียหายตามคุณลักษณะของตัวละครเช่น: การโจมตี "ดาบเฉือน" จะทำ 10 dmg + ค่าของความแข็งแกร่งของตัวละคร วิธีที่ฉันคิดว่าจะทำเช่นนี้คือมีคลาสการโจมตีที่เป็นนามธรรมซึ่งมีวิธีการโจมตีแบบนามธรรมและสำหรับการโจมตีแต่ละครั้งฉันจะสร้างคลาสหนึ่งที่ใช้วิธีการโจมตี public class SwordSlash:Attack { public void Attack(Character attacker, Character defender) { defender.DoDamage(10 + attacker.Strength); } } ฉันเห็นว่าสิ่งนี้จะทำให้ฝันร้ายรักษา ใครบ้างมีความคิดว่าฉันจะทำสิ่งนี้ให้สำเร็จได้อย่างไร? สิ่งที่ฉันคิดว่าเป็นปัญหาหลักคือวิธีการป้อนแอตทริบิวต์ที่ถูกต้องตามการโจมตี
37 game-design  rpg 

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