ตัวอย่างเช่น Motorola Droid นั้นกว้างเท่ากับ G1 แต่มีความสูงมากกว่า
ฉันควรพยายามกระจาย UI ออกไปตามความสูงที่เพิ่มขึ้นของ Motorola Droid หรือไม่? คนอื่นจัดการกับปัญหานี้อย่างไร
ฉันไม่ได้ใช้ OpenGL แต่เป็น SurfaceView สำหรับเกม 2D
ตัวอย่างเช่น Motorola Droid นั้นกว้างเท่ากับ G1 แต่มีความสูงมากกว่า
ฉันควรพยายามกระจาย UI ออกไปตามความสูงที่เพิ่มขึ้นของ Motorola Droid หรือไม่? คนอื่นจัดการกับปัญหานี้อย่างไร
ฉันไม่ได้ใช้ OpenGL แต่เป็น SurfaceView สำหรับเกม 2D
คำตอบ:
ระวังความเป็นอิสระของความหนาแน่น (ความละเอียดโดยทั่วไป) ตามที่อธิบายไว้ที่นี่: http://developer.android.com/guide/practices/screens_support.html
และตามอัตราส่วนที่เกี่ยวข้องให้เลือกอัตราส่วนภาพเป้าหมายที่น้อยที่สุดและออกแบบภายในกรอบภาพที่ปลอดภัย เมื่อเผชิญหน้ากับอัตราส่วนภาพที่กว้างขึ้นแสดงเกมที่ไม่สำคัญต่อการเล่นเกมมากขึ้น ฉันได้โพสต์คำถามที่คล้ายกันที่นี่และอธิบายสิ่งที่ฉันจะทำ: คุณเข้าใกล้ความเป็นอิสระในการแก้ปัญหาในเนื้อหากราฟิกตามแรสเตอร์ได้อย่างไร?
คุณสามารถทำการแก้ไขความละเอียดแบบไดนามิกที่ฉันแสดงที่นี่บน iphone:
http://www.blog.namar0x0309.com/2011/10/adaptive-resolution/
ให้แน่ใจว่าคุณวางทุกอย่างด้วยอัตราส่วน ตัวอย่างเช่นแถบสุขภาพจะถูกวางไว้ที่ 80% ของความกว้างของหน้าจอและ 10% ของความกว้างของหน้าจอสำหรับระดับแนวนอน (อ้างอิงถึงมิติการกำหนดสไตล์ CSS) มันค่อนข้างแปลกในตอนแรก แต่คุณไม่ต้องจัดการกับความละเอียดที่แตกต่างกันในระยะยาวเพราะวิดเจ็ต / รูปภาพของคุณจะเคลื่อนไหวแบบไดนามิกด้วยหน้าจอที่แตกต่างกัน
หากเกมของคุณใช้การเลือกแปลแปลด้วยอัตราส่วน (คุณต้องมีมิติชุดดั้งเดิมซึ่งคุณสามารถใช้เป็นข้อมูลอ้างอิงในการสร้างอัตราส่วนด้วยขนาดอุปกรณ์
หากคุณกำลังใช้ eclipse คุณสามารถมีภาพขนาดแตกต่างกันหลายภาพใน drawable-ldpi, drawable-mdpi และ drawable-hdpi และเอ็นจิ้น android จะเลือกรูปภาพที่เหมาะสมสำหรับความละเอียดหน้าจอโดยอัตโนมัติ
Keyframe กล่าวถึงวิธีการที่ดี แต่ฉันจะเสนออีกสองรายการ:
1) ออกแบบเกมของคุณสำหรับความละเอียด / อัตราส่วนภาพ แนวคิดคือการใช้ประโยชน์จากอสังหาริมทรัพย์ทุกส่วนของหน้าจอ แต่ "ออกแบบ" ข้อดีที่อัตราส่วนภาพหนึ่งอาจมีต่ออีกภาพหนึ่ง ขึ้นอยู่กับเกมเป็นอย่างมากอัตราส่วนภาพที่แตกต่างกันอาจยังมีข้อได้เปรียบเหนือผู้อื่นดังนั้นคุณจะต้องคำนึงถึงสิ่งต่าง ๆ เช่นการจับคู่ผู้เล่นหลายคนกระดานผู้นำความสำเร็จและอื่น ๆ หากเกี่ยวข้องกัน
2) ใช้พื้นที่เพิ่มเติมสำหรับ HUD / chroming เพิ่มเติม ค่อนข้างมากที่ Keyframe กล่าวว่าเท่าที่มีการสนับสนุนพื้นฐานหรือความละเอียดขั้นต่ำ แต่แทนที่จะใช้พื้นที่เพิ่มเติมสำหรับสิ่งอื่นนอกเหนือจากการกระทำของเกม
ข้อเสียอย่างใหญ่หลวงกับวิธีที่สองคือถ้าคุณใช้สิ่งที่เป็นสี่เหลี่ยมจัตุรัสมาก ๆ เป็น "โซนปลอดภัย" ของคุณคุณจะทิ้งพิกเซลจำนวนมากที่ไม่ได้ใช้ / ไม่ได้ใช้ไว้ในการตั้งค่าแบบจอกว้าง
การเลือกความละเอียดที่เหมาะสมที่สุดสำหรับเกมตั้งแต่เริ่มต้นของการพัฒนาสามารถลดอาการปวดหัวด้วยการพอร์ตในภายหลัง
ความละเอียด "ดีที่สุด" ขึ้นอยู่กับหลายปัจจัย:
- แพลตฟอร์มเกมควรได้รับการปล่อยตัวในครั้งแรก
- แพลตฟอร์มที่เป็นไปได้อื่น ๆ ที่คุณวางแผนที่จะพอร์ตในภายหลัง
-Graphical fidelity (เกมภาพ 8 บิตหรือพิกเซลไม่จำเป็นต้องมีความละเอียดสูง)
-Genre (เกมตัวต่ออาจมีความละเอียดต่ำกว่า แต่ FPS ที่มีความเร็วสูงอาจไม่รองรับ)