2013-06-12 22 views
5

HTML5'te javascript kullanarak gerçek zamanlı çok oyunculu bir platform oyunu oluşturmayı planlıyorum. Web'lerde yaklaşık 4 saat aradıktan sonra, ebedi soru üzerine güncel bir cevap bulamadım: DOM ile oyunumu bir tuvalin içine yerleştirmekten daha hızlı mı olacak? Oyun tüm belge olacak. 2/4 oyuncu haritaya atlayacak ve birbirlerine ateş edecek, bombalar patlayacak. Yani? O ne olacak. 2 yıl önce DOM ile bir çizim uygulaması yaptığımı hatırlıyorum ve sorunsuz bir şekilde çalıştı, ama sanırım tuval hızı bugünlerde daha mı iyi? Sağolun beyler.HTML5 Oyun, kanvas veya div?

P.S. Ben de Dart kullanmayı düşünüyorum.

+2

En modern JavaScript (veya Dart) oyunlar Senin ya da tuval öğesi olmadan bu gibi şeyler yapmak gerçekten zor olurdu olamayacağını eminim bir tuvalde işlenir. Dart da gelişmiş tuval programları için bazı kütüphanelere (neredeyse eminim) sahiptir. Bazı Dart örnek projeler veya Dart paket yöneticisi [Pub] (http://pub.dartlang.org) bir göz atın ve hızlı bir şekilde başlamanız için bazı şeyler bulmalısınız. – beakr

+0

En yeni tarayıcıların çoğunda donanım hızlandırılmış tuval var. Gerçek performans hala tarayıcıya bağlı. Ayrıca, hem kanvas hem de DOM oluşturmayı kullanarak çözümleri de tarayabilirsiniz. Ancak tuval, güzelliğini daha karmaşık bir şekilde gösterecektir. (Parçacıklar, gölgeler, dönüşümler vb. Gibi). –

+0

Dart kullanmayı tercih ederseniz, çok sayıda bilgi ve kod için http://dartgamedevs.org adresine bakın. –

cevap

6

Tuvali kullanırım ve doğrudan çizim modu olduğu için aynısını yapar. Ancak, mümkün olan her yerde donanım ivmesine zorlandığından kesinlikle emin olmalısınız. Bunu <canvas> öğesinin stilini transform:translateZ(0);'a (veya bunun farklı tarayıcı yorumlarına, ör. -webkit-transform:translateZ(0);) girerek yapabilirsiniz. DOM'ın manipüle edilmesi, tuvalin özellikle en yüksek performansı elde etmek için basit yöntemlerle daha yakın ve yerel kodlara daha yakın olduğu durumlarda yavaş olabilir.

Oyunlarım, her platformda evrensel olarak iyi değil (eski Android İşletim Sistemleri gecikmesi, ancak JS & tarayıcı oluşturma motorları bu kadar hızlı değildi), ancak oldukça iyi birçok platformda.

2

Tuval, tanımladığınız oyun türü için en iyi seçimdir, ancak bazı DOM öğeleri, örneğin, oyuncunun adını soran veya oyunun içinde bir menú veya profil bölümü oluşturarak, tuval kullanarak bile çok yararlıdır. DOM öğelerini görüntülemeniz gerektiğinde ve tuval öğesinde çizim ve animasyon sprite gibi tüm "oyun öğelerini" gerçekleştirdiğinizde, tuvalinizin üzerine mutlak konumla div oluşturabilirsiniz.

Tuval'in en iyi seçim olmasının nedeni basittir.

http://galloman.github.io/ss2d/samples/skeletons2.html

Daha az: http://ss2d.wordpress.com/support/

+0

SO'ya hoş geldiniz! Düşüncelerin öznel ifadelerinden kaçınmaya çalışın (örn. "Eminim") ve bunun yerine mümkün olduğunca referanslarla gerçek bilgiler sağlayın. Şerefe! – butch

+0

Teşekkür ederim Gallo. : D – Romeo

İlgili konular