इसके साथ असली चाल उच्च विद्यालय-स्तरीय विज्ञान है; जो आपको करना चाहिए था। इस घटना में कि आपने त्वरित Google खोज नहीं की है, आपको आरंभ कर देगा । यह समझाने के लिए कि आप 'नौसिखिया' मानसिकता से कैसे बचें, चंद्र लैंडर उदाहरण लेते हैं ।
एक बार जब आप पढ़ लेते हैं कि [change in position] = [velocity] * [time passed]
यह स्पष्ट हो जाता है कि उन चर का ट्रैक रखने की आवश्यकता होगी:
float x, y; // Your X and Y co-ordinates.
float vx, vy; // Your X and Y velocity.
float deltaTime; // Change in time.
इसके बाद आप बस प्रत्येक फ्रेम में स्थिति के लिए वेग लागू करेंगे:
// Change X by the velocity multiplied by the time.
x = x + vx * deltaTime;
y = y + vy * deltaTime;
अब हम प्रत्येक फ्रेम के वेग को बदलना चाहेंगे ताकि हम गुरुत्वाकर्षण को जोड़ सकें। ठीक उसी स्रोत के अनुसार [change in velocity] = [acceleration] * [time passed]
। इसलिए हम उसी सिद्धांत को लागू कर सकते हैं:
const float gravity = 9.8f; // The gravity of the earth.
// Add gravity to the vertical velocity.
vy = vy + gravity * deltaTime;
// Change X by the velocity multiplied by the time.
x = x + vx * deltaTime;
y = y + vy * deltaTime;
अब आपको खिलाड़ी को अपने अंतरिक्ष यान को नियंत्रित करने के लिए एक रास्ता चाहिए। बुनियादी भौतिकी के बारे में अधिक पढ़ने से आप सीखेंगे कि गति बल का परिणाम है - मुझे कोई स्रोत नहीं मिल सकता है लेकिन [change in acceleration] = ([force] / [mass]) * time
(जहाँ तक मुझे याद है)। इसलिए जब खिलाड़ी एक कुंजी दबाता है तो आप बस fx
और fy
चर को किसी चीज़ में सेट कर देंगे और अपने अपडेट के दौरान समीकरण को लागू करेंगे।
अंततः आपको अपने खेल में वस्तुओं के आस-पास भौतिकी के बारे में सोचने की ज़रूरत है - और इसके बजाय उन्हें उस तरीके से आगे बढ़ने की कोशिश करें जिस तरह से आप सोचते हैं, बल्कि समीकरण देखेंगे ।
फ्यूचर नोट: याद रखें कि यह निश्चित रूप से भौतिकी करने का सबसे अच्छा तरीका नहीं है (इसे यूलर इंटीग्रेशन कहा जाता है और कम फ्रेम दर पर कुछ विषम परिदृश्य पैदा कर सकते हैं) - आपको चीजों को करने के अन्य तरीकों पर गौर करने की जरूरत है (यह लेख काफी महत्वपूर्ण है नंगे मूल बातें पर भी अच्छा लेखन)। हालांकि, अभी के लिए यूलर इंटीग्रेशन के साथ रहना, क्योंकि इसका मतलब है कि आप एक चीज कम सीखने की कोशिश कर रहे हैं।
कौन सा खेल आपको सिखाएगा कि सही मानसिकता में कैसे सोचा जाए?
आप कैसे परीक्षण करेंगे कि आपने चीजों को सही ढंग से और सही मानसिकता के साथ किया है? Sleep(10 milliseconds)
अपने गेम लूप में एक डालें और सब कुछ अभी भी चलना चाहिए और पूर्ण फ्रैमरेट के समान प्रतिक्रिया करना चाहिए।
अंत में, कृपया 3D से अच्छे से दूर रहें (और Quaternions और Matrices लागू करें) जब तक कि आपके पास 2D गेम्स को काम करने का अच्छा अनुभव न हो। मैं यह कहने के लिए उद्यम करूंगा कि काफी कुछ गेम डेवलपर्स वास्तव में नहीं जानते हैं कि क्वाटरनियन या मेट्रिसेस कैसे काम करते हैं - लेकिन केवल यह जानते हैं कि उनका उपयोग कैसे करें - बहुत बाद में उनसे संपर्क करें (या कभी नहीं, 2 डी गेम बहुत मज़ेदार हैं और काफी हो सकते हैं सफल)। आपको वास्तव में रैखिक बीजगणित जानने की जरूरत नहीं है और इसलिए बुनियादी स्तर पर ऐसा करने के लिए (लेकिन यह वास्तव में मदद करता है, इसलिए यदि आप कर सकते हैं तो कुछ रात की कक्षाओं में जाएं)।
अंतिम बोनस: एक बात जो मेरे कला शिक्षक ने मुझे हमेशा बताई है, "जो आप सोचते हैं उसे न देखें, जो आप देखते हैं उसे आकर्षित करें।" यहाँ एक ही बात लागू होती है "आप जो सोचते हैं वह मॉडल न करें ( object.position++
), मॉडल क्या होता है (` ऑब्जेक्ट.पोजिशन + = वेलोसिटी * टाइम) "- कम से कम उचित सीमा तक (आप पूरी तरह से सटीक सिस्टम मॉडलिंग नहीं कर रहे हैं, लेकिन बनाते हैं कुछ ऐसा है जो एक अच्छा उत्थान है)।