मैं एक कार रेस गेम पर काम कर रहा हूं और पिछले दौड़ को फिर से खेलने के लिए एक भूत प्रेत को लागू किया है। मैं एक भौतिकी इंजन का उपयोग करता हूं और बहुत पढ़ने के बाद मैं इस निष्कर्ष पर पहुंचा हूं कि रीप्ले के लिए भूत डेटा को संग्रहीत करने का सबसे अच्छा तरीका कार की स्थिति और रोटेशन को दिए गए समय बिंदुओं पर रिकॉर्ड करना होगा, जैसा कि यहां वर्णित उदाहरण के लिए: https: // gamedev। stackexchange.com/a/8380/26261 ।
लेकिन रीप्ले के दौरान उन समय-बिंदुओं को खोजने का एक अच्छा तरीका क्या होगा? एक उदाहरण इस डेटा के साथ एक रिकॉर्ड होगा:
time: +3.19932 (seconds since race start)
position: 180,40 (position at that time)
rotation: 30.4 (rotation at that time)
लेकिन मुझे इसके साथ कई समस्याएं हैं:
जब मैं पुनरावृत्ति करता हूं, तो यह संभावना नहीं है कि मैं 3.19932 पर फिर से सटीक समय-बिंदु पर पहुंचता हूं - अधिक संभावना है, मेरे पास 3.1 के आसपास का समय-बिंदु होगा और निकटतम मिलान रिकॉर्ड ढूंढना होगा। प्रक्षेप करते समय, ऊपर और नीचे भी निकटतम मिलान। यह बहुत अक्षम और समय लगता है?
किस सूची संरचना में मैं बाद के रिप्ले के लिए इन रिकॉर्ड्स को स्टोर कर सकता था? एक सरणी? क्या इसका मतलब यह नहीं है कि एक निश्चित समय से मेल खाने वाले रिकॉर्ड के लिए खोज का समय दौड़ से अधिक लंबा होगा?
टाइमपॉइंट के लिए मुझे किस आवृत्ति का उपयोग करना चाहिए? प्रत्येक फ्रेम का अनुमान होता है-मैं अनुमान लगाता हूं, बल्कि मुझे हर nth फ्रेम को बचाना चाहिए और बीच-बीच में रोकना चाहिए, जिससे स्टोरेज प्रश्न 2 हो जाते हैं। और भी मुश्किल।
तो क्या यह विचार भी सही दृष्टिकोण है? यदि हाँ, तो मैं कुशलता से डेटा को कैसे स्टोर और पुनर्प्राप्त कर सकता हूं? कृपया ध्यान दें कि मैं आमतौर पर उपरोक्त डेटा संरचना का उपयोग करके जाना चाहता हूं, न कि निर्धारक गेमस्टेट्स और रिकॉर्डिंग उपयोगकर्ता इनपुट आदि।
किसी भी मदद के लिए धन्यवाद!
संपादित करें: मुझे एहसास है कि मुझे अपने द्वारा उपयोग किए जाने वाले वातावरण का वर्णन करना चाहिए: iPhone के लिए Cocos2D। एक विधि है update:(ccTime)delta
। आदर्श रूप से, इस विधि को प्रत्येक 1/60 सेकंड कहा जाएगा, लेकिन इसकी कोई गारंटी नहीं है - delta
क्या अंतिम युग्मक के बाद से वास्तविक समय बीत चुका है और 1/60 से बहुत अधिक या कम हो सकता है। यह इस पद्धति में है जहां मैं वर्तमान गेमस्टेट को संग्रहीत करना चाहूंगा।