อัปเดตฟังก์ชันใน SpriteKit ที่แตกต่างกันสำหรับ iPhone X

ฉันมีเกม SpriteKit ใน Swift โดยจะเลื่อนไปเรื่อย ๆ ในโหมดแนวนอน ทำให้เกิดสิ่งกีดขวางและศัตรูในฟังก์ชัน update() ของฉากเป็นระยะ ๆ

ฉันยังอัปเดตค่าคะแนนที่นี่ด้วย ปัญหาอยู่ใน iPhone X เนื่องจากความยาวแตกต่างกัน มันทำให้เกมเลอะเทอะและทำให้เล่นไม่ได้ สิ่งต่างๆ เกิดเร็วเกินไปและคะแนนจะอัปเดตช้า

นอกจากนี้ ดูเหมือนว่าตัวจำลองจะรันเกมแตกต่างจากอุปกรณ์จริง มันเล่นได้ดีบนตัวจำลอง iPhone X แต่เมื่อฉันดูบน iPhone X ของเพื่อนๆ มันเป็นไปไม่ได้ ดังนั้นฉันไม่แน่ใจด้วยซ้ำว่า การเปลี่ยนแปลงที่ฉันกำลังทำจะสร้างความแตกต่าง!

กรุณาช่วย!


person goat    schedule 21.03.2018    source แหล่งที่มา


คำตอบ (1)


การอนุญาตให้มีอัตราส่วนภาพ ความละเอียด หน่วย และระยะทางที่แตกต่างกัน (ในการพยายามสร้างประสบการณ์การเล่นเกมที่สอดคล้องกันในทุกด้าน) เป็นปัญหายากที่กลายเป็นเรื่องยาก

วิธีเดียวที่จะแน่ใจได้อย่างแน่นอนคือทำงานในพื้นที่ฟิสิกส์ที่สอดคล้องกันและแก้ไขความละเอียดและอัตราส่วนภาพผ่านกล้องนามธรรมที่ไม่สนใจหน้าจอ/ความละเอียด/อัตราส่วนภาพของอุปกรณ์

ถึงกระนั้น คุณยังต้องจัดลำดับความสำคัญของฟิสิกส์ในลักษณะที่ความแปรปรวนของเวลาในการเรนเดอร์เฟรม (ระหว่างอุปกรณ์) ไม่ทำให้เกิดความแตกต่างที่แปลกประหลาดระหว่างอุปกรณ์ที่ต่างกัน

แต่ถึงอย่างนั้น มันก็จะไม่สมบูรณ์แบบอย่างแน่นอน แค่ใกล้กับมัน

และเพิกเฉยต่อเครื่องจำลองเสมอ เป็นการดีสำหรับการทดสอบว่าสิ่งต่างๆ อยู่ที่ไหน ไม่ใช่ลักษณะการทำงาน หรือแม้แต่รูปลักษณ์ภายนอกเท่านั้น

person Confused    schedule 21.03.2018
comment
ฉันจัดการปรับแต่งตัวแปรสำหรับเงื่อนไข iphone x เพื่อให้มันใช้งานได้ มีแต่ความเจ็บปวดเต็มไปหมด หวังว่าจะได้ผล เราจะได้เห็นว่าการอัปเดตนี้จะออกมาเมื่อใด ฮ่าๆ - person goat; 21.03.2018