पर गुरुत्वाकर्षण जोड़ना मैं अपने पहले xna 2d गेम में गुरुत्वाकर्षण अनुकरण करने की कोशिश कर रहा हूं। मैं निम्नलिखितXna एक 2 डी स्प्राइट
//Used for Jumping
double elapsedAirTime = 0.0;
double maxAirTime = 8.35;
//End Jumping
तो मैं elapsedAirTime < maxAirTime हालांकि, वहाँ मेरी कोड केवल एक बार और नहीं कई स्प्राइट ऊपर ले जाने के लिए लगता है जहां कुछ मुद्दा है, जबकि एक निश्चित राशि से स्प्राइट ऊपर ले जाने के कोशिश कर रहा हूँ है समय के इस खंड के दौरान समय। यहां मेरे "player.cs" वर्ग, या कक्षा की अद्यतन विधि में कोड है।
if (newState.IsKeyDown(Keys.Space))
{
if(oldState.IsKeyUp(Keys.Space))
{
//if we are standing or jumping then change the velocity
if (playerState == PlayerStates.Standing)
{
playerState = PlayerStates.Jumping;
this.position.Y -= (float)(30.0 + ((1.2)*elapsedAirTime)*elapsedAirTime);
}
}
}
//if we are jumping give it some time
if (playerState == PlayerStates.Jumping)
{
if ((elapsedAirTime < maxAirTime) && position.Y < 3)
{
this.position.Y -= (float)(30.0 + ((1.2) * elapsedAirTime)*elapsedAirTime);
elapsedAirTime += gameTime.ElapsedGameTime.TotalSeconds;
}
//otherwise time to fall
else
{
playerState = PlayerStates.Falling;
}
}
//add gravity to falling objects
if (playerState == PlayerStates.Falling || playerState == PlayerStates.Standing)
{
//if we are above the ground
if (this.position.Y < windowBot - 110)
{
//chnage state to falling
playerState = PlayerStates.Falling;
this.position.Y += 3.0f + ((float)(gameTime.ElapsedGameTime.TotalSeconds));
}
else
{
playerState = PlayerStates.Standing;
elapsedAirTime = 0.0f;
}
}
किसी भी मदद की बहुत सराहना की है, कृपया और धन्यवाद!
क्यों एक समय की गणना करें और पुराना गेम समय स्टोर करें?यदि इस अद्यतन फ़ंक्शन को प्रत्येक गेम लूप (जैसा होना चाहिए) कहा जाता है, तो gt.ElapsedGameTime पहले से ही आपके लिए भारी भारोत्तोलन करता है। –
टाइमस्कर का उपयोग करने का कारण एक है) यदि आप डिफ़ॉल्ट फ्रेम दर बदलना चाहते हैं, या बी) यदि आपका कंप्यूटर इतना धीमा है कि यह डिफ़ॉल्ट 60 यूपीएस/एफपीएस एक्सएनए के साथ जारी नहीं रह सकता है। किसी भी मामले में, यदि आप लक्ष्य अपडेट दर के पीछे आते हैं तो आपका गेम ऐसा लगता है कि समय के बिना स्कालर कोड है। – Darkhydro