Kami sedang mengembangkan permainan lompat dan lari dengan HTML5 dan JavaScript dan harus membuat kerangka kerja permainan sendiri untuk ini. Di sini kami memiliki beberapa kesulitan dan ingin meminta saran kepada Anda:
Kami memiliki objek "Panggung", yang mewakili akar permainan kami dan merupakan pembungkus div global. Panggung dapat berisi beberapa "Adegan", yang juga merupakan elemen div. Kami akan menerapkan Scene untuk tugas bermain, untuk jeda, dll dan beralih di antara mereka. Oleh karena itu setiap adegan dapat mengandung beberapa "Layers", mewakili kanvas. Lapisan ini berisi "ObjectEntities", yang mewakili gambar atau bentuk lain seperti persegi panjang, dll. Setiap Objectentity memilikiCanvas sementara sendiri, untuk dapat menggambar gambar untuk satu entitas, sedangkan yang lain berisi persegi panjang.
Kami menetapkan ActiveScene di Stage kami, jadi ketika game dimainkan, hanya adegan aktif yang diambil. Memanggil activeScene.draw()
, memanggil semua sublayer untuk menggambar, yang menarik entitas mereka (panggilan drawImage(entity.canvas)
). Tetapi apakah ini semacam praktik yang baik? Memiliki beberapa kanvas untuk menggambar? Setiap loop game, setiap konteks layer dihapus dan ditarik lagi. Misalnya kita masih memiliki Background-Layer, ... bukankah akan lebih berguna untuk menggambar ini sekali dan tidak menghapusnya setiap kali dan menggambarnya kembali? Atau haruskah kita menggunakan kanvas global misalnya di Panggung dan cukup menggunakan kanvas ini untuk menggambar? Tapi kami pikir ini akan mahal ...