परीक्षण और त्रुटि के माध्यम से अध्ययन और प्रयोग के एक वर्ष के बाद, मुझे लगता है कि मैं जावास्क्रिप्ट को थोड़ा और समझना शुरू कर रहा हूं। तो, अब, मैं एक साधारण 2 डी प्लेटफार्म गेम लिखने पर अपने हाथ की कोशिश करना चाहता हूं (लगता है कि सुपर मारियो वर्ल्ड या सोनिक द हेजहोग)। इसके लिए, मैं EaselJS लाइब्रेरी को नियोजित करूँगा।एचटीएमएल 5 कैनवास: EaselJS
मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं बाएं और दाएं तीर कुंजियों के उपयोग से कैनवास के भीतर 'दुनिया' को कैसे चला सकता/सकती हूं। मुझे पता है कि मैं तीर कुंजी के keydown
पर फ़ंक्शन कैसे चला सकता हूं, लेकिन मुझे यकीन नहीं है कि मुझे चलती/पैनिंग से कैसे संपर्क करना चाहिए।
मैं जब एक कुंजी दबाने कैनवास के भीतर हर एक बात की स्थिति/निर्देशांक को समायोजित करना चाहिए? या क्या मुझे शायद सब कुछ एक कंटेनर में रखना चाहिए और कंटेनर की स्थिति/निर्देशांक को स्थानांतरित करना चाहिए?
मैं कुछ भी सराहना करता हूं जो मुझे सही दिशा में घुमाता है। Tyvm :)
जवाब The chosen answer below के साथ अपडेट किया पुष्टि की है कि मैं वास्तव में एक container में सब कुछ डाल करने के लिए तो मुझे लगा कि कंटेनर की स्थिति सेट कर सकते हैं कि था। यह कोड मैंने तैयार किया है, और यह काम करता है।
// Canvas
var stage = new createjs.Stage('game');
createjs.Ticker.addEventListener('tick', tick);
function tick(event) {
stage.update();
}
// Cave
var cave = new createjs.Bitmap('img/cave.png');
cave.x = cave.y = 0;
// World
// Pans World if the left or right arrow keys are pressed
var world = new createjs.Container();
world.x = 0;
world.y = 0;
world.addChild(cave);
stage.addChild(world);
$(window).keydown(function(e){
switch (e.which || e.keyCode){
case 39: // right arrow key
world.regX += 10;
break;
case 37: // left arrow key
world.regX -= 10;
break;
}
});
मैं world.regX
के साथ ही world.x
को अद्यतन करने की कोशिश की। किसी भी तरह, world.regX
चिकनी जाना प्रतीत होता है।
मैं अब बहुत बेवकूफ लग रहा हूं, लेकिन स्क्रोल करने योग्य ऑब्जेक्टकेंटर क्या है? मैं इसे EaselJS API, या Google पर नहीं ढूंढ सका। – AKG
बस एक कंटेनर, मैंने इसे इस तरह नाम दिया। – rpg600
कोई विचार है कि मैं ट्विन जोड़ने के बारे में कैसे जा सकता हूं? मैं 'createjs.Tween.get (world) .to ({regX: world.regX + 10}, 100) के विभिन्न बदलावों की कोशिश कर रहा हूं;' लेकिन समझदारी से, यह लगी होनी चाहिए (क्योंकि एक सामान्य कीडाउन के लिए आयोजित किया जाता है) केवल एक ही हिट के बजाय कई सेकंड) – AKG