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

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

2
ฉันจะโหลดพื้นผิวด้วย SFML สำหรับ OpenGL ได้อย่างไร
ฉันกำลังมองหาที่NeHe ของพื้นผิวการทำแผนที่การกวดวิชา มันดูซับซ้อนเกินไปสำหรับการโหลดพื้นผิว มีวิธีการโหลดพื้นผิวใน SFML แล้วใช้มันใน Open GL หรือไม่ ฉันใช้ SFML สำหรับหน้าต่างของฉัน

1
การเขียนโปรแกรมเกม: วิธีการทั่วไปและรูปแบบการออกแบบ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเริ่มเขียนโปรแกรมเกมที่ง่ายมาก ๆ เพื่อที่ฉันจะได้เรียนรู้ OpenGL 3.x ได้ดีขึ้น แต่เนื่องจากฉันไม่มีประสบการณ์และความรู้ที่กระจัดกระจายเกี่ยวกับวิธีการออกแบบเกม 3 มิติฉันมักจะเจอปัญหาที่ฉันรู้ว่าฉันควรออกแบบชั้นเรียนของฉัน ต่างกัน ปัญหาอื่น ๆ ที่ฉันกำลังเผชิญคือวิธีการติดตามเวลาอย่างกระชับในเกมและอัปเดตการเคลื่อนไหวตามต้องการและวิธีบอกตัวแสดงผลว่าต้องมีการวาดใหม่ นอกจากนี้ฉันยังต้องทำให้ฟังก์ชั่นรับและตั้งค่าสำหรับการส่งค่าสถานะต่าง ๆ จากวัตถุหนึ่งไปยังวัตถุอื่นนั่นคือการปฏิบัติที่ไม่ดีหรือไม่? ดังนั้นตามที่ชื่อบอกว่าฉันสนใจหนังสือหรือบทความ / บทช่วยสอนและแหล่งข้อมูลใด ๆ ที่สามารถช่วยฉันได้และจะอธิบายรูปแบบการออกแบบทั่วไปบางอย่างในการออกแบบเกม (เช่นตัวจัดการสถานะเกมแบบอักษร ฯลฯ ) Btw ฉันยังคงใช้ freeglut คุณจะแนะนำให้ฉันย้ายไปที่ระบบหน้าต่างที่ดีขึ้นก่อนที่จะดำเนินการต่อหรือหลังจากที่ฉันเข้าใจ OpenGL ดีขึ้นหรือไม่

1
ทรัพยากรสถาปัตยกรรมระบบการต่อสู้ JRPG แบบเลี้ยวตาม
หลายเดือนที่ผ่านมาฉันกำลังยุ่งกับการเขียนโปรแกรม 2D JRPG (RPG สไตล์ญี่ปุ่น) ใน C ++ โดยใช้ห้องสมุด SDL โหมดการสำรวจทำมากหรือน้อย ตอนนี้ฉันจัดการกับโหมดการต่อสู้ ฉันไม่สามารถหาแหล่งข้อมูลเกี่ยวกับวิธีการจัดโครงสร้างระบบการต่อสู้ JRPG แบบคลาสสิกได้ ทั้งหมดที่ฉันพบคือการอภิปรายเกี่ยวกับสูตรความเสียหาย ฉันได้ลองใช้ Google ค้นหากระดานข้อความของ gamedev.net และรวบรวมข้อมูลผ่าน C ++ - คำถามที่เกี่ยวข้องที่นี่ใน Stack Exchange ฉันได้ลองอ่านซอร์สโค้ดของ RPG แบบโอเพ่นซอร์สที่มีอยู่แล้ว แต่หากไม่มีแนวทางบางอย่างมันก็เหมือนกับการพยายามหาเข็มในกองหญ้า ฉันไม่ได้มองหาชุดของกฎอย่าง D&D หรืออะไรทำนองนั้น ฉันกำลังพูดถึงการออกแบบโค้ดและโครงสร้างวัตถุอย่างแท้จริง ระบบการต่อสู้ขอให้ผู้เล่นป้อนข้อมูลโดยใช้เมนู ถัดไปที่เทิร์นการต่อสู้จะถูกดำเนินการในฐานะวีรบุรุษและศัตรูดำเนินการกระทำของพวกเขา ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม ขอบคุณล่วงหน้า.
9 c++  2d  architecture  sdl  rpg 


3
ฉันจะย้ายตัวละครในเกม RPG ด้วย Bullet Physics / Ogre3D ได้อย่างไร
เมื่อเร็ว ๆ นี้ฉันมีปัญหากับการย้ายตัวละครในเกม Ogre3D ของฉัน โดยทั่วไปฉันกำลังเคลื่อนไหวตัวละครด้วยRigidBody->translate()ฟังก์ชั่นกระสุนแต่เมื่อทำเช่นนั้นและชนเข้ากับกำแพงฉันก็ผ่านมันไปเล็กน้อยแล้วก็เด้งกลับมา ฉันสงสัยว่ามีวิธีที่ดีอีกวิธีหนึ่งในการย้ายตัวละครของฉัน (ที่มีรูปร่างทรงกลมปะทะกัน) ไปรอบ ๆ ในโลกแบบเครื่องบินเรียบๆกับกำแพงหรือไม่? ห้องสมุดที่ฉันใช้ซึ่งเกี่ยวข้องกับสิ่งนี้คือ 'Ogre3D' และ 'Bullet Physics'

3
ฉันจะคำนวณการตอบสนองการชนระหว่างทรงกลมและระนาบได้อย่างไร
ฉันพยายามสร้างเกมสามมิติที่เรียบง่ายและจำเป็นต้อง จำกัด ผู้เล่นให้อยู่ในขอบเขตของโลกของเกม เมื่อผู้เล่นชนด้านข้างของโลกฉันต้องการให้เรือของผู้เล่นกระเด็นเล็กน้อย ผลที่ตามมาฉันพยายามดักจับผู้เล่นภายในกล่องและหยุดพวกเขาจากการหลบหนีผ่านด้านข้าง ... ฉันจัดการเพื่อกำหนดขีด จำกัด ของ gameworld เป็นชุดของเครื่องบินที่มีบรรทัดฐานและระยะทางจากแหล่งกำเนิด ผู้เล่นที่มีรูปทรงกลม bounding ทรงกลมและจากการติดตามเว็บไซต์นี้http://www.gamasutra.com/view/feature/3383/simple_intersection_tests_for_games.phpฉันมีการจัดการในการตรวจสอบการชนกัน ตอนนี้ฉันไม่สามารถบอกได้ว่าจะต้องทำอะไรเมื่อตรวจพบการชน สิ่งที่ดีที่สุดที่ฉันสามารถจัดการได้คือผู้เล่นติดอยู่ในระนาบตรงทะลุมันหรือกระเด้งออกไปในอัตราที่เร็วมาก ๆ สามัญสำนึกบอกฉันว่าฉันต้องคำนวณมุมที่สะท้อนออกจากระนาบโดยใช้แบบปกติและใช้กับความเร็วของผู้เล่น แต่ฉันคิดว่าฉันต้องดูก่อนว่าผู้เล่นผ่านระนาบซึ่งเป็นบิตที่ฉันไม่สามารถทำได้หรือไม่ ออกกำลังกาย.

1
เหตุใด V8 จึงไม่ทำงานกับเธรด SDL
ฉันสามารถคอมไพล์และเชื่อมโยง V8 กับเกมของฉันและการตีความโค้ดทำงานได้ดี อย่างไรก็ตามฉันต้องการแบ่งรหัสของฉันและลูปเกมควรมีอยู่ในเธรดเดียวและเอ็นจิ้นการเขียนสคริปต์ควรรันในเธรดที่สองข้างลูปเกมของฉัน ฉันใช้ SDL และลองใช้รหัสนี้เพื่อวางไข่เธรดใหม่ SDL_CreateThread(ScriptingEngine::SpawnMain, NULL); ที่รหัสต่อไปนี้เป็นเครื่องมือทดสอบสคริปต์ของฉัน: namespace ScriptingEngine { v8::HandleScope handleScope; v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Persistent<v8::Context> context; void Setup() { // TODO: bind functions to global // ... context = v8::Context::New(NULL, global); } int SpawnMain(void *arguments) { v8::Context::Scope scope(context); v8::Handle<v8::Script> script = v8::Script::Compile( v8::String::New("'Hello World'") ); …

1
ฉันจะสร้างและรัน Doom 3 จากซอร์สใน Windows ได้อย่างไร
ฉันกำลังพยายามสร้างและเรียกใช้ Doom 3 จากการเปิดตัวโอเพนซอร์สเพื่อให้เข้าใจถึงวิธีการทำงานของเครื่องยนต์ น่าเสียดายที่ฉันไม่สามารถเรียกใช้เกมจากไบนารีที่ฉันสร้างขึ้นได้ ฉันเพิ่งได้รับคอนโซล แต่ไม่สามารถเรียกใช้เกมจริงได้ นี่คือสิ่งที่ฉันทำ: ดาวน์โหลดซอร์สโค้ดจาก repo ของเกม ดาวน์โหลดและติดตั้ง DirectX SDK ซื้อดาวน์โหลดและติดตั้ง Doom 3 จาก Steam เปิดโซลูชันในโฟลเดอร์ใหม่โดยใช้ VS2010 SP1 สร้างโครงการ วิ่งเลย โซลูชันการลงโทษตามค่าเริ่มต้นในการตั้งค่าการดีบักตั้งค่าบรรทัดคำสั่งเพื่ออ้างอิงเส้นทางเริ่มต้นการติดตั้ง Steam doom3 นี่คืออาร์กิวเมนต์บรรทัดคำสั่งเริ่มต้นที่ใช้เพื่อเรียกใช้โครงการจาก vstudio + set fs_basepath "C: \ Program Files (x86) \ Steam \ steamapps \ common \ doom 3" + set com_allowConsole 1 …
9 c++  windows 

1
ฉันอยู่ในเส้นทางที่ถูกต้องด้วยสถาปัตยกรรมองค์ประกอบนี้หรือไม่?
ฉันเพิ่งตัดสินใจปรับปรุงสถาปัตยกรรมเกมของฉันเพื่อกำจัดลำดับชั้นของระดับลึกและแทนที่ด้วยองค์ประกอบที่กำหนดค่าได้ ลำดับชั้นแรกที่ฉันกำลังแทนที่คือลำดับชั้นของรายการและฉันต้องการคำแนะนำเพื่อให้ทราบว่าฉันอยู่ในเส้นทางที่ถูกต้องหรือไม่ ก่อนหน้านี้ฉันมีลำดับขั้นที่ทำสิ่งนี้: Item -> Equipment -> Weapon -> Armor -> Accessory -> SyntehsisItem -> BattleUseItem -> HealingItem -> ThrowingItem -> ThrowsAsAttackItem ไม่จำเป็นต้องบอกว่ามันเริ่มยุ่งเหยิงและสิ่งเหล่านี้ไม่ใช่วิธีแก้ปัญหาง่าย ๆ สำหรับรายการที่จำเป็นต้องมีหลายประเภท (เช่นอุปกรณ์บางอย่างใช้ในการสังเคราะห์ไอเท็มอุปกรณ์บางอย่างสามารถโยนได้ ฯลฯ ) จากนั้นฉันพยายาม refactor และวางฟังก์ชันการทำงานลงในคลาสไอเท็มพื้นฐาน แต่ฉันก็สังเกตเห็นว่ารายการนั้นมีข้อมูลที่ไม่ได้ใช้ / ฟุ่มเฟือยจำนวนมาก ตอนนี้ฉันกำลังพยายามทำส่วนประกอบเช่นสถาปัตยกรรมอย่างน้อยก็สำหรับไอเท็มของฉันก่อนที่จะพยายามทำเช่นนั้นกับคลาสเกมอื่น ๆ ของฉัน นี่คือสิ่งที่ฉันกำลังคิดสำหรับการตั้งค่าส่วนประกอบ: ฉันมีคลาสไอเท็มพื้นฐานที่มีสล็อตสำหรับส่วนประกอบต่าง ๆ (เช่นสล็อตคอมโพเนนต์อุปกรณ์สล็อตคอมโพเนนต์การแพทย์ ฯลฯ รวมถึงแผนที่สำหรับคอมโพเนนต์โดยพลการ) ดังนั้นสิ่งนี้: class Item { //Basic item properties …

3
มีไลบรารีกราฟิกเวกเตอร์ C ++ ข้ามแพลตฟอร์มที่ดีหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังสร้างเกมและต้องการใช้กราฟิกแบบเวกเตอร์ ฉันเริ่มเขียนโค้ดอีกครั้งโดยใช้ไคโรและการแสดงนั้นยอดเยี่ยมมาก ฉันกำลังมองหาห้องสมุดที่แตกต่าง มันต้องเป็น C ++ และข้ามแพลตฟอร์ม (เช่นไม่มี Direct2D) มีอีกคำถามที่มีคนถามมาก่อนหน้านี้ แต่ไม่มีคำตอบที่เหมาะสม จะต้องมีบางอย่าง ... ?
9 c++  graphics  vector 

1
STL มีประสิทธิภาพเพียงพอสำหรับอุปกรณ์พกพาหรือไม่
เมื่อพูดถึงการพัฒนาเกมมือถือบน iOS และ Android NDK นักพัฒนาบางคนเขียนคอนเทนเนอร์ C ++ ของตัวเองขณะที่คนอื่นอ้างว่า STL นั้นเพียงพอสำหรับการพัฒนาเกมมือถือ (ตัวอย่างเช่นผู้เขียนโปรแกรม 3D iPhone ใช้ STL แทนวัตถุประสงค์ - C ในตัวอย่างของเขาการป้องกันของเขาคือ STL นั้นไม่ช้ากว่า Objective-C) จากนั้นก็มีนักพัฒนามือถือที่ละทิ้ง C ++ ทั้งหมดและพัฒนาเกมทั้งหมด (หรือส่วนใหญ่) ในภาษา C (C89 / C90) ประโยชน์และข้อเสียของแต่ละวิธีมีอะไรบ้าง

1
API การโหลดโมเดล C ++
ฉันกำลังมองหาAPI สำหรับการโหลดโมเดล C ++ ที่มีประสิทธิภาพที่สุด จนถึงตอนนี้ฉันได้พบกับ ply, obj และรูปแบบไฟล์อื่น ๆ แต่ห้องสมุดที่ฉันพบมักจะโหลดรุ่นหนึ่งประเภทและสิ่งนี้ต้องการให้คุณเรียนรู้อินเตอร์เฟส api ค่อนข้างน้อย มีหนึ่ง API โหลดพวกเขาทั้งหมดหนึ่ง API เพื่อแยกพวกเขาหนึ่ง API เพื่อนำพวกเขาทั้งหมดและในบัฟเฟอร์ Vertex ผูกพวกเขา?
9 c++  models  loading 

3
เอนจินฟิสิกส์ 2 มิติแบบเบา ๆ ?
สวัสดีดังนั้นฉันเพิ่งได้เรียนรู้ห้องสมุดกราฟิก SFML และต้องการใช้หรือสร้างระบบฟิสิกส์ 2D ที่ไม่แข็งกระด้างเพื่อใช้กับมัน ฉันมีสามคำถาม: ความหมายของร่างกายที่แข็งแกร่งใน Box2d คือ ก้อนของสสารที่แข็งแรงมากจนระยะห่างระหว่างสสารสองชิ้นใด ๆ บนก้อนนั้นคงที่อย่างสมบูรณ์ และนี่คือสิ่งที่ฉันไม่ต้องการอย่างที่ฉันต้องการทำให้ร่างกายที่ยืดหยุ่น, ผิดปกติ, เปราะบางและเชื่อมต่อใหม่ 1. มีเครื่องยนต์ฟิสิกส์แบบ 2D ธรรมดา ๆ แต่มีคุณสมบัติแบบนี้หรือไม่? ฟรีหรือโอเพนซอร์สดีกว่า 2. ถ้าไม่สามารถใช้ box2d และสร้างมันเพื่อสร้างมันได้แม้ว่ามันจะขึ้นอยู่กับร่างกายที่แข็งทื่อหรือไม่? 3. ในที่สุดหากมีเครื่องมือฟิสิกส์อย่างง่ายเช่นนี้ฉันควรผ่านการสร้างใหม่หรือไม่เพื่อประสบการณ์และเพื่อเพิ่มพูนความรู้คณิตศาสตร์ฟิสิกส์? ฉันรู้สึกว่ามันจะช่วยได้ถ้าฉันต้องการแก้ไขโค้ดของเอ็นจิ้นที่มีอยู่หรือสร้างเกมด้วยฟิสิกส์ที่มีเอกลักษณ์ ขอบคุณ!
9 c++  physics 

4
ในเกมแบบ 2d ที่ใช้วิธีการเลื่อนแบบไหนดี?
ฉันใช้ Direct3D กับ wrapper D3DXSPRITE เพื่อวาดแผ่นกระเบื้องไปที่หน้าจอ ฉันมีคลาสกระเบื้องที่ประกอบด้วยสมาชิกเช่นชนและประเภทกระเบื้องแล้วฉันมีอาร์เรย์ของกระเบื้องเช่น ตารางไทล์ [256] [256]; ซึ่งจะเป็นวิธีที่ดีกว่า วาดผู้เล่นที่อยู่ตรงกลางของหน้าจอและชดเชยที่แผนที่วาด - เคลื่อนย้ายเครื่องเล่นโดยใช้กล้องต่อไปนี้ ฉันใช้วิธีแรก แต่มันซับซ้อนขึ้นมากเมื่อคุณไปถึงขอบด้านซ้ายบนของแผนที่และเมื่อผู้เล่น / ศัตรูคนอื่นอยู่บนแผนที่และเคลื่อนที่ในเวลาเดียวกัน ถ้าฉันทำให้กล้องติดตามผู้เล่นฉันจะต้องเรียก spriteBatch-> Draw (... ) สำหรับไทล์กริดเดี่ยวทุกแผ่นแม้ว่าจะมีเพียงไม่กี่คนที่สามารถวางบนหน้าจอได้หรือไม่?
9 c++  directx  directx9 

2
สร้าง 2D Platformer ใน C ++ / SDL กำลังมองหาบทเรียน / ตัวอย่าง / ทรัพยากร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดเมื่อปีที่แล้ว ฉันมีประสบการณ์มากมายเกี่ยวกับ C ++ แต่ฉันไม่มีประสบการณ์กับการเขียนโปรแกรมเกม ฤดูร้อนนี้ฉันวางแผนที่จะสร้าง platformer 2D ตั้งแต่เริ่มต้นโดยใช้ C ++ / SDL สำหรับประสบการณ์การเรียนรู้ ฉันกำลังมองหาแหล่งข้อมูลให้ได้มากที่สุดเพื่อช่วยในการเริ่มต้นใช้งาน รหัสที่มาที่ดีบทเรียนอะไร หนึ่งในบทเรียนที่ดีที่สุดที่ฉันได้พบเป็นกระโดดไม่ได้ใช้งาน 'n' เรียกใช้บทเรียน dev โดยสายฟลอเรียนฮัฟสกี บทเรียนอื่น ๆ ที่คล้ายกัน?
9 c++  2d  sdl  platformer 

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