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

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

3
GNU GCC ใช้สำหรับเกม AAA หรือไม่
GNU GCC เป็นคอมไพเลอร์ทั่วไป แต่ดูเหมือนว่าไม่มีใครใช้มันสำหรับโครงการขนาดใหญ่เช่นเกม AAA สำหรับฉันมันใช้งานได้ดีไม่เคยมีปัญหากับมัน แต่ฉันสงสัยว่าทำไมเกม AAA ทั้งหมดจึงใช้คอมไพเลอร์ทางการค้าเช่น Intel Studio ทำไมมันถึงสำคัญ? GNU GCC ยังปรับโค้ดให้เหมาะสมสำหรับทุกระบบแทนที่จะเป็นเพียง Intel ดังนั้นทำไมพวกเขาจึงสนใจสิ่งต่าง ๆ เช่น Intel Studio
11 c++  game-industry  c  mingw 

5
คุณต้องการเซิร์ฟเวอร์ราคาแพงและโฮสต์แฟนซีเพื่อสร้างเกมแบบผู้เล่นหลายคนหรือไม่?
ฉันทำงานเกมสวมบทบาทเสร็จแล้วและมันสนุกมากที่จะทำให้มันเป็นแบบผู้เล่นหลายคน SFML มีคุณสมบัติเครือข่ายฉันคิดว่ามันเป็นไปได้ แต่แล้วอีกครั้งไม่เคยมีในชีวิตของฉันฉันได้ลองบางสิ่งพื้นฐานเกี่ยวกับระบบเครือข่ายในความเป็นจริงความรู้ของฉันมันมี จำกัด มาก สิ่งที่ต้องทำเพื่อให้ได้ทรัพยากรเกมที่มีผู้เล่นหลายคนเป็นอย่างไร ฉันไม่ได้พูดถึง MMO เหมือนเกมประเภท co-op ฉันต้องการเงินจำนวนมากสำหรับการโฮสต์และเซิร์ฟเวอร์และหลายสิ่งหลายอย่างเพื่อสร้างหรือไม่?
11 c++  multiplayer  sfml 

2
ฉันควรกังวลอะไรเมื่อเปลี่ยนแหล่งกำเนิด OpenGL ไปที่ด้านซ้ายบนของหน้าจอ
เพื่อการศึกษาด้วยตนเองฉันเขียนเครื่องมือ platformer 2D ใน C ++ โดยใช้ SDL / OpenGL ตอนแรกฉันเริ่มต้นด้วย SDL บริสุทธิ์โดยใช้บทเรียนบน sdltutorials.com และ lazyfoo.net แต่ตอนนี้ฉันใช้ SDL เพื่อสร้างบริบทการแสดงผล OpenGL แล้วแสดงผลด้วยฟังก์ชั่น OpenGL (โหมดเฉพาะทันที แต่ฉันเรียนรู้เกี่ยวกับ VAOs / VBOs ) ฉันใช้ SDL สำหรับอินเตอร์เฟสเสียง ฯลฯ เท่านั้น SDL ใช้ระบบพิกัดที่มีจุดกำเนิดที่ด้านซ้ายบนของหน้าจอและแกน y บวกที่ชี้ลง ง่ายต่อการตั้งค่าการฉายภาพของฉันใน OpenGL เพื่อสะท้อนสิ่งนี้ ฉันรู้ว่าพิกัดพื้นผิวเป็นระบบทางด้านขวามือที่มีค่าตั้งแต่ 0 ถึง 1 - พลิกพื้นผิวในแนวตั้งก่อนที่จะทำการเรนเดอร์ (เช่นนั้นพลิกไฟล์ก่อนที่จะโหลด) ทำให้ได้พื้นผิวที่แสดงอย่างถูกต้อง ... พื้นผิวทั้งหมด …
11 c++  opengl  2d  sdl 

1
แอปเปิ้ลเกมจำลอง - ไม่สามารถทำงานได้ [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันพยายามสร้างเกมด้วยฟิสิกส์นิวตัน ก่อนที่คุณจะอ่านส่วนที่เหลือนี่เป็นคำถามหลักของฉันฉันพยายามหาคำตอบ: ฉันได้รับข้อผิดพลาดที่ปรากฏขึ้นในหน้าต่างหลังจากที่ฉันพยายามเรียกใช้รหัสของฉัน ฉันหายไปในไลบรารีหรือ dll ใด ฉันมีแอปเปิ้ลส้มและดินสอ ฉันได้อ่านเอกสารส่วนใหญ่ด้วยเครื่องมือแสดงหัวข้อย่อยทางฟิสิกส์แล้ว แต่ฉันไม่สามารถทำให้แอปเปิ้ลทำตัวเหมือนกระดาษ (2d-ish) เครื่องยนต์ฟิสิกส์ Box2d และนั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันไม่ชอบกล่องในชีวิตจริงปล่อยให้อยู่คนเดียวในโลกไซเบอร์ ฉันต้องการให้แอปเปิ้ลลอยลงไปที่พื้นแบบแกว่งไปมาเหมือนกระดาษแผ่นหนึ่ง ไซต์นี้ให้ข้อมูลที่เป็นประโยชน์บางอย่างที่ฉันรวมเข้ากับรหัสของฉัน: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854- ได้โปรดช่วยด้วย !! - จำลองกระดาษลอยไปสู่พื้น ฉันมีความคิดนี้สำหรับเกมที่คุณทำให้วัตถุมีพฤติกรรมเหมือนกับวัตถุประเภทอื่น แต่การจำลองเกมของฉันไม่ทำงาน ฉันผ่านแอปเปิ้ลหลายประเภทมากเกินไปที่จะนับและไม่มีใครเข้ามาเลย ฉันลองค้นหาคนอื่นที่ลองใช้สิ่งที่คล้ายกัน (ใช้ googles เช่นhttp://lmgtfy.com/?q=simluating+game+apples+in+real+life ) แต่ไม่มีแอปเปิ้ลคืนมาเลย! ดังนั้นฉันคิดว่าฉันกำลังจะเข้าสู่ดินแดนใหม่ที่นี่ (ไม่ต้องกังวลฉันจะเปิดแหล่งข้อมูลเทคนิคของฉัน) และนั่นเป็นสาเหตุที่สิ่งต่าง ๆ ไม่ได้ผลสำหรับฉัน ฉันได้ลองเขียนโปรแกรมแอปเปิ้ลชนิดต่าง ๆ แต่บางทีฉันอาจต้องการแอปเปิ้ลไซเบอร์? ฉันไม่ทราบว่าจะได้รับหนึ่งในนั้นอาจจะอยู่ในสถานที่เช่นนี้: http://cyberapples.com/เว็บไซต์ที่อยู่ในขณะนี้ - มันเคยพูดคุยเกี่ยวกับถังขยะ …
11 c++ 

3
วิธีการจัดโปรแกรมเกมใน C ++? การใช้การรับมรดกของฉันเป็นความคิดที่ดีหรือไม่?
ฉันเป็นผู้เริ่มต้นทั้งในการพัฒนาเกมและการเขียนโปรแกรม ฉันพยายามเรียนรู้หลักการบางอย่างในการสร้างเอ็นจิ้นเกม ฉันต้องการสร้างเกมง่ายๆฉันอยู่ในจุดที่ฉันพยายามนำเอ็นจิ้นเกมมาใช้ ดังนั้นฉันคิดว่าเอ็นจิ้นเกมของฉันควรควบคุมสิ่งนี้: - Moving the objects in the scene - Checking the collisions - Adjusting movements based on collisions - Passing the polygons to the rendering engine ฉันออกแบบวัตถุของฉันเช่นนี้: class GlObject{ private: idEnum ObjId; //other identifiers public: void move_obj(); //the movements are the same for all the objects (nextpos …
11 c++  architecture  oop 

2
วิธีปิดการใช้งานการเคลื่อนไหวแกน Y ในเอนจินของกระสุนฟิสิกส์
ฉันต้องการสร้างวัตถุมากกว่าเคลื่อนที่ไปตามแกน X และ Z เท่านั้นในขณะที่ปิดการใช้งานแกน Y (มันเหมือนกับการเคลื่อนที่ใน 2D และวัตถุจะไม่ล้มลง) ขณะนี้ฉันกำลังใช้ข้อ จำกัด 6 dof เพื่อ จำกัด การเคลื่อนไหวในแกน Y แต่มันไม่ทำงาน: btRigidBody* zeroBody = new btRigidBody(0, NULL, NULL); // Create the body that we attach things to btRigidBody* robot = mCarChassis->getBulletRigidBody(); btGeneric6DofConstraint* constrict = new btGeneric6DofConstraint(*robot, *zeroBody, btTransform::getIdentity(), btTransform::getIdentity(), false); constrict->setLinearLowerLimit( btVector3( 1, …

2
อะไรคือวิธีที่ดีที่สุดในการทำให้เป็นอันดับและยกเลิกการบอกกล่าวข้อความเครือข่ายสำหรับเกมที่มีผู้เล่นหลายคนใน C / C ++
เรากำลังใช้ JSON ในขณะนี้และต้องการย้ายไปยังรูปแบบไบนารีสำหรับข้อความบางประเภทระหว่างไคลเอนต์และเซิร์ฟเวอร์ ฉันควรจะอ่าน structs ลงในซ็อกเก็ตหรือไม่? ใช้บัฟเฟอร์โปรติคอล / เจริญเติบโตอย่างรวดเร็ว? ฉันควรแสดงอาร์เรย์ของข้อมูลอย่างไร อินเตอร์เฟสควรมีลักษณะอย่างไรสำหรับการบรรจุ / เปิดออกข้อมูล

1
ลงทะเบียนส่วนประกอบเกมวัตถุในระบบย่อยเกม? (การออกแบบวัตถุเกมตามส่วนประกอบ)
ฉันกำลังสร้างระบบเกมวัตถุ component-based เคล็ดลับบางอย่าง: GameObjectComponentsเป็นเพียงรายการ GameSubsystemsมี ยกตัวอย่างเช่นการแสดงผลฟิสิกส์ ฯลฯ แต่ละมีตัวชี้ไปยังบางส่วนของGameSubsystem เป็นนามธรรมที่ทรงพลังและยืดหยุ่นมาก: มันแสดงถึงส่วนใด ๆ ของเกม (หรือแง่มุม)ComponentsGameSubsystem มีความต้องการในกลไกของการลงทะเบียนComponentsในGameSubsystems(เมื่อGameObjectถูกสร้างและสงบ) มี4 วิธีคือ: 1: รูปแบบของความรับผิดชอบ ทุกคนมีให้แก่ทุกคนComponent ตัดสินใจในการลงทะเบียน (และวิธีการจัดระเบียบ) ตัวอย่างเช่น GameSubsystemRender สามารถลงทะเบียน Renderable Components ได้GameSubsystemGameSubsystemComponents มือโปร. Componentsไม่รู้อะไรเกี่ยวกับวิธีการใช้งาน คลัปต่ำ A.GameSubsystemเราสามารถเพิ่มใหม่ ตัวอย่างเช่นให้เพิ่ม GameSubsystemTitles ที่ลงทะเบียน ComponentTitle ทั้งหมดและรับประกันว่าทุกชื่อจะไม่ซ้ำกันและมีส่วนต่อประสานในการสอบถามวัตถุตามชื่อ แน่นอน ComponentTitle ไม่ควรเขียนใหม่หรือสืบทอดในกรณีนี้ B.GameSubsystemsเราสามารถจัดระเบียบที่มีอยู่ ตัวอย่างเช่น GameSubsystemAudio, GameSubsystemRender, GameSubsystemParticleEmmiter สามารถผสานเข้ากับ GameSubsystemSpatial (เพื่อวางเสียง emmiter ทั้งหมดให้Componentsอยู่ในลำดับชั้นเดียวกันและใช้การแปลงแบบญาติสัมพันธ์) แย้ง …

1
ปัญหาการตรวจจับการชนวงกลม -line
ขณะนี้ฉันกำลังพัฒนาโคลนการฝ่าวงล้อมและฉันได้ตีสิ่งกีดขวางบนถนนในการตรวจจับการชนกันระหว่างลูกบอล (วงกลม) และอิฐ (รูปหลายเหลี่ยมนูน) ทำงานอย่างถูกต้อง ฉันใช้การทดสอบการตรวจจับการชนกันของข้อมูลเส้นวงกลมโดยที่แต่ละบรรทัดแสดงถึงและขอบบนก้อนอิฐรูปหลายเหลี่ยมนูน ส่วนใหญ่แล้วการทดสอบแบบ Circle-Line นั้นทำงานได้อย่างถูกต้องและจุดของการชนนั้นได้รับการแก้ไขอย่างถูกต้อง การตรวจจับการชนกันทำงานอย่างถูกต้อง อย่างไรก็ตามในบางครั้งรหัสตรวจจับการชนของฉันคืนเท็จเนื่องจากการเลือกปฏิบัติเชิงลบเมื่อลูกบอลตัดกับก้อนอิฐ การตรวจหาการชนกันล้มเหลว ฉันตระหนักถึงความไร้ประสิทธิภาพด้วยวิธีนี้และฉันใช้กล่องที่จัดเรียงตามแนวแกนเพื่อลดจำนวนอิฐที่ทดสอบ ความกังวลหลักของฉันคือถ้ามีข้อบกพร่องทางคณิตศาสตร์ในรหัสของฉันด้านล่าง /* * from and to are points at the start and end of the convex polygons edge. * This function is called for every edge in the convex polygon until a * collision is detected. */ …

1
การพัฒนาข้ามแพลตฟอร์ม C ++ / OpenGL ES (iOS / Android) [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันมีประสบการณ์ที่สมเหตุสมผลกับ C ++ และ OpenGL และฉันเพิ่งตัดสินใจลองพัฒนาเกมมือถือ หลังจากประสบความสำเร็จในการสร้างแอป OpenGL ES Android อย่างง่ายโดยใช้ Java ฉันวิจัยวิธีกำหนดเป้าหมายทั้ง Android และ iOS ด้วยรหัสการเขียนใหม่ให้น้อยที่สุดเท่าที่จะทำได้ ฉันลองใช้เครื่องมือพัฒนาแอพข้ามแพลตฟอร์มที่ภูมิใจของ Visual Studio 2015 แต่พบว่ามันใหม่เกินไปและมีการจัดทำเอกสารน้อยมาก ฉันสามารถสร้างเทมเพลตโครงการที่โปรแกรมมอบให้ฉัน แต่ฉันไม่สามารถหาวิธีได้จากเทมเพลตเหล่านี้ฉันอาจเพิ่มเนื้อหาลงในเกมหรือจัดการกับหน้าจอสัมผัส ฉันมีความปรารถนาที่เฉพาะเจาะจง แต่น่าเสียดายที่เฉพาะเจาะจงที่จะค้นหาด้วย Google ฉันต้องการสร้างเกม OpenGL ES โดยใช้ C ++ พร้อมโปรแกรมเสริมเฉพาะแพลตฟอร์มสำหรับ Android และ iOS ผู้คนถามคำถามที่คล้ายกันกับฉัน (แต่ไม่เหมือนกัน) …

2
หมุนกล้องคนที่ 3 ไปยังเป้าหมาย
ฉันมีกล้องคนที่ 3 ที่ไม่ได้ดูที่ผู้เล่นโดยตรง แต่อยู่ตรงหน้าเขา เมื่อผู้ใช้เข้าสู่โหมดถ่ายภาพฉันต้องการให้กล้องหมุนไปรอบ ๆ ผู้เล่นเพื่อเผชิญหน้ากับเป้าหมาย ในภาพด้านบน "O" คือผู้เล่น (ต้นทาง) "L" คือการค้นหา "C" คือตำแหน่งกล้องและ "T" เป็นเป้าหมาย ฉันต้องการหมุนเส้น lookat C-> L เพื่อให้มันผ่าน T (C '-> L' -> T ') รอบ Origin ("O") โดยทั่วไปฉันต้องหามุมอัลฟาที่ใส่สีแดงไว้ในภาพ ฉันเก็บตำแหน่งกล้องของฉันในโครงสร้างเช่น: struct CameraTarget { Quaternion absoluteRotation; Vec3 absolutePosition; Vec3 cameraOffset; Vec3 lookatOffset; float FOV; } ดังนั้นหากฉันสามารถหามุมที่ฉันกำลังมองหาฉันสามารถทำสิ่งที่ชอบ: cam->absoluteRotation …

1
ใช้ประโยชน์จากการมัลติเธรดระหว่างเกมลูปและ openGL
การพูดคุยในบริบทของเกมโดยใช้ openGL renderer: สมมติว่ามีสองหัวข้อ: อัพเดทตรรกะของเกมและฟิสิกส์เป็นต้นสำหรับในเกมวัตถุ ทำให้ openGL ดึงสายสำหรับแต่ละวัตถุในเกมตามข้อมูลในวัตถุในเกม (เธรด 1 นั้นทำการปรับปรุงอยู่เสมอ) ยกเว้นว่าคุณมีสองสำเนาของวัตถุแต่ละเกมในสถานะปัจจุบันของเกมคุณจะต้องหยุดเธรด 1 ในขณะที่เธรด 2 ทำการเรียกการดึงมิฉะนั้นวัตถุในเกมจะได้รับการอัปเดตในช่วงกลางของการดึงการดึงสำหรับวัตถุนั้น ไม่พึงประสงค์! แต่การหยุดเธรด 1 เพื่อโทรออกอย่างปลอดภัยจากเธรด 2 ฆ่าวัตถุประสงค์ทั้งหมดของการทำงานหลายเธรด / การทำงานพร้อมกัน มีวิธีการที่ดีกว่านี้กว่าการใช้หลายร้อยหรือหลายพันหรือซิงค์วัตถุ / รั้วเพื่อให้สถาปัตยกรรมแบบมัลติคอร์สามารถใช้ประโยชน์จากประสิทธิภาพการทำงานหรือไม่ ฉันรู้ว่าฉันยังสามารถใช้มัลติเธรดสำหรับการโหลดพื้นผิวและการรวบรวมเฉดสีสำหรับวัตถุที่ยังไม่ได้เป็นส่วนหนึ่งของสถานะเกมปัจจุบัน แต่ฉันจะทำอย่างไรกับวัตถุที่ใช้งาน / มองเห็นได้โดยไม่ทำให้เกิดความขัดแย้งกับการดึงและอัปเดต จะเกิดอะไรขึ้นถ้าฉันใช้การล็อกการซิงค์แยกกันในแต่ละวัตถุของเกม วิธีนี้เธรดใด ๆ จะบล็อกเฉพาะวัตถุหนึ่งรายการ (กรณีที่เหมาะสมที่สุด) แทนที่จะเป็นทั้งรอบการอัพเดท / วาด แต่การล็อกแต่ละวัตถุมีค่าใช้จ่ายเท่าใด (เกมอาจมีวัตถุนับพันรายการ)

2
เนื่องจาก Table.drawDebug เลิกใช้แล้วใน libGDX ฉันควรใช้อะไรแทน
ฉันกำลังติดตามหนังสือ "Learning LibGDX Game Development" เพื่อสร้างเกมอย่างง่าย ฉันอยู่ในส่วนการสร้างเมนูที่เราสร้างสเตจและแสดงผลด้วยเส้นขอบการดีบัก หนังสือเล่มนี้บอกว่าจะใช้Table.drawDebug(stage)แต่วิธีการแบบคงที่นี้ดูเหมือนว่าจะถูกลบออกจากTableชั้นเรียนกรอบทั้งหมด ฉันกำลังนำเข้าcom.badlogic.gdx.scenes.scene2d.ui.Table; ด้านล่างคือรหัสของฉัน: @Override public void render(float deltaTime) { Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); if (debugEnabled) { debugRebuildStage -= deltaTime; if (debugRebuildStage <= 0) { debugRebuildStage = DEBUG_REBUILD_INTERVAL; rebuildStage(); } } stage.act(deltaTime); stage.draw(); Table.drawDebug(stage); } บรรทัดสุดท้ายTable.drawDebug(stage);มีข้อผิดพลาดในการรวบรวม"The method drawDebug(ShapeRenderer) in the type Table is …

1
ใครจะจัดเก็บข้อมูลบริบททั่วโลกในระบบส่วนประกอบนิติบุคคล?
คำถามของฉันคือ: วิธีหนึ่งจะเก็บข้อมูลบริบททั่วโลกเช่น ข้อมูลข้อมูลโลกเวลาโลกปัจจุบัน ฯลฯ ในระบบองค์ประกอบเอนทิตี ฉันคิดว่าจะทำงานเพื่อสร้างเกมจำลองสถานการณ์แบบเปิดของ Dwarf Fortress สไตล์โลกใน C ++ ฉันได้สร้างเอ็นจิ้นเกมสไตล์เอนทิตีเพื่อความสนุกและตอนนี้ฉันกำลังพยายามหาวิธีที่ฉันจะทำงานในคุณสมบัติทั้งหมดที่ฉันต้องการ นอกเหนือจากการเล่นเกมมาตรฐาน (การเรนเดอร์ฟิสิกส์ข้อมูลส่วนประกอบเฉพาะเอนทิตี ฯลฯ ) แล้วฉันยังต้องการมีข้อมูลบริบทระดับโลกที่ระบบที่เกี่ยวข้องทั้งหมดสามารถเข้าถึงได้ (เช่นข้อมูลโลกเช่นปีปัจจุบัน ไม่ว่าจะเกิดภาวะโลกร้อนหรืออะไรก็ตามที่เกี่ยวข้องกับการจำลองโลก) เดิมทีฉันเคยคิดที่จะสร้างองค์ประกอบ "โลก" แต่มันดูไร้จุดหมายและยากหากระบบต่าง ๆ มากมายต้องการเข้าถึงข้อมูล "ทั่วโลก" อย่างมีเหตุผล มันจะสมเหตุสมผลไหมที่จะมีองค์ประกอบ "โลก" หรือฉันควรเก็บข้อมูลนี้ด้วยวิธีอื่น? ฉันยังคิดที่จะทำให้ข้อมูลนี้เป็นสากลดังนั้นจึงให้การเข้าถึงระบบใด ๆ ที่ต้องการใช้งาน ดูเหมือนเป็นการละเมิดหลักการองค์ประกอบเอนทิตี้โดยทั่วไปและอาจยุ่งเหยิงด้วยเหตุผลอื่น แต่ฉันคิดว่ามันอาจใช้งานได้จริง สิ่งอื่นที่ฉันคิดว่าน่าจะฝังข้อมูลบริบทโลกที่เกี่ยวข้องลงในระบบโดยตรง ตัวอย่างเช่นถ้าฉันมีAgeSystem"อายุ" เอนทิตีทั้งหมดที่มีgetsWeakerAsTimePassesส่วนประกอบหรืออะไรก็ตามบางทีระบบนี้อาจเก็บข้อมูลเวลาที่เกี่ยวข้องสำหรับโลกโดยตรงเป็นข้อมูลสมาชิกที่จะใช้ในการคำนวณเวลาที่ผ่านไปและจำนวนเท่าใด อายุและความอ่อนแอของผู้คน ฯลฯ ตัวเลือกที่สามนี้เป็นสิ่งที่ฉันชอบน้อยที่สุด แต่สิ่งที่เกิดขึ้นกับฉันในการระดมสมอง มีใครให้คำแนะนำได้บ้าง

4
การระบุ 'ประเภท' ของเอนทิตีในระบบส่วนประกอบ - เอนทิตี
หากเอนทิตีไม่มี 'ประเภท' ชัดเจน (เช่นผู้เล่น) และเป็นเพียงชุดของส่วนประกอบฉันจะระบุเอนทิตีที่ระบบของฉันควรและไม่ควรทำงานได้อย่างไร ตัวอย่างเช่นในเกมของพงษ์พายและลูกทั้งคู่ชนกับขอบเขตของหน้าต่าง อย่างไรก็ตามระบบการจัดการการชนของแต่ละระบบจะแตกต่างกันดังนั้นระบบไม่ควรจัดการเอนทิตีที่มีชนิดผิด void PlayerCollisionSystem::update(std::vector<Entity *> entities) { typedef std::vector<Entity *>::iterator EIter; for (EIter i = entities.begin(); i != entities.end(); ++i) { Entity *player = *i; // How do I verify that the entity is a player? // Get relevant components. PositionComponent *position = player->getComponent<PositionComponent>(); VelocityComponent …

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