2013-06-12 9 views
5

मैं जावास्क्रिप्ट का उपयोग कर HTML5 में रीयल-टाइम मल्टीप्लेयर प्लेटफार्म गेम बनाने की योजना बना रहा हूं। जाल पर लगभग 4 घंटे की खोज करने के बाद, मुझे शाश्वत प्रश्न पर एक अद्यतित उत्तर नहीं मिला: डीओएम के साथ मेरा गेम प्रस्तुत करना कैनवास के अंदर इसे प्रस्तुत करने से तेज़ होगा? खेल पूरा दस्तावेज़ होगा। 2/4 खिलाड़ी मानचित्र पर कूदेंगे और एक-दूसरे पर शूट करेंगे, बम विस्फोट करेंगे। इसलिए? यह क्या हो जाएगा। मुझे याद है कि मैंने दो साल पहले डीओएम के साथ ड्रा ड्रा बनाया था और यह थोड़े आसानी से काम करता था, लेकिन मुझे लगता है कि कैनवास की गति आजकल बेहतर है? आप लोगों को धन्यवाद।एचटीएमएल 5 गेम, कैनवास या div?

पीएस मैं भी डार्ट का उपयोग करने के बारे में सोचता हूं।

+2

अधिकांश आधुनिक जावास्क्रिप्ट (या डार्ट) खेल मैं बहुत यकीन है कि तुम नहीं है या यह वास्तव में कड़ी मेहनत कैनवास तत्व के बिना इस तरह काम करने के लिए किया जाएगा सकता हूँ एक कैनवास में प्रस्तुत किया जाता है। उन्नत कैनवास कार्यक्रमों के लिए डार्ट में कुछ पुस्तकालय हैं (मुझे लगभग यकीन है)। कुछ डार्ट नमूना परियोजनाओं या डार्ट पैकेज मैनेजर [पब] (http://pub.dartlang.org) पर नज़र डालें और आपको शुरू करने के लिए आपको कुछ चीज़ें तुरंत मिलनी चाहिए। – beakr

+0

अधिकांश नवीनतम ब्राउज़रों में हार्डवेयर त्वरित कैनवास है। वास्तविक प्रदर्शन अभी भी ब्राउज़र पर निर्भर करता है। आप कैनवास और डोम प्रतिपादन दोनों का उपयोग करके समाधान भी जा सकते हैं। लेकिन कैनवास अपनी सुंदरता दिखाएगा क्योंकि प्रतिपादन के संदर्भ में गेम अधिक जटिल है (जैसे कण, छाया, परिवर्तन ... आदि)। –

+0

यदि आप डार्ट का उपयोग करना चुनते हैं, तो बहुत सारी जानकारी और कोड के लिए http://dartgamedevs.org देखें। –

उत्तर

6

मैं कैनवास का उपयोग करता हूं, और ऐसा करने के लिए कहता हूं क्योंकि यह प्रत्यक्ष ड्राइंग मोड है। हालांकि, आपको पूरी तरह से यह सुनिश्चित करना चाहिए कि जहां भी संभव हो, इसे हार्डवेयर त्वरण में मजबूर किया जाए। आप <canvas> तत्व की शैली को transform:translateZ(0); (या उसमें विभिन्न ब्राउज़र व्याख्याओं, जैसे -webkit-transform:translateZ(0);) की शैली सेट करके ऐसा करते हैं। डीओएम में हेरफेर करना अब धीमा हो सकता है कि कैनवास देशी कोड के करीब और करीब है, खासतौर से सरल तरीकों के साथ इसका सबसे अधिक प्रदर्शन प्राप्त करने के लिए।

मेरे खेल इस के साथ विभिन्न प्लेटफार्मों पर बहुत अच्छी तरह से करने के लिए लगता है - नहीं सार्वभौमिक अच्छी तरह से हर एक मंच (पुराने Android OSes अंतराल है, लेकिन उनके जे एस & ब्राउज़र प्रतिपादन इंजन के साथ शुरू करने के लिए तेजी से नहीं थे) पर है, लेकिन बहुत अच्छी तरह से कई प्लेटफार्मों पर।

2

कैनवास आपके द्वारा वर्णित गेम के प्रकार के लिए सबसे अच्छा विकल्प है, लेकिन कुछ डीओएम तत्व कैनवास का उपयोग करके भी बहुत उपयोगी हैं, उदाहरण के लिए, प्लेयर के नाम से पूछना, या गेम के अंदर मेन्यू या प्रोफाइल अनुभाग बनाना। जब आप DOM तत्वों को प्रदर्शित करने की आवश्यकता होती है, तो आप अपने कैनवास के शीर्ष पर पूर्ण स्थिति के साथ एक div प्रस्तुत कर सकते हैं, और कैनवास तत्व में ड्राइंग और एनिमेट स्प्राइट्स जैसी सभी "गेम सामग्री" कर सकते हैं।

कैनवास सबसे अच्छा विकल्प क्यों है, यह सरल है।

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

अधिक पर: http://ss2d.wordpress.com/support/

+0

एसओ में आपका स्वागत है! राय के व्यक्तिपरक बयान से बचने की कोशिश करें (यानी "मुझे पूरा यकीन है") और इसके बजाय यथासंभव संदर्भों के साथ तथ्यात्मक जानकारी प्रदान करें। चीयर्स! – butch

+0

धन्यवाद गैलो। : डी – Romeo

संबंधित मुद्दे