Fungsi pembaruan di SpriteKit berbeda untuk iPhone X

Saya memiliki permainan SpriteKit di Swift. Ia bergulir tanpa batas waktu dalam mode lanskap yang memunculkan rintangan dan musuh dalam fungsi update() adegan sesering mungkin.

Saya juga memperbarui nilai skor di sini. Masalahnya ada di iPhone X karena panjangnya berbeda sehingga mengacaukan permainan dan membuatnya tidak dapat dimainkan. Segalanya muncul terlalu cepat dan skor diperbarui dengan lambat.

Terlebih lagi, simulator ini tampaknya menjalankan permainan secara berbeda dari perangkat sebenarnya, ia berfungsi dengan baik di simulator iPhone X. Namun, ketika saya melihatnya di iPhone X teman saya, hal itu tidak mungkin, jadi saya bahkan tidak yakin apakah perubahan yang saya buat akan membuat perbedaan!

Tolong bantu!


person goat    schedule 21.03.2018    source sumber


Jawaban (1)


Mengizinkan rasio aspek, resolusi, unit, dan jarak yang berbeda (dalam upaya menciptakan pengalaman bermain game yang konsisten secara keseluruhan) adalah masalah yang sulit menjadi sulit.

Satu-satunya cara untuk benar-benar yakin adalah dengan bekerja dalam ruang fisika yang konsisten dan sewenang-wenang serta menyelesaikan resolusi dan rasio aspek melalui kamera abstrak yang tidak mempedulikan layar/resolusi/rasio aspek perangkat.

Meski begitu, Anda perlu memprioritaskan fisika sedemikian rupa sehingga perbedaan waktu rendering bingkai (antar perangkat) tidak menyebabkan perbedaan aneh antara perangkat yang berbeda.

Namun, meskipun demikian, hal itu tidak akan sepenuhnya sempurna. Dekat saja.

Dan selalu abaikan simulatornya. Ini hanya bagus untuk menguji keberadaan sesuatu, bukan bagaimana perilakunya, atau bahkan tampilannya.

person Confused    schedule 21.03.2018
comment
Saya berhasil mengubah variabel saya untuk kondisi iPhone x agar berfungsi. Tapi itu sangat menyakitkan. semoga berhasil, kita lihat saja kapan pembaruan ini keluar haha - person goat; 21.03.2018