আমি একটি গাড়ী রেস গেমের সাথে কাজ করছি এবং অতীত দৌড়গুলির পুনরায় খেলানোর জন্য একটি ভুত স্প্রিট প্রয়োগ করেছি। আমি একটি পদার্থবিজ্ঞানের ইঞ্জিন ব্যবহার করেছি এবং অনেকগুলি পড়ার পরে আমি এই সিদ্ধান্তে পৌঁছেছি যে রিপ্লেয়ের জন্য ভূতের ডেটা সংরক্ষণ করার সর্বোত্তম উপায়টি নির্দিষ্ট সময়সীমার উপর গাড়ীটির অবস্থান এবং ঘূর্ণন রেকর্ড করা, যেমন এখানে বর্ণিত: https: // গেমদেব। 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)
তবে এতে আমার বেশ কয়েকটি সমস্যা রয়েছে:
আমি যখন পুনরায় খেলি, তখন আমি আবার যথাক্রমে ৩.১৯ 32 at২-তে পৌঁছানোর সম্ভাবনা কম - সম্ভবত, আমার সময়সীমার ৩.১-এর কাছাকাছি থাকতে হবে এবং সবচেয়ে কাছের মিলের রেকর্ডটি খুঁজে পেতে হবে। ইন্টারপোলটিং করার সময় এমনকি উপরে এবং নীচের নিকটতম মিলও। এটি খুব অদক্ষ এবং সময় সাশ্রয়ী মনে হচ্ছে?
কোন তালিকা কাঠামোতে আমি এই পুনর্বিবেচনার জন্য এই রেকর্ডগুলি সঞ্চয় করতে পারি? একটি অ্যারের? তার মানে কি এই নয় যে একটি নির্দিষ্ট সময়ের সাথে মিলে যাওয়া রেকর্ডগুলির জন্য অনুসন্ধানের সময়টি আরও দীর্ঘতর হবে?
টাইমপয়েন্টগুলির জন্য আমার কোন ফ্রিকোয়েন্সি ব্যবহার করা উচিত? প্রতিটি ফ্রেম -আমি অনুমান-ওভারকিল হবে, বরং আমার অর্থাত্ প্রতিটি নবম ফ্রেম সংরক্ষণ করা উচিত এবং এর মধ্যে ফাঁক দেওয়া উচিত, যা স্টোরেজ প্রশ্নগুলিকে ২. আরও জটিল করে তোলে।
তাহলে এই ধারণাটি কি সঠিক পদ্ধতির? যদি হ্যাঁ, আমি কীভাবে দক্ষতার সাথে ডেটা সঞ্চয় এবং পুনরুদ্ধার করতে পারি? দয়া করে নোট করুন যে আমি সাধারণত উপরের ডেটা স্ট্রাকচারটি ব্যবহার করে যেতে চাই, ডিস্ট্রিমেন্টিক গেমস্টেটগুলি এবং রেকর্ডিং ব্যবহারকারী ইনপুট ইত্যাদি নয় etc.
কোন সাহায্যের জন্য ধন্যবাদ!
সম্পাদনা: আমি বুঝতে পারি যে আমি যে পরিবেশটি ব্যবহার করছি তা বর্ণনা করা উচিত: আইফোনের জন্য কোকোস 2 ডি। একটি পদ্ধতি আছে update:(ccTime)delta
। আদর্শভাবে, এই পদ্ধতিটি প্রতি 1/60 সেকেন্ডে কল করা হবে, তবে এর কোনও গ্যারান্টি নেই - delta
শেষ গেমটিকের পরে আসল সময়টি কি 1/1 এর চেয়ে অনেক বেশি বা কম হতে পারে। এটি এই পদ্ধতিতে যেখানে আমি বর্তমান গেমস্টেটটি সঞ্চয় করতে চাই।