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

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

1
ไลบรารีแอนิเมชันโมเดล c / c ++ ใดสำหรับ OpenGL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันค่อนข้างใหม่ในการพัฒนาเกมเล่นกับ xna มาก่อนและเพิ่งเรียนรู้ OpenGL & c ตอนนี้และฉันสนใจที่จะรู้ว่ามีไลบรารี่แอนิเมชั่นโมเดล c / c ++ อยู่ไหนและคุณอยากจะแนะนำอะไร? ฉันยังไม่มีรูปแบบเฉพาะในใจ แต่อาจเป็นรูปแบบที่สนับสนุนโดยเครื่องมือสร้างแบบจำลองฟรีเช่น Blender
10 opengl  c++  models  c 

2
การจัดเก็บ voxels สำหรับ voxel Engine ใน C ++
ฉันกำลังพยายามเขียนโปรแกรม voxel เพียงเล็กน้อยเพราะมันสนุก แต่ก็พยายามหาวิธีที่ดีที่สุดในการเก็บ voxels จริง ฉันรู้ว่าฉันจะต้องมีชิ้นส่วนบางอย่างดังนั้นฉันไม่จำเป็นต้องมีทั้งโลกในความทรงจำและฉันรู้ว่าฉันต้องการให้พวกเขามีประสิทธิภาพที่เหมาะสม ฉันอ่านเกี่ยวกับ octrees และจากสิ่งที่ฉันเข้าใจมันเริ่มต้นด้วย 1 cube และในลูกบาศก์นั้นสามารถเพิ่มได้อีก 8 ลูกและใน 8 ลูกบาศก์เหล่านั้นอาจเป็นอีก 8 ลูกเป็นต้น แต่ฉันไม่คิดว่ามันเหมาะกับเครื่องยนต์ voxel ของฉันเพราะ ลูกบาศก์ / รายการ voxel ของฉันทั้งหมดจะมีขนาดเท่ากันทุกประการ อีกทางเลือกหนึ่งคือเพียงสร้างอาร์เรย์ขนาด 16 * 16 * 16 และมีขนาดนั้นหนึ่งอันและคุณเติมด้วยรายการ และส่วนที่ไม่มีรายการใด ๆ จะมีค่า 0 เป็นค่า (0 = อากาศ) แต่ฉันเกรงว่านี่จะเสียความทรงจำมากมายและจะไม่เร็วมาก จากนั้นอีกตัวเลือกหนึ่งคือเวกเตอร์สำหรับแต่ละอันและเติมด้วยลูกบาศก์ และคิวบ์ยังคงตำแหน่งในก้อน สิ่งนี้จะช่วยประหยัดหน่วยความจำ (ไม่มีบล็อกอากาศ) แต่ทำให้มองหาลูกบาศก์ที่ตำแหน่งเฉพาะช้ากว่ามาก ดังนั้นฉันไม่สามารถหาทางออกที่ดีได้และฉันหวังว่าจะมีคนช่วยฉันได้ แล้วคุณจะใช้อะไรและทำไม …
9 c++  voxels 

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
ฉันจะสนับสนุนการสื่อสารระหว่างส่วนประกอบกับวัตถุได้อย่างปลอดภัยและด้วยการจัดเก็บส่วนประกอบที่เป็นมิตรกับแคชได้อย่างไร?
ฉันกำลังสร้างเกมที่ใช้วัตถุเกมตามองค์ประกอบและฉันมีเวลายากที่จะใช้วิธีการสำหรับแต่ละองค์ประกอบในการสื่อสารกับวัตถุเกม แทนที่จะอธิบายทุกอย่างพร้อมกันฉันจะอธิบายแต่ละส่วนของโค้ดตัวอย่างที่เกี่ยวข้อง: class GameObjectManager { public: //Updates all the game objects void update(Time dt); //Sends a message to all game objects void sendMessage(Message m); private: //Vector of all the game objects std::vector<GameObject> gameObjects; //vectors of the different types of components std::vector<InputComponent> input; std::vector<PhysicsComponent> ai; ... std::vector<RenderComponent> render; } การGameObjectManagerเก็บวัตถุเกมทั้งหมดและส่วนประกอบของพวกเขา นอกจากนี้ยังรับผิดชอบในการปรับปรุงวัตถุของเกม …

2
ฉันจะส่งต่อคีย์บอร์ดอินพุตของ GLFW ไปยังวัตถุอื่นได้อย่างไร
ฉันมีปัญหาในการพยายามเรียกใช้เหตุการณ์แป้นพิมพ์ในคลาสอื่นด้วย GLFW3 ปัญหาที่ฉันมีคือ GLFW3 ใช้ฟังก์ชั่นคงที่สำหรับการป้อนข้อมูลตามที่แสดง: static UI u; ... ... static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { u.controls(window, key, action); } uเป็นแบบสแตติกและส่วนควบคุมจะเก็บอินพุตสำหรับคีย์ WSAD (วิธีเดียวที่ฉันจะได้รับเหตุการณ์สำคัญ) จากที่นี่การกดแป้นจะทำงานเพื่อแสดงว่ามีการกดแป้นใดในหน้าต่างคอนโซล ปัญหาที่ฉันมีคือพยายามใช้แป้นกดเพื่อจัดการกับตัวแปรในคลาสอื่น ฉันมีคลาสอื่นที่เรียกว่า MainMenu ที่มีฟังก์ชั่นupdate().มีวิธีที่ฉันสามารถใช้คลาส UI ของฉันภายในฟังก์ชั่นนี้หรือไม่?
9 opengl  c++  keyboard  glfw 

3
ทางเลือกที่ยืดหยุ่นสำหรับคลาส polymorphic ขนาดเล็กจำนวนมาก (เพื่อใช้เป็นคุณสมบัติหรือข้อความหรือเหตุการณ์) C ++
เกมของฉันมีสองคลาสที่มีประโยชน์มาก แต่ก็ค่อยๆเจ็บปวด ข้อความและคุณสมบัติ (คุณสมบัติเป็นส่วนประกอบหลัก) พวกเขาทั้งคู่มาจากคลาสพื้นฐานและมีสแตติก id เพื่อให้ระบบสามารถให้ความสนใจกับสิ่งที่พวกเขาต้องการ มันทำงานได้ดีมาก ... ยกเว้น ... ฉันกำลังสร้างประเภทข้อความและประเภทคุณสมบัติใหม่อยู่ตลอดเวลาขณะที่ฉันขยายเกม ทุกครั้งที่ฉันต้องเขียนไฟล์ 2 ไฟล์ (hpp และ cpp) และสำเร็จรูปจำนวนมากเพื่อให้ได้ classID และหนึ่งหรือสองชนิดข้อมูลมาตรฐานหรือตัวชี้ มันเริ่มที่จะทำให้การเล่นและการทดสอบความคิดใหม่ ๆ เป็นงานที่น่าเบื่อ ฉันต้องการเมื่อฉันต้องการสร้างข้อความใหม่หรือประเภทคุณสมบัติฉันต้องการให้สามารถพิมพ์บางสิ่งเช่น ShootableProperty: int gunType, float shotspeed; ItemCollectedMessage: int itemType; แทนการสร้างไฟล์ส่วนหัวและ cpp เขียนตัวสร้างรวมถึงผู้ปกครองชั้น ฯลฯ ฯลฯ มันอยู่ที่ประมาณ 20 - 40 บรรทัด (รวมถึงยามและทุกอย่าง) เพื่อทำในสิ่งที่เป็นตรรกะใน 1 หรือ 2 บรรทัดในใจของฉัน มีรูปแบบการเขียนโปรแกรมเพื่อหลีกเลี่ยงปัญหานี้หรือไม่? …

2
เหตุใด บริษัท ต่างๆจึงยังคงใช้ Visual Studio เวอร์ชันเก่าจริงๆ
ฉันเข้าใจว่าทำไมใช้ C ++ นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ เมื่อฉันติดตั้งเกมโดยทั่วไป Steam (ฉันใช้ Steam ในวันนี้เท่านั้น) จะติดตั้ง C ++ 2005 Runtime ที่สามารถแจกจ่ายได้ คำถามของฉันคือทำไมในกรณีนี้ อะไรคือสาเหตุที่ runtime ที่วางจำหน่ายในช่วง 8 ปีที่ผ่านมายังคงแพร่หลายอยู่? เกมบางเกมที่ฉันติดตั้งเมื่อเร็ว ๆ นี้มีอายุมากกว่าเล็กน้อยดังนั้นหากคุณใช้เวลาสักสองสามปีในการพัฒนาเกมให้เป็นมาตรฐานและทดสอบในขณะนั้น เหตุใด บริษัท เกมถึงไม่ใช้ VC ++ เวอร์ชันใหม่กว่า
9 c++ 

2
ฉันจะใช้ Editline สำหรับคอนโซลในเกมได้อย่างไร
ฉันต้องการเพิ่มคอนโซลในเกมให้กับเกม C ++ ที่ฉันสร้าง แม้ว่าการแสดงผลคอนโซลและการแยกคำสั่งที่ฉันใช้ได้ แต่การป้อนข้อความและการแก้ไข (เช่นการจัดการปุ่มซ้าย / ขวา, แบ็กสเปซและอื่น ๆ ... ) ดูเหมือนจะใช้ความพยายามอย่างมาก . ฉันจัดการเพื่อค้นหาไลบรารีชื่อEditlineที่จัดการป้อนข้อความสไตล์คอนโซลที่สมบูรณ์พร้อมประวัติและการเติมข้อมูลอัตโนมัติ แต่ฉันไม่แน่ใจว่าจะเชื่อมต่อสิ่งนี้กับเกมของฉันได้อย่างไรโดยเฉพาะตัวอย่างทั้งหมด ที่ฉันได้พบใช้จัดการอินพุตและเอาต์พุตมาตรฐานและreadline()ตัวเองเป็นสายการบล็อก ฉันต้องสามารถให้อินพุตของตัวเองและแสดงผลคอนโซลให้กับเอาต์พุตของตัวเองและฉันต้องแน่ใจว่าลูปเกมของฉันยังคงทำงานต่อไป ฉันควรจะทำสิ่งนี้อย่างไร?
9 c++  text-based 

5
ฉันจะอัปเดตการตั้งค่าการแสดงผลจากหน้าจอตัวเลือกโดยไม่ต้องเริ่มต้นใหม่ได้อย่างไร
ขณะนี้ฉันกำลังสร้าง 2D RPG ใน C ++ 11 ด้วย Allegro 5 และเพิ่ม เป้าหมายของฉันคือการปรับปรุงการตั้งค่าเกมของฉันเมื่อมีการเปลี่ยนตัวเลือกในเมนูตัวเลือก ฉันไม่ต้องการบังคับให้ผู้ใช้รีสตาร์ทเกม เกมอื่นไม่จำเป็นต้องรีสตาร์ทเมื่อเปลี่ยนความละเอียดหรือเปลี่ยนจากเต็มหน้าจอเป็นหน้าต่างดังนั้นเกมของฉันก็ไม่ควรทำเช่นเดียวกัน โปรดดูมุมมองที่เรียบง่ายของระบบด้านล่าง โปรดทราบว่าฉันไม่ต้องการเรียกวัตถุเกมของฉันโดยตรงจาก OptionsScreen เส้นประเป็นเพียงเพื่อแสดงให้เห็นถึงผลกระทบที่ฉันพยายามทำ เพื่อทำให้เกิดการปรับปรุงของเกมเมื่อมีการเปลี่ยนตัวเลือกในส่วนต่าง ๆ ของระบบ คำอธิบายโดยละเอียด ScreenManager มีรายการของGameScreenวัตถุทั้งหมดที่มีอยู่ในปัจจุบัน เหล่านี้จะเป็นหน้าจอต่าง ๆ ในเกมรวมถึงป๊อปอัป การออกแบบนี้จะปฏิบัติตามมากหรือน้อยไปตัวอย่างการจัดการสถานะของเกมใน C ScreenManagerมีการอ้างอิงถึงฉันGameวัตถุ Gameinitializes วัตถุและแก้ไขการตั้งค่าเกม หากฉันต้องการเปลี่ยนความละเอียดให้ใช้งานแบบเต็มหน้าจอหรือปิดเสียงที่ฉันควรทำในGameชั้นเรียน อย่างไรก็ตามปัจจุบัน OptionsScreen ไม่สามารถเข้าถึงคลาสเกมได้ ดูแผนภาพด้านล่าง: GameScreen สามารถส่งสัญญาณสามเหตุการณ์onFinished, และonTransitionStart onTransitionEndไม่มีonOptionsChangedเพราะมีเพียงหน้าจอเดียวเท่านั้นที่ทำเช่นนั้น ScreenManager ไม่สามารถตั้งค่าการจัดการเหตุการณ์สำหรับสิ่งนั้นเพราะมันจัดการหน้าจอทั้งหมดเป็นGameScreens คำถามของฉันคือฉันจะเปลี่ยนการออกแบบของฉันอย่างไรเพื่อให้การเปลี่ยนแปลงใน OptionsMenu ไม่ต้องการการรีสตาร์ท แต่จะเปลี่ยนทันที ฉันควรขอให้Gameวัตถุของฉันอัปเดตเมื่อคลิกปุ่มนำไปใช้

2
D3D / DXGI จัดการการเปลี่ยนหน้าจอเต็ม
ฉันมีแอปพลิเคชั่น D3D11 และฉันต้องการเพิ่ม suport แบบเต็มหน้าจอที่เหมาะสม ตอนนี้ฉันสามารถให้ DXGI สลับหน้าต่างของฉันเป็นแบบเต็มหน้าจอสำหรับฉันและฉันรู้สึกว่า DXGI จะดูแลทุกอย่างที่จำเป็นเพื่อให้การสลับโซ่ด้านหน้าและด้านหลังแทนการ blitting อย่างไรก็ตามการทำให้ DXGI ทำงานได้อย่างรวดเร็วดูเหมือนว่าไม่น่าเชื่อถือด้วยการติดตั้งจอภาพหลายจอ - หน้าจอที่สองยังคงเป็นสีดำทั้งหมดหลังจากการสลับเวลาเป็นอย่างมากโดยไม่มีเหตุผลหรือรูปแบบที่ชัดเจน อาจต้องใช้การสลับไปมาสองสามครั้งก่อนที่ฉันจะได้รับหน้าต่างเต็มหน้าจอและส่วนที่เหลือของเดสก์ท็อปที่แสดงบนหน้าจออื่น เห็นได้ชัดว่าฉันไม่ได้อยู่คนเดียวกับเรื่องนี้ Battlefield 3 และ WoW ดูเหมือนจะมีปัญหาที่คล้ายกันสำหรับผู้คนจำนวนมาก ตอนนี้คำถามที่เกิดขึ้นจริง: ฉันเดาว่าแม้กระทั่ง บริษัท ผู้พัฒนาเกม AAA เหล่านั้นก็ไม่สามารถทำงานได้ความหวังที่ยิ่งใหญ่ที่สุดของฉันคือการเปลี่ยนไปใช้งานแบบเต็มหน้าจอด้วยตัวเอง มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อยกระดับหน้าต่าง / swapchain ของฉันให้อยู่ในโหมดเต็มหน้าจอแบบเต็มบัฟเฟอร์หรือไม่

3
Windows 8 ยังรองรับ DirectX 9 หรือไม่
Windows 8 รองรับ DirectX 9 หรือไม่ เพราะฉันดูตัวอย่างที่เขียนใน C ++ และ DirectX 9 ที่สร้างขึ้นสำหรับ Windows 8 มันไม่ใช่อย่างที่ฉันรู้ (ดูที่นี่http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2 ) เช่น Inizialising DirectX พร้อม COM: ComPtr<ID3D11Device1> dev; ComPtr<ID3D11DeviceContext1> devcon; มันแปลกเพราะฉันรู้ว่ามันเป็นแบบเก่า: ID3D11Device *dev; ID3D11DeviceContext *devcon; (ฉันหวังว่าคุณจะเข้าใจสิ่งที่ฉันต้องการจะบอก) ฉันหวังว่ามันจะไม่เปลี่ยนแปลงอย่างสมบูรณ์เนื่องจากระบบปฏิบัติการใหม่ที่วางจำหน่าย
9 c++  directx  windows 

1
gluLookAt ทำงานอย่างไร
จากความเข้าใจของฉัน gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); เทียบเท่ากับ: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); แต่เมื่อฉันพิมพ์ModelViewเมทริกซ์การเรียกเพื่อglTranslatef()ดูเหมือนจะทำงานไม่ถูกต้อง นี่คือข้อมูลโค้ด: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int …

3
การออกแบบที่อิงส่วนประกอบ: การจัดการการโต้ตอบกับวัตถุ
ฉันไม่แน่ใจว่าวัตถุทำสิ่งต่าง ๆ อย่างไรกับวัตถุอื่น ๆ ในการออกแบบส่วนประกอบ บอกว่าฉันมีObjชั้นเรียน ฉันทำ: Obj obj; obj.add(new Position()); obj.add(new Physics()); ฉันจะมีวัตถุอื่นได้อย่างไรไม่เพียง แต่เคลื่อนที่ลูกบอล แต่ใช้ฟิสิกส์เหล่านั้น ฉันไม่ได้กำลังมองหารายละเอียดการใช้งาน แต่ค่อนข้างเป็นนามธรรมว่าวัตถุสื่อสารกันอย่างไร ในการออกแบบตามเอนทิตีคุณอาจมี: obj1.emitForceOn(obj2,5.0,0.0,0.0); บทความหรือคำอธิบายใด ๆ เพื่อให้เข้าใจการออกแบบส่วนประกอบได้ดีขึ้นและวิธีการทำสิ่งพื้นฐานจะมีประโยชน์จริง ๆ

3
ความรู้ที่จำเป็นในการเขียนไลบรารี่แอนิเมชั่น (IK & FK) คืออะไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันไม่สามารถหาไลบรารี่ที่ดีสำหรับแอนิเมชั่นได้ห้องสมุดที่ฉันพบนั้นเก่าและหยุดแล้ว แต่ฉันสังเกตว่าห้องสมุดนั้นค่อนข้างเล็กดังนั้นฉันจึงคิดที่จะเขียนโค้ดด้วยตัวเอง: ฉันควรเริ่มจากตรงไหน ? พื้นฐานของสิ่งนี้คืออะไร? มีหนังสือเกี่ยวกับเรื่องนี้หรือไม่? หมายเหตุเพิ่มเติมบางประการเกี่ยวกับรูปแบบไฟล์ที่ดีสำหรับแอนิเมชั่นก็เป็นที่นิยมเช่นกัน ฉันใช้ C ++

3
วิธีจัดการกับ Block World อย่าง Minecraft
ฉันต้องการเขียนเกมง่ายๆที่มีโลกบล็อกเหมือนกับใน Minecraft คำถามเชิงทฤษฎีของฉันคือวิธีที่ดีที่สุดในการจัดการข้อมูลบล็อกนี้ในระหว่างการเล่น ความคิดแรกของฉันคือชุดใหญ่ แต่จะทำให้หน่วยความจำหมดฉันคิดว่า บางทีฉันอาจต้องโหลดบล็อกที่อยู่ใกล้กับผู้เล่นเท่านั้น ฉันจะจัดการการโหลดข้อมูลบล็อกที่ต้องการจากไฟล์และการถือเฉพาะข้อมูลที่ต้องการในหน่วยความจำได้อย่างไร

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