Saya akan mulai mengembangkan permainan sidescrolling di mana tujuan pemain adalah melakukan perjalanan sejauh yang dia bisa dalam sumbu horizontal sebelum mendarat. Perhatikan bahwa saya tidak perlu pernah melakukan perjalanan kembali pada sumbu horizontal.
Saya mengembangkan ini dengan AndEngine untuk Android yang menggunakan OpenGL dan Box2d.
Sebelum memulai, saya perlu memutuskan sesuatu yang penting: haruskah saya menggunakan dunia di sekitar pemain untuk mensimulasikan gerakan atau benar-benar menggerakkan pemain dan mengikutinya dengan fitur kamera mesin gim?
Kedua pendekatan ini tampaknya memiliki kekuatan dan kelemahan yang berbeda, jadi saya tidak tahu mana yang dianggap terbaik. Misalnya, apa yang akan membuatnya lebih mudah untuk menambahkan power up di sepanjang jalan dan memiliki latar belakang animasi yang bagus?
Terima kasih!
Jawaban:
Pindahkan kamera (terpasang ke pemutar Anda). Saya akan membayangkan bahwa duniamu memiliki banyak objek seperti musuh. Jika Anda pergi dengan memindahkan dunia, Anda harus mengulang semua objek ini untuk memperbarui posisi mereka setiap kali dunia bergerak.
Jika Anda memindahkan pemain, dan memasang kamera ke pemain maka ada penggunaan sumber daya minimal. Gim ini akan sampai pada fase render-nya, loop melalui segala sesuatu seperti yang dilakukannya pada setiap frame, dan menggambar mereka di posisi - posisi kamera. Posisi kamera akan selalu sama dengan posisi pemain Anda dalam hal ini.
sumber
camera.setChaseEntity(player);
untuk mencapai ini.Saya selalu menggerakkan kamera dan akan merekomendasikannya - ada banyak alasan mengapa saya lebih suka ini, tetapi yang paling penting mungkin bermuara pada ini:
Jika Anda menggerakkan kamera dan pemutar, itu hanya dua entitas yang perlu diperbarui untuk menggulir layar.
Jika Anda memindahkan seluruh dunia setiap kali layar perlu digulir, itu mencakup sejumlah besar entitas yang tidak diketahui dan mungkin besar yang harus diperbarui.
sumber
Benar-benar sepele, tidak benar-benar membuat perbedaan dari hal-hal yang telah Anda jelaskan.
Entah Anda memindahkan latar belakang melewati kamera dan pemain, atau Anda memindahkan pemain dan kamera bersamanya. Saya kira ada satu hal yang harus dilakukan jika Anda hanya memindahkan latar belakang.
Meskipun saya kira jika Anda memindahkan latar belakang Anda harus menjadi orang tua pickup dan musuh itu, yang sekali lagi, sepele tapi itu sesuatu untuk dipikirkan.
Secara pribadi saya akan memindahkan pemain karena saya hanya suka hal-hal yang harus dilakukan dengan cara yang lebih realistis.
sumber
Jawaban lain baik, tetapi saya ingin menambahkan beberapa poin dari apa yang lebih baik, berharap dapat membantu seseorang yang mencoba membuat keputusan yang sama untuk proyek yang berbeda.
Memindahkan Player:
player.x += 5;
(pseudocode).Memindahkan Dunia:
0
.0
.Pada akhirnya, itu tergantung pada proyek. Jika seseorang membuat klon Mario asli, menggerakkan dunia bisa jadi rumit, sementara menggerakkan pemain tidak benar-benar membuat banyak masalah. Namun, ingin membuat game dunia terbuka yang besar, mungkin lebih baik untuk memindahkan dunia.
sumber