मैं 2 डी में लंबन स्क्रॉलिंग को कैसे लागू करूं?


21

मान लीजिए मेरे पास तीन परतें हैं: एक अग्रभूमि, एक मध्यवर्ती जमीन और एक पृष्ठभूमि। लंबन स्क्रॉलिंग बनाने के लिए इन तीन परतों का उपयोग करने में क्या शामिल है ?

जवाबों:


20

प्रत्येक परत की स्थिति को "दूरी" से विभाजित करें जिसे आप कैमरे से लेना चाहते हैं।

उदाहरण के लिए: कैमरा स्थिति का प्रतिनिधित्व करने के लिए कुछ चर बनाएं, cameraXऔर cameraY। अपने चरित्र की स्थिति के बराबर करने के लिए इन्हें सेट करें, संभवतः आंदोलन की दिशा में थोड़ा अतिरिक्त पर।

मुख्य परत बस में तैनात किया जाएगा

mainLayer.x = -cameraX;

बीच की परत जैसे कुछ

middleLayer.x = -cameraX * 0.5;

और सबसे दूर की परत

farLayer.x = -cameraX * 0.2;

आवश्यकतानुसार स्थिरांक बदलें।


3
Iain ने क्या कहा, इसके अलावा, मैं "लंबन कारक" (1, 0.5 और 0.2 Iain के कोड में) लेता हूं और इसे अपनी परतों का वर्णन करने वाला एक पैरामीटर बनाता हूं, इस तरह मैं लंबन सूक्ष्मता (या रनटाइम पर) को समायोजित कर सकता हूं।
ट्रॉय गिल्बर्ट

6

मूल रूप से आप वस्तुओं को तेजी से आगे बढ़ाना चाहते हैं, वे 'कैमरा' के करीब हैं। आप कैसे लागू करते हैं जो आपके ऊपर है।

मैं अपनी प्रत्येक परत को एक गहराई प्रदान करता हूं, और फिर जैसे ही मैं दृश्य को स्क्रॉल करता हूं, प्रत्येक परत के लिए मैं उस स्क्रॉल को परत की गहराई से विभाजित करता हूं, ताकि परतें जो आगे हैं धीमी हो जाएं।


5

एक परत जो "आगे पीछे" होती है उसे अग्रभूमि परत की गति के एक अंश पर स्क्रॉल करने की आवश्यकता होती है। आधी गति से तात्पर्य दूरी से दोगुना है। कोहरे का अनुकरण करने के लिए टिनिंग जैसे अन्य प्रभाव भी भ्रम में डाल सकते हैं।


1

इसका सबसे अच्छा तरीका यह है कि स्प्राइट को केवल 3 डी में बिलबोर्डेड क्वाइड के रूप में प्रस्तुत किया जाए। "गेमप्ले" सभी एक विमान पर हो सकता है, जबकि पृष्ठभूमि और अग्रभूमि को 3 डी अंतरिक्ष में करीब या आगे रखा जा सकता है। इस तरह, बिना किसी विशेष कोडिंग के आप के लिए लंबन प्रभाव को आप के लिए संभाला जाता है :-)


3
यदि आप ऐसा करते हैं, तो आपको दूरी दूर करने के लिए क्षतिपूर्ति करने के लिए या तो दूर के पैमानों को मापना होगा, या किसी भी परिप्रेक्ष्य को लागू नहीं करने वाले प्रक्षेपण मैट्रिक्स को स्थापित करना होगा। हो सकता है कि खुद ही क्वाड का अनुवाद करना आसान हो।
उदार

0

अपनी स्थिति से घटाकर नीचे की परत को स्क्रॉल करें, मध्य परत को सामान्य की तरह खींचें, और नीचे की परत की गति को दो से विभाजित करके ऊपरी परत को स्क्रॉल करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.