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

Java เป็นทั้งภาษาโปรแกรมเชิงวัตถุยอดนิยมและสภาพแวดล้อมรันไทม์ซึ่งช่วยให้โปรแกรม Java สามารถรันไม่เปลี่ยนแปลงบนแพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์ส่วนใหญ่

12
ฉันควรใช้ประเภทข้อมูลใดสำหรับสกุลเงินในเกม
ในเกมจำลองธุรกิจอย่างง่าย (สร้างขึ้นใน Java + Slick2D) จำนวนเงินของผู้เล่นควรถูกจัดเก็บเป็นfloatหรือintหรืออย่างอื่นหรือไม่? ในกรณีใช้งานของฉันธุรกรรมส่วนใหญ่จะใช้เซ็นต์ ($ 0.50, $ 1.20, ฯลฯ ) และการคำนวณอัตราดอกเบี้ยแบบง่ายจะมีส่วนเกี่ยวข้อง ฉันเคยเห็นคนพูดว่าคุณไม่ควรใช้floatเป็นสกุลเงินเช่นเดียวกับคนที่พูดว่าคุณไม่ควรใช้intเป็นสกุลเงิน ฉันรู้สึกว่าฉันควรใช้intและคำนวณหาเปอร์เซ็นต์ที่จำเป็น ฉันควรใช้อะไร
96 java  data  economy 

8
Java ทำงานได้สำหรับการพัฒนาเกมที่จริงจังหรือไม่? [ปิด]
ฉันขัดจังหวะอินเทอร์เน็ต แต่มีทรัพยากรไม่มากสำหรับการพัฒนาเกม Java ไม่มากเท่า C ++ ในความเป็นจริงเครื่องยนต์ส่วนใหญ่เขียนด้วยภาษา C ++ ฉันพยายามเล่นเกมที่สร้างโดย jMonkeyEngine แต่เกมนั้นช้ามากจนถึงจุดที่คอมพิวเตอร์ของฉันค้าง ฉันไม่มีแอปพลิเคชัน Java อื่นที่ทำงานอยู่และไม่มีทรัพยากรมากเกินไป ในทางตรงกันข้ามคอมพิวเตอร์ของฉันสามารถเล่นเกม 3 มิติที่ทันสมัยที่สุดได้อย่างง่ายดาย หากฉันยังคงเรียนรู้และพัฒนา Java ต่อไปและปรากฎว่าในภายหลังฉันต้องเรียนรู้ C ++ การทำสวิตช์อาจทำได้ยาก Java เป็นภาษาที่ยอมรับได้สำหรับการพัฒนาเกมที่จริงจังหรือไม่? โดยจริงจังฉันหมายถึงกราฟิกที่มีคุณภาพสูงโดยไม่ล่าช้ามากในคอมพิวเตอร์ที่ทันสมัย ฉันต้องการพิจารณาทำเกมเพื่อคอนโซล

5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

5
ฉันจะให้ความสูงของภาพลวงตาแก่ลูกบอลใน 2D ได้อย่างไร?
ในเกมฟุตบอลจากบนลงล่าง 2D บางครั้งลูกบอลได้รับภาพลวงตาของการอยู่ในอากาศเช่นด้านล่าง: ฉันจะบรรลุสิ่งนี้ได้อย่างไร
40 java  libgdx  physics 

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

7
ฉันจะปรับปรุงความเร็วการเรนเดอร์ของเกมประเภท Voxel / Minecraft ได้อย่างไร?
ฉันกำลังเขียนโคลนของ Minecraft เอง (เขียนด้วยภาษาจาวา) มันใช้งานได้ดีในขณะนี้ ด้วยระยะการดู 40 เมตรฉันสามารถกด 60 FPS บน MacBook Pro 8,1 ได้อย่างง่ายดาย (Intel i5 + Intel HD Graphics 3000) แต่ถ้าฉันวางระยะทางในการมองที่ 70 เมตรฉันจะไปถึง 15-25 FPS ใน Minecraft ตัวจริงฉันสามารถใส่ความไม่ลงรอยกันในการมองไกล (= 256m) ได้โดยไม่มีปัญหา ดังนั้นคำถามของฉันคือฉันควรทำอย่างไรเพื่อทำให้เกมของฉันดีขึ้น? การเพิ่มประสิทธิภาพที่ฉันใช้: เก็บเฉพาะชิ้นส่วนในหน่วยความจำเท่านั้น (ขึ้นอยู่กับระยะการมองของผู้เล่น) Frustum culling (ครั้งแรกบนชิ้นแล้วบนบล็อก) วาดเฉพาะใบหน้าที่มองเห็นได้จริงๆของบล็อกเท่านั้น ใช้รายการต่ออันที่มีบล็อกที่มองเห็นได้ ส่วนที่มองเห็นได้จะเพิ่มเข้าไปในรายการนี้ หากพวกเขากลายเป็นล่องหนพวกเขาจะถูกลบออกจากรายการนี้โดยอัตโนมัติ บล็อกกลายเป็น (ใน) มองเห็นได้โดยการสร้างหรือทำลายบล็อกเพื่อนบ้าน การใช้รายการต่ออันประกอบด้วยบล็อกการปรับปรุง กลไกเดียวกับรายการบล็อกที่มองเห็นได้ ใช้newคำสั่งแทบไม่มีในลูปเกม …

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

4
จะใช้โลกทดสอบที่ไม่ต้องรีบูตได้อย่างไร
กำลังมองหาแนวคิดในการทำสิ่งต่อไปนี้: ฉันต้องการเขียน "โลก" อย่างง่ายใน Java หนึ่งที่ฉันสามารถเริ่มต้นแล้วเพิ่มวัตถุใหม่ในภายหลังในภายหลังเพื่อจำลอง / สังเกตพฤติกรรมที่แตกต่างระหว่างวัตถุที่มีอยู่ แผนการนั้นคือการเขียนโค้ดของวัตถุที่ใหม่กว่าหลังจากดูวัตถุเก่าในขณะนั้นจากนั้นโหลด / วางวัตถุเหล่านั้นในโลกที่มีอยู่ ปัญหาคือฉันไม่ต้องการหยุดหรือเริ่มโลกใหม่เมื่อเริ่มต้นฉันต้องการให้ทำงานสองสามสัปดาห์ แต่ฉันต้องการความสามารถในการวางวัตถุและทำซ้ำ / เขียนใหม่ / ลบ / สร้าง / กลายพันธุ์ เมื่อเวลาผ่านไปโดยไม่จำเป็นต้องรีบูต โลกอาจเป็นเรื่องง่ายเหมือนอาร์เรย์ 100 x 100 ของตำแหน่ง X / Y พร้อม GUI แบบเรียงต่อกันที่เป็นไปได้ที่จะเป็นตัวแทนของโลก ฉันรู้ว่าฉันต้องการกระบวนการ ticktimer เพื่อติดตามวัตถุและให้โอกาสในการกระทำ ตัวอย่าง: ฉันโค้ด World.java ในวันจันทร์และปล่อยให้มันทำงานอยู่ จากนั้นในวันอังคารที่ฉันเขียนคลาสใหม่ที่เรียกว่า Rock.java (ที่ไม่ย้าย) จากนั้นฉันก็โหลด / วางมัน (อย่างใด?) ในโลกที่กำลังดำเนินอยู่นี้ (ซึ่งมันจะวางสุ่มลงไปในแถวลำดับโลกและไม่ย้าย) จากนั้นในวันพุธที่ฉันสร้างคลาสใหม่ที่เรียกว่า …

2
ฉันจะกำหนดรายการในเกม RPG ของฉันเช่นเกม Java ได้อย่างไร
ฉันตั้งใจทำงานเกมประเภท RPG ใน Java แต่ฉันมีปัญหาในการหาวิธีที่ฉันสามารถมีไอเท็มที่สามารถทำสิ่งต่าง ๆ มากมายโดยไม่ต้องสร้างคลาสที่แตกต่างกันสำหรับทุกรายการ ตัวอย่างเช่นฉันจะสร้างขวานที่สามารถตัดต้นไม้และโจมตีสัตว์ประหลาดได้อย่างไร หากฉันขยายการสับหรือคลาสอาวุธฉันก็ไม่สามารถขยายคลาสอื่นได้ ถ้าฉันมีเขียงและอาวุธเป็นส่วนต่อประสานฉันจะมีรหัสซ้ำซ้อนมากมายเมื่อกริชสามารถโจมตีสัตว์ประหลาดและขวานต่าง ๆ สามารถตัดต้นไม้ได้ ฉันหวังว่าจะมีวิธีที่จะมีคลาส Item หนึ่งรายการและโหลดไอเท็มและความสามารถที่เกี่ยวข้องจากไฟล์ หากเป็นไปได้จะทำอย่างไร? ถ้าไม่ใช่อย่างนั้นวิธีที่ดีที่สุดในการมีไอเท็มในเกมคืออะไร?
21 java 

3
ทำให้ศัตรู flocking หลายตัวล้อมรอบสิ่งกีดขวางได้อย่างมีประสิทธิภาพ
ฉันกำลังพยายามปรับปรุงการหาเส้นทางสำหรับศัตรูในเกมของฉัน ตอนนี้พวกเขาเพียงแค่ขยับไปยังตำแหน่งที่แน่นอนของผู้เล่นโดยการคำนวณมุมระหว่างพวกเขากับผู้เล่นและเคลื่อนที่ไปในทิศทางนั้น ฉันยังมีอัลกอริทึม flocking ที่ป้องกันศัตรูจากการซ้อนทับกันดังนั้นพวกเขาจะรวมตัวกันเป็นกลุ่มแทนที่จะจับกลุ่มกัน อย่างไรก็ตามตอนนี้ฉันได้เพิ่มแผนที่แบบเรียงต่อกันแล้วฉันต้องการศัตรูเพื่อให้สามารถเดินไปรอบ ๆ สิ่งกีดขวางและกำแพงได้เช่นกัน ในขั้นต้นฉันพยายามเพิ่มค่าการแยกลงในไทล์ "ไม่สามารถเดินได้" เพื่อที่อัลกอริทึม flocking จะพิจารณาผนังและอุปสรรคเป็นวัตถุที่จะย้ายออกไป ฉันยังไม่ทราบว่าเป็นไปได้หรือไม่เพราะการทดสอบครั้งแรกของฉันแสดงให้เห็นว่าศัตรูชนกำแพงที่มองไม่เห็นซึ่งไม่มีกระเบื้องที่ไม่สามารถเดินได้ แต่ด้วยเหตุผลบางอย่างพวกเขาชนและเริ่มพูด ฉันสงสัยว่ามันอาจจะทำงานหนักเกินไปหรือไม่ในการคำนวณเส้นทางไปยังผู้เล่นโดยใช้ A * จากนั้นใช้อัลกอริทึม flocking เพื่อป้องกันการจับกันเป็นก้อน เดิมทีเกมของฉันจะเป็นเกมยิงตามคลื่น แต่ฉันตัดสินใจที่จะทำให้เกมนี้อยู่ในระดับที่เส้นเลือดของ Hotline Miami ดังนั้นจึงเป็นไปได้ที่ฉันจะมีศัตรูน้อยลง พวกเขาแข็งแกร่งขึ้น นี่เป็นทางออกที่ทำงานได้หรือไม่? ฉันใช้ Java กับ Slick2D เป็นเอ็นจิ้นเกมของฉัน หรือมีวิธีแก้ปัญหา / อัลกอริทึมที่ดีกว่าที่จัดการกับปัญหาทั้งสองนี้ได้หรือไม่

4
มีอันตรายในการมีการวนลูปเกมหลักที่ควบคุมไม่ได้?
ฉันสงสัยว่ามีอันตรายใด ๆ ที่เป็นไปได้หรือไม่เมื่อลูปเกมของฉันทำงานเร็วเท่าที่ระบบอนุญาต ขณะนี้ฉันมีลูปซึ่งโดยการวัดเวลาที่ผ่านไปในหน่วยนาโนวินาทีเรียกใช้ตรรกะของเกมและตรรกะการเรนเดอร์ด้วยความเร็วที่กำหนดไว้ล่วงหน้าโดยไม่มีปัญหา ในความเป็นจริงตรรกะใด ๆ ที่ฉันทำในการวนซ้ำนั้นถูกโอเวอร์คล็อกไปที่การโทรในแต่ละวินาที การวนซ้ำตัวเองนั้นวิ่งได้เร็วเท่าที่มันชอบซึ่งมีประมาณ 11.7 ล้านลูปต่อวินาทีในเครื่องของฉัน วน (pseudocode ง่าย): while(!isGameOver){ if(canPollInputs){ pollInputs() } while(canStepLogic){ stepLogic() } if(canRender){ render() } } คำถามของฉันนั้นก็คือถ้าลูปแบบง่ายนั้นถ้ามันไม่ทำงานด้วยความเร็วที่ควบคุมสามารถทำอันตรายต่อระบบได้หรือไม่? แก้ไข: นั่นหมายความว่าตรรกะของฉันทำงาน 30 ครั้งต่อวินาที (30 tps), เครื่องมือแสดงภาพของฉันทำงานที่ 60 fps, ฉันสำรวจสัญญาณอินพุต 100 ครั้งต่อวินาทีและยังมีตรรกะบางอย่างที่จะรับมือกับตรรกะหรือการแสดงผลนานกว่าที่คาดไว้ . แต่ห่วงไม่ได้ควบคุมปริมาณ แก้ไข: การใช้Thread.sleep()เช่น Throttle การวนลูปหลักลงไปที่ 250 ลูปต่อวินาทีนำไปสู่การลดลง แต่ลูปทำงานที่ประมาณ 570 ลูปต่อวินาทีแทนที่จะเป็น 250 ที่ต้องการ …

3
การป้อนข้อมูลที่ขับเคลื่อนด้วยเหตุการณ์ Polling
ฉันกำลังพัฒนาเกมโดยใช้การสำรวจสำหรับวิธีการป้อนข้อมูล อย่างไรก็ตามตอนนี้ฉันกำลังขุดลึกลงไปในเมนูเกมและส่วนประกอบ UI อื่น ๆ ฉันพบว่าฉันอาจต้องการป้อนข้อมูลที่ขับเคลื่อนด้วยเหตุการณ์ บางทีอาจจะมีทั้งคู่โดยใช้เหตุการณ์ที่ขับเคลื่อนด้วย UI และการหยั่งเสียงสำหรับอินพุต "โลก" ฉันอยากรู้ว่าวิธีที่ดีที่สุดที่จะไปคืออะไร ฉันกำหนดโพลเป็น: แต่ละลูปการอัปเดตฉันจะตรวจสอบว่ามีการกดปุ่มใดที่เมาส์อยู่ปุ่มกดจากนั้นทำงานผ่านพวกเขาและดำเนินการตามข้อมูลที่รวบรวมไว้ ฉันกำลังกำหนดกิจกรรมที่ขับเคลื่อนเป็น: เหตุการณ์ตามอินเตอร์รัปต์เมื่อมีเหตุการณ์เกิดขึ้นและถูกขัดจังหวะและมีการเรียกใช้โค้ดบล็อกตามเหตุการณ์ คุณคิดว่าเป็นการดีที่สุดหรือไม่ที่จะผลักดันเหตุการณ์ทั้งหมดการเลือกตั้งทั้งหมดหรือเป็นการรวมกันของทั้งสองอย่าง หากคุณมีข้อดีข้อเสียกรุณาระบุไว้ ขอบคุณ แก้ไข เกมนี้ใช้ Java / OpenGL ดังนั้นจะวางจำหน่ายใน Windows / Mac / Linux ความเป็นไปได้ของการขยายไปยังอุปกรณ์มือถือนั้นอยู่ในระดับต่ำ เกมดังกล่าวเป็นสไตล์ RTS, บุคคลที่สาม 3D แก้ไข 2 ฉันยังคงไม่มีความสุขกับวิธีที่ฉันใช้สิ่งนี้ แต่สิ่งที่ฉันกำลังมุ่งไปคือการจับกิจกรรมใน UI ของฉันและหากพวกเขาไม่ได้รับการจัดการโดยองค์ประกอบ UI ใด ๆ ของฉันฉันจะส่งต่อเหตุการณ์ไปยัง "โลก" สำหรับการเลือก / การเลือก สิ่งที่ต้องการ: @Override …
19 java  input  events  polling 

8
พงษ์ AI ที่ไม่สมบูรณ์
ดังนั้นฉันเริ่มเรียนรู้ Java และ OpenGL บางส่วนในขณะที่ใช้ LWJGL เพื่อเริ่มต้นง่ายฉันเขียนโคลนของอาตาริโป่ง ฉันได้ตั้งค่าหน้าจอเกมอย่างถูกต้องการตรวจจับการชนและเกมส่วนใหญ่ทำงานได้จริงถ้าเป็นเกมผู้เล่น 2 คนที่ฉันจะทำตอนนี้ แต่ขณะที่ฉันวางแผนที่จะทำเกมผู้เล่นคนเดียว ฉันต้องหา AI ง่าย ๆ เพื่อควบคุมผู้เล่นคนที่สอง การรู้ว่าลูกบอลจะถูกตีที่ใดจะเป็นเรื่องที่ค่อนข้างยุติธรรมและการสร้าง AI ซึ่งมักจะทำให้ลูกบอลดูเหมือนว่าเป็นเรื่องง่ายที่จะทำ แต่ฉันต้องการให้เกมชนะได้ดังนั้นฉันจึงไม่สามารถทำให้ IA ตี ลูกบอล. ดังนั้นนี่คือคำถามของฉันฉันควรเขียนโค้ดนี้อย่างไรเพื่อเพิ่มความไม่สมบูรณ์แบบเหมือนมนุษย์ลงใน AI ฉันควรสุ่มเลือกว่า AI จะล้มเหลว ณ จุดที่กำหนดหรือไม่? หรือมีสิ่งที่ฉลาดกว่า (หรืออาจชัดเจน) ที่ฉันหายไปที่นี่ ขอบคุณมาก.
19 java  ai 

14
คำแนะนำสำหรับ CS ปีแรกที่สำคัญ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังจะสิ้นสุดปีแรกของ CS ซึ่งเป็นหลักสูตรพื้นฐานของ Java ฉันต้องการทำให้เท้าเปียกด้วยการพัฒนาเกม แต่ฉันไม่แน่ใจว่าจะเริ่มต้นตรงไหน บางคนแนะนำว่าฉันเริ่มต้นด้วยผู้สร้างเกมซึ่งมีภาษาสคริปต์แบบ C (ซึ่งควรจะหยิบง่าย) เพราะมันอาจจะง่ายที่สุดและให้ฉันจดจ่อกับการออกแบบเกมเป็นหลัก ฉันเห็นคนจำนวนมากแนะนำ XNA เนื่องจากมีนามธรรมที่ดีของ opengl และ directX ผ่าน APIs ฉันยังได้ยินว่า C # คล้ายกับ Java มาก ฉันยังพิจารณาการเขียนโปรแกรมเกมใน Java เนื่องจากฉันค่อนข้างสบายใจกับมันและได้ทำการอ่านเพิ่มเติมใน multi-threading และ API กราฟิก 2d ในที่สุดเพื่อนคนหนึ่งเพิ่งแสดง pygame ให้ฉันซึ่งฟังดูดีมาก แต่ฉันก็ไม่รู้เหมือนกัน ฉันไม่รู้ว่า C ++ เป็นจุดเริ่มต้นที่ดีหรือไม่โพสต์มากมายที่ฉันเคยเห็นสำหรับผู้เริ่มต้นเกม devs ไม่แนะนำสำหรับโครงการเกมแรก ฉันขอขอบคุณที่ป้อนข้อมูลใด …
17 game-design  java 

1
OpenGL: ปรับขนาดจอแสดงผลและ glOrtho / glViewport
ฉันได้ค้นคว้าคำถามนี้จากหลาย ๆ แหล่งและยังไม่พบคำตอบที่แน่นอนที่บอกว่า "ใช่นั่นคือการคิดที่ถูกต้อง" หรือ "ไม่นี่คือวิธีที่ทำ" ฉันพยายามรับประกันความเป็นอิสระในการแก้ปัญหาด้วยการเรนเดอร์ OpenGL วิธีที่ฉันคิดว่าฉันควรทำคือการสร้างการฉายภาพโดยใช้glOrthoทุกสิ่งที่ฉันต้องการให้พิกัดโลกเป็น ตัวอย่างเช่นglOrtho(-50.0, 50.0, -50.0, 50.0, 1.0, -1.0). ถัดไปตั้งค่าวิวพอร์ตไปยังความละเอียดหน้าจอคือ glViewport(0, 0, 800, 600)- ในที่สุดเมื่อใดก็ตามที่หน้าต่างมีขนาดใหม่ให้ทำการโทรglViewportด้วยความละเอียดหน้าจอที่อัปเดต นี่จะเป็นการเพิ่มขนาดของคุณ นี่เป็นวิธีที่ถูกต้องหรือไม่ที่จะทำให้แน่ใจว่ารุ่นต่างๆมีสัดส่วนพื้นที่หน้าจอเท่ากันตามความละเอียดที่แตกต่างกันหรือไม่? ฉันควรใช้การฉายภาพที่มีความละเอียดเท่ากับหรือไม่ ฉันพบคำตอบบางคำที่บอกว่าglOrthoควรใช้ความละเอียดของหน้าต่างของคุณในขณะที่คนอื่นบอกว่าควรจะ / อาจแตกต่างกัน คิด?

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