मैं XNA 4.0 में एकल-खिलाड़ी आरपीजी प्लेटफ़ॉर्मर विकसित कर रहा हूं। मैं एक ऐसी क्षमता जोड़ना चाहूंगा, जो समय को "रोक" या धीमा कर दे, और मूल गति पर केवल खिलाड़ी के चरित्र को स्थानांतरित करें (बाल्डूर के गेट श्रृंखला से टाइम स्टॉप जादू के समान)। मैं एक सटीक कार्यान्वयन की तलाश नहीं कर रहा हूं, बल्कि कुछ सामान्य विचार और डिजाइन-पैटर्न।
संपादित करें: सभी महान इनपुट के लिए धन्यवाद। मैं निम्नलिखित समाधान के साथ आया हूं
public void Update(GameTime gameTime)
{
GameTime newGameTime = new GameTime(gameTime.TotalGameTime,
new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER));
gameTime = newGameTime;
या इन पंक्तियों के साथ कुछ। इस तरह मैं खिलाड़ी घटक के लिए एक अलग समय और बाकी के लिए अलग सेट कर सकता हूं। यह निश्चित रूप से एक खेल के लिए काम करने के लिए पर्याप्त रूप से सार्वभौमिक नहीं है जहां इस तरह का युद्ध समय एक केंद्रीय तत्व होगा, लेकिन मुझे उम्मीद है कि इस मामले के लिए काम करना चाहिए। मैं इस तथ्य को नापसंद करता हूं कि यह मुख्य अपडेट लूप को देता है, लेकिन यह निश्चित रूप से इसे लागू करने का सबसे आसान तरीका है। मुझे लगता है कि जरूरी है कि टेसलोड जैसा ही सुझाव दिया गया है, इसलिए मैं उसे हरी टिक देने जा रहा हूं :)