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

C ++ เป็นภาษาเขียนโปรแกรมแบบสแตติกแบบหลายกระบวนทัศน์รวบรวมภาษาโปรแกรมอเนกประสงค์

3
วนรอบเกม, วิธีตรวจสอบเงื่อนไขหนึ่งครั้ง, ทำอะไรแล้วไม่ทำอีกครั้ง
ตัวอย่างเช่นฉันมีคลาสเกมและมันจะคอยintติดตามชีวิตของผู้เล่น ฉันมีเงื่อนไข if ( mLives < 1 ) { // Do some work. } อย่างไรก็ตามเงื่อนไขนี้ยังคงมีการยิงต่อเนื่อง ตัวอย่างเช่นฉันต้องการตั้งเวลาเพื่อออกจากเกมใน 5 วินาที ปัจจุบันมันจะตั้งค่าเป็น 5 วินาทีทุกเฟรมและเกมจะไม่มีวันสิ้นสุด นี่เป็นเพียงตัวอย่างเดียวและฉันมีปัญหาเดียวกันในหลาย ๆ ด้านของเกม ฉันต้องการตรวจสอบเงื่อนไขบางอย่างแล้วทำบางครั้งเพียงครั้งเดียวแล้วไม่ตรวจสอบหรือทำรหัสในคำสั่ง if อีกครั้ง วิธีแก้ปัญหาที่เป็นไปได้บางอย่างที่อยู่ในใจกำลังมีอยู่boolสำหรับแต่ละเงื่อนไขและตั้งค่าboolเมื่อเงื่อนไขเริ่มทำงาน อย่างไรก็ตามในทางปฏิบัติสิ่งนี้ได้รับการจัดการที่ยุ่งมากboolsเนื่องจากพวกมันจะต้องถูกเก็บไว้เป็นฟิลด์คลาสหรือคงที่ภายในวิธีการเอง การแก้ปัญหาที่เหมาะสมสำหรับสิ่งนี้คืออะไร (ไม่ใช่สำหรับตัวอย่างของฉัน แต่สำหรับโดเมนปัญหา) คุณจะทำสิ่งนี้ในเกมได้อย่างไร?
13 c++  game-loop 

1
DirectX11 ที่ไม่มีหน้าต่างติดอยู่?
ฉันแค่สงสัยว่าถ้าเป็นไปได้ที่จะเริ่มต้นและใช้ DX11 หรือ DX9 สำหรับการเรนเดอร์ออฟเซ็ตเท่านั้น - หมายถึงไม่มีหน้าต่างที่แนบมา ฉันตั้งใจจะทำการเปรียบเทียบ GPU ก่อนที่จะเปิดหน้าต่างจริง ในการเปรียบเทียบนี้ฉากทดสอบบางส่วนได้รับการแสดงผล แต่ไม่ควรมองเห็นได้ (ที่จริงขึ้นอยู่กับคะแนนมาตรฐานที่แตกต่างกันเปิดหน้าต่าง)
13 c++  directx11 

4
ซ่อนข้อมูลเกมจากผู้เล่นหรือไม่
ฉันกำลังทำงานในเกมแรก (C ++) ของฉันและฉันต้องการใช้การออกแบบตามองค์ประกอบ ฉันอ่านมากเกี่ยวกับเรื่องนี้เมื่อเร็ว ๆ นี้และเมื่อวานนี้ฉันตัดสินใจว่าฉันต้องการเก็บข้อมูลวัตถุในไฟล์ JSON ภายนอกเพื่อให้มีความยืดหยุ่นและเข้าถึงได้ง่ายขึ้น จากนั้นก็เริ่มที่ฉันที่ทิ้งไฟล์เหล่านี้ไว้ในไดเรกทอรีต้นไม้ของเกมจะอนุญาตให้ผู้เล่นแก้ไขสิ่งที่พวกเขาต้องการได้อย่างง่ายดาย ฉันไม่ได้กังวลเกี่ยวกับการแสดงรหัสให้กับนักพัฒนาเพราะเกมจะเป็นโอเพ่นซอร์ส แต่ฉันเกรงว่านักเล่นเกมที่ไม่มีประสบการณ์อาจทำลายเกมหรืออย่างน้อยก็ทำลายความสนุก ฉันพลาดอะไรไปรึเปล่า? นโยบายเกี่ยวกับการซ่อนข้อมูลเกม (ในเกมโอเพ่นซอร์ส) คืออะไร เป็นเรื่องปกติหรือไม่ที่จะปล่อยให้ทุกคนสามารถเข้าถึงได้โดยง่าย ถ้าไม่เป็นวิธีที่ดีในการซ่อนข้อมูลคืออะไร?
13 c++  data 

7
รูปแบบรูปภาพที่ดีที่สุด (เป็นที่นิยมที่สุด)
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา โอเคดังนั้นฉันใช้ C ++ กับ OpenGL และฉันจะสร้างตัวโหลดเพื่อโหลดพื้นผิวสำหรับเกม 3 มิติของฉัน (แต่พื้นผิวเป็นแบบ 2D) ฉันต้องการตัวเลือกของความโปร่งใสแม้ว่าฉันจะตัดสินใจไม่ใช้ก็ตาม ฉันต้องการคุณภาพที่ดีแม้ว่ามันจะไม่ได้เป็นสิ่งที่ดีที่สุด พวกคุณแนะนำอะไรสำหรับการจัดรูปแบบ (PNG, TGA และอื่น ๆ ) นอกจากนี้อาจทำให้เป็นสิ่งที่ง่ายต่อการสร้างตัวโหลดสำหรับ (ฉันจะไม่ใช้ตัวสร้างที่สร้างไว้แล้ว) และถ้าคุณมีลิงค์ / คำแนะนำเพื่อช่วยในการโหลดมันจะได้รับการชื่นชม
13 c++  opengl  textures 

5
ไลบรารีที่แนะนำสำหรับการใช้ Lua จาก C ++ คืออะไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ขณะนี้ฉันกำลังวางแผนที่จะรวมการเขียนสคริปต์ Lua ใน 2D Game Engine ของฉันและฉันต้องการไปยังทางออกที่เหมาะสมที่สุดสำหรับการเรียน C ++ และวัตถุต่างๆ ฉันได้อ่านสิ่งนี้แล้ว (ถ้ามันช่วยคุณได้): http://lua-users.org/wiki/BindingCodeToLua หากคุณมีภาษาสคริปต์ที่ดีกว่าที่จะแนะนำอีกครั้งให้ไป; D ยินดีต้อนรับทุกความช่วยเหลือฉันต้องการวิธีที่ดีที่สุดในการเริ่มต้นใช้งานขอบคุณ
13 c++  lua 

5
แพ็คเกจเนื้อหาที่กำหนดเองสำหรับไฟล์
ฉันกำลังจะซื้อชุดโมเดลจำนวนหนึ่งจากเว็บไซต์เพื่อทำต้นแบบเกมของฉัน ในสัญญาระบุว่าฉันต้องปกป้องพวกเขาเพื่อป้องกันไม่ให้ประชาชนเข้าถึงพวกเขา ฉันจำได้ว่าทำงานกับเกม Valve พวกเขาใช้. gcf (ไฟล์เนื้อหาเกม) ซึ่งโดยทั่วไปแล้วเป็นการเก็บถาวรเนื้อหาทั้งหมดสำหรับแต่ละเกม พวกเขาบรรจุเสียง / วัสดุ / รุ่น / แผนที่ / ฯลฯ ฉันคิดว่ามันอาจไม่ใช่ความคิดที่ดีที่จะพัฒนาสิ่งที่คล้ายกับนี้และเพียงเขียนเครื่องมือขนาดเล็กเพื่อให้ฉันเพิ่ม / ลบไฟล์ออกจากมัน ปัญหาคือฉันไม่รู้ว่าจะเริ่มต้นอย่างไรกับเรื่องนี้ ฉันลองใช้ Google แต่ไม่รู้ด้วยซ้ำว่าจะค้นหาอะไร หากใครมีความคิดใด ๆ ลิงก์ที่อาจเป็นประโยชน์หรืออย่างอื่นฉันก็จะขอบคุณมันมาก
13 game-design  c++ 

8
กรอบการทดสอบหน่วยใดสำหรับเกมที่ใช้ c ++ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เครื่องมือการทดสอบแบบใดที่คุณรู้สึกว่าดีที่สุด? ให้กรอบ / ไลบรารีที่คุณเลือกคุณอาจพิจารณา: ความเหมาะสมสำหรับTDD ใช้งานง่าย / ผลผลิต การจัดการกับวัตถุจำลอง การตั้งค่าด้วยการรวมอย่างต่อเนื่อง การรายงานข้อผิดพลาด หมายเหตุ: ในขณะนี้อาจเป็นคำถามทั่วไปเช่นเดียวกับใน SOฉันจะยืนยันว่าการพัฒนาเกมมักจะผูกพันกับกระบวนการทำงานที่เฉพาะเจาะจงซึ่งมีอิทธิพลต่อทางเลือกสำหรับการทดสอบ สำหรับมุมมองในระดับสูง, ดูคำถามทดสอบของเกมอัตโนมัติ
13 c++  testing 

1
เฉดสีที่แตกต่างกันสำหรับวัตถุที่แตกต่าง DirectX 11
ฉันกำลังเรียนรู้Direct3D 11และในบทเรียนพื้นฐานทั้งหมดที่ฉันพบในการเขียน Shader, Vertex และ Pixel shaders จึงถูกเขียนขึ้นเพื่อให้พวกเขาเปลี่ยนทั้งฉากในลักษณะเดียวกัน บทแนะนำเช่นเรนเดอร์คิวบ์พร้อมพื้นผิว ... แต่ฉันสงสัยว่าคุณแยกแยะวัตถุอย่างไร ยกตัวอย่างเช่นถ้าคุณต้องการที่จะจำลองพื้นผิวกระจกบนวัตถุบางอย่างและใช้เฉดสีที่แตกต่างกันในการทำให้ส่วนที่เหลือของฉาก ฉันคิดว่าเกมส่วนใหญ่จะต้องใช้จุดสุดยอดและ Pixel Shader เพื่อให้ได้รูปลักษณ์และการเปลี่ยนแปลงที่หลากหลาย ขอขอบคุณ.
13 c++  directx11 

3
การระบุเนื้อหาในเครื่องมือสร้างเกม?
ฉันต้องการระบุเนื้อหาที่โหลด แต่ไม่ทราบว่าควรเลือกแบบใด มี 2 ​​ตัวเลือก: ชื่อ (สตริง) นี่เป็นวิธีที่ง่ายที่สุดและรวดเร็วด้วย unordered_map (O (1)) แต่วิธีที่ช้ากว่านั้นใช้จำนวนเต็ม เข้าใจได้ง่ายในรหัส จำนวนเต็ม ที่เร็วที่สุด ไม่เข้าใจในโค้ด ฉันรู้ว่าสายไม่ปลอดภัยหรือเร็ว แต่มันแย่ขนาดนั้นหรือนับว่าแย่ในชื่อ AAA เท่านั้น? ฉันสามารถสร้าง enums ใช้จำนวนเต็ม แต่ถ้าฉันโหลดฉากสินทรัพย์ ฯลฯ จากไฟล์ตอนรันไทม์ฉันไม่สามารถใช้ enums ได้ มีวิธีทำให้จำนวนเต็มเหล่านี้สามารถอ่านได้ถ้าพวกเขาจะถูกสร้างขึ้นที่ runtime? ฉันรู้ว่าปัญหานี้มีเธรดไม่กี่ทั่วอินเทอร์เน็ต แต่ฉันไม่สามารถหาวิธีที่สำคัญในกรณีนี้

1
ฉันจะจัดการข้อมูลและการพึ่งพาระหว่างคลาสได้อย่างเรียบร้อยและสวยงามได้อย่างไร
ฉันกำลังเล่นเกม 2d topdown ใน SFML 2 และต้องการหาวิธีที่สวยงามที่ทุกอย่างจะทำงานร่วมกันได้ ให้ฉันอธิบาย ฉันมีจำนวนคลาสที่สืบทอดมาจากฐานนามธรรมที่ให้วิธีการวาดและวิธีการอัปเดตไปยังคลาสทั้งหมด ในเกมวนรอบฉันเรียกการอัปเดตแล้ววาดในแต่ละชั้นฉันคิดว่านี่เป็นวิธีการทั่วไป ฉันมีชั้นเรียนสำหรับไทล์การชนผู้เล่นและผู้จัดการทรัพยากรที่มีไทล์ / รูปภาพ / พื้นผิวทั้งหมด เนื่องจากวิธีการอินพุตทำงานใน SFML ฉันตัดสินใจที่จะให้แต่ละอินพุตจัดการคลาส (ถ้าจำเป็น) ในการเรียกใช้การอัพเดต จนถึงตอนนี้ฉันได้ผ่านการอ้างอิงตามต้องการเช่นในคลาสผู้เล่นเมื่อกดปุ่มการเคลื่อนไหวฉันเรียกวิธีการในคลาสการชนเพื่อตรวจสอบว่าตำแหน่งที่ผู้เล่นต้องการย้ายไปเป็นการชนหรือไม่ และย้ายผู้เล่นเฉพาะเมื่อไม่มีการชนกัน สิ่งนี้ใช้ได้ดีสำหรับส่วนใหญ่ แต่ฉันเชื่อว่ามันสามารถทำได้ดีกว่าฉันไม่แน่ใจว่าจะทำอย่างไร ตอนนี้ฉันมีสิ่งที่ซับซ้อนกว่าที่ฉันต้องนำไปใช้เช่นผู้เล่นสามารถเดินไปที่วัตถุบนพื้นดินกดปุ่มเพื่อหยิบขึ้นมา / ยกมันขึ้นมาแล้วมันจะปรากฏในสินค้าคงคลัง นี่หมายความว่าต้องมีบางสิ่งเกิดขึ้น: ตรวจสอบว่าผู้เล่นอยู่ในช่วงของไอเท็มที่สามารถรีบูตได้บนปุ่มกดมิฉะนั้นจะไม่ดำเนินการต่อ ค้นหารายการ อัปเดตพื้นผิวสไปรต์ในรายการจากพื้นผิวเริ่มต้นเป็นพื้นผิว "ปล้น" อัปเดตการชนกันของรายการ: อาจมีการเปลี่ยนแปลงรูปร่างหรือถูกลบออกอย่างสมบูรณ์ ต้องอัปเดตคลังโฆษณาด้วยรายการที่เพิ่ม ฉันจะทำให้ทุกอย่างสื่อสารได้อย่างไร ด้วยระบบปัจจุบันของฉันฉันจะจบลงด้วยการเรียนนอกขอบเขตและวิธีการโทรหากันทั่วทุกที่ ฉันสามารถผูกชั้นเรียนทั้งหมดในผู้จัดการใหญ่คนหนึ่งและให้แต่ละคนอ้างอิงถึงชั้นผู้จัดการหลัก แต่สิ่งนี้ดูดีขึ้นเล็กน้อยเท่านั้น ความช่วยเหลือ / คำแนะนำใด ๆ ที่จะได้รับการชื่นชมอย่างมาก! หากสิ่งใดไม่ชัดเจนฉันยินดีที่จะขยายสิ่ง
12 c++  2d  architecture  sfml 

4
การพึ่งพาคลาสแบบวงกลม
การออกแบบไม่ดีหรือไม่ที่มี 2 คลาสที่ต้องใช้ซึ่งกันและกัน? ฉันกำลังเขียนเกมเล็ก ๆ ที่ฉันมีGameEngineชั้นเรียนที่มีGameStateวัตถุบางอย่าง ในการเข้าถึงวิธีการแสดงผลหลายวิธีGameStateวัตถุเหล่านี้จำเป็นต้องทราบGameEngineคลาสด้วย - ดังนั้นจึงเป็นการอ้างอิงแบบวนรอบ คุณจะเรียกการออกแบบที่ไม่ดีนี้หรือไม่? ฉันแค่ถามเพราะฉันไม่แน่ใจและในเวลานี้ฉันยังสามารถ refactor สิ่งเหล่านี้
12 c++  architecture 

2
กำลังทดสอบเซิร์ฟเวอร์เกมโดยไม่มีผู้ใช้งานหรือไม่
ฉันทำงานกับการ์ดเกมและเซิร์ฟเวอร์ของมัน จะมีล็อบบี้พร้อมโต๊ะมากมายและผู้เล่นหลายคน ปัญหาเดียวคือฉันจะดูได้อย่างไรว่ามันจะจัดการกับผู้ใช้งานพร้อมกัน 100 คนโดยไม่ต้องมีผู้ใช้งานพร้อมกันหลายร้อยคนได้อย่างไร มักจะทำสิ่งนี้อย่างไร
12 c++  server  testing 

1
ฉันจะวาดลูกศรที่ขอบของหน้าจอที่ชี้ไปยังวัตถุที่อยู่นอกหน้าจอได้อย่างไร
ฉันต้องการทำสิ่งที่อธิบายไว้ในหัวข้อนี้: http://www.allegro.cc/forums/print-thread/283220 ฉันได้ลองวิธีการต่าง ๆ ที่กล่าวถึงที่นี่ ก่อนอื่นฉันพยายามใช้วิธีที่อธิบายโดย Carrus85: ลองหาอัตราส่วนของสามเหลี่ยมไฮโปเทนไนต์สามเหลี่ยมสองอัน (ไม่สำคัญว่าคุณจะใช้ triagle ตัวไหนสำหรับอันอื่นฉันขอแนะนำจุดที่ 1 และจุดที่ 2 ตามระยะทางที่คุณคำนวณ) นี่จะให้เปอร์เซ็นต์อัตราส่วนของสามเหลี่ยมที่มุมจากสามเหลี่ยมขนาดใหญ่ จากนั้นคุณก็คูณค่าลบด้วยค่านั้นเพื่อให้ได้ค่าพิกัด x พิกัดและเลื่อนตามค่านั้นเพื่อให้ได้ค่าชดเชยพิกัด y แต่ฉันไม่สามารถหาวิธีคำนวณว่าวัตถุอยู่ห่างจากขอบของหน้าจอมากแค่ไหน ฉันลองใช้การฉายรังสี (ซึ่งไม่เคยทำมาก่อน) แนะนำโดย 23yrold3yrold: ยิงรังสีออกจากกึ่งกลางของหน้าจอไปยังวัตถุที่อยู่นอกจอ คำนวณว่าจุดใดที่สี่เหลี่ยมผืนผ้าตัดกับแสง มีพิกัดของคุณ ฉันคำนวณด้านตรงข้ามมุมฉากของสามเหลี่ยมที่เกิดขึ้นจากความแตกต่างในตำแหน่ง x และ y ของจุดสองจุด ฉันใช้สิ่งนี้เพื่อสร้างเวกเตอร์หน่วยตามเส้นนั้น ฉันวนลูปผ่านเวกเตอร์นั้นจนกระทั่งพิกัด x หรือพิกัด y ไม่อยู่บนหน้าจอ ค่า x และ y สองค่าปัจจุบันจากนั้นสร้างค่า x และ y ของลูกศร นี่คือรหัสสำหรับวิธีการฉายรังสีของฉัน (เขียนใน …

1
การค้นหาเส้นทางที่มีประสิทธิภาพในพื้นที่ว่าง
ฉันมีเกมตั้งอยู่ในอวกาศและฉันต้องการออกคำสั่งการเคลื่อนไหวซึ่งต้องใช้การค้นหาเส้นทาง ตอนนี้ฉันเข้าใจแล้วว่า A * และเช่นนั้นส่วนใหญ่ใช้กับต้นไม้และไม่ใช่พื้นที่ว่างที่ไม่มีโหนดการค้นพบ ฉันมีสิ่งกีดขวางบางอย่างซึ่งขณะนี้แสดงเป็น AABB แบบคงที่นั่นคือไม่มีสิ่งกีดขวาง "ภูมิประเทศ" ที่ไม่มีขอบเขต นอกจากนี้ฉันคาดหวังว่าอุปสรรคส่วนใหญ่จะประมาณได้อย่างสมเหตุสมผลว่าเป็นลูกบาศก์หรือทรงกลม ดังนั้นฉันจึงคิดที่จะใช้อัลกอริธึม pathfinding ที่ง่ายกว่ามากนั่นคือเพียงแค่ทำการฉายรังสีจากตำแหน่งปัจจุบันไปยังตำแหน่งเป้าหมายแล้วฉันจะได้รับรายการสิ่งกีดขวางโดยใช้การแบ่งพาร์ติชันอย่างรวดเร็ว สิ่งที่ฉันไม่แน่ใจเกี่ยวกับวิธีการกำหนดส่วนที่จัดทำแผนการรอบอุปสรรค สิ่งที่ฉันกำลังคิดอยู่ก็คือฉันจะใช้สนามที่มีศักยภาพ - นั่นคือทุกหน่วยจะรู้สึกถึงแรงผลักดันที่แข็งแกร่งจากกันและกันและแรงพอสมควรต่อจุดที่ต้องการ นี่ยังมีข้อได้เปรียบที่จะออกคำสั่งกลุ่มฉันก็สามารถสั่งให้กองกำลังระดับกลางไปยังนิติบุคคลอื่น แต่สิ่งนี้เห็นได้ชัดว่าไม่สามารถบรรลุทางออกที่ดีที่สุดได้ เขตข้อมูลที่เป็นไปได้นั้นจะได้รับการประมาณค่าอย่างสมเหตุสมผลเมื่อได้รับพารามิเตอร์ของฉันหรือฉันต้องการโซลูชันอื่นหรือไม่?
12 c++  path-finding 

2
ฉันกำลังมองหาการสร้างการเคลื่อนไหวของรถที่สมจริงโดยใช้เวกเตอร์
ฉันรู้วิธีการทำอย่างนี้และพบhttp://www.helixsoft.nl/articles/circle/sincos.htmนี้ฉันไปแล้ว แต่ฟังก์ชั่นส่วนใหญ่ที่แสดงไม่ทำงานฉันเพิ่งได้รับข้อผิดพลาด เพราะพวกเขาไม่อยู่ ฉันได้ดูฟังก์ชัน cos และ sin แต่ไม่เข้าใจวิธีใช้หรือวิธีการทำให้การเคลื่อนที่ของรถยนต์ทำงานอย่างถูกต้องโดยใช้เวกเตอร์ ฉันไม่มีรหัสเพราะฉันไม่แน่ใจว่าจะทำอย่างไรขอโทษ ความช่วยเหลือใด ๆ ที่ชื่นชม แก้ไข: ฉันมีข้อ จำกัด ที่ฉันต้องใช้เอ็นจิ้น TL สำหรับเกมของฉันฉันไม่ได้รับอนุญาตให้เพิ่มเอนจิ้นฟิสิกส์ประเภทใด จะต้องตั้งโปรแกรมใน c ++ นี่คือตัวอย่างของสิ่งที่ฉันได้จากการพยายามติดตามสิ่งที่ทำในลิงก์ที่ฉันให้ไว้ if(myEngine->KeyHeld(Key_W)) { length += carSpeedIncrement; } if(myEngine->KeyHeld(Key_S)) { length -= carSpeedIncrement; } if(myEngine->KeyHeld(Key_A)) { angle -= carSpeedIncrement; } if(myEngine->KeyHeld(Key_D)) { angle += carSpeedIncrement; } carVolocityX = cos(angle); carVolocityZ …

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