হ্যাঁ, একক থ্রেডে এটি করা সম্ভব। যদিও সাধারণভাবে বলতে গেলে, আপনি অতিরিক্ত ফ্রেমগুলি কেবল তখনই নয় কেবল প্রতিটি ফ্রেমে অবজেক্টগুলিকে আপডেট করতে চান। আপনার অ্যানিমেশন এবং চলন ফ্রেম হার থেকে সংযোগ বিচ্ছিন্ন হয়ে যাবে এবং আপনি যদি তা না করেন তবে চপ্পটি দেখতে পাবেন। আপনি যদি এআই আপডেটগুলি বা অন্য কোনও বিষয় যা রিয়েল-টাইম হওয়ার দরকার নেই সে সম্পর্কে আরও বেশি কথা বলছেন তবে আমি এটিতে একটি টাইমার লাগিয়ে দেব। আপনার টার্গেটের ফ্রেম রেট কী তা আপনার জানা উচিত এবং সমস্ত কিছু শেষ হওয়ার পরে অলস সময়টি যা কিছু অবশিষ্ট থাকবে।
ধরা যাক আপনি আপনার গেমের জন্য 60 টি এফপিএস লক্ষ্য করে নিচ্ছেন। এটি আপনাকে প্রতিটি ফ্রেম করার জন্য প্রয়োজনীয় সমস্ত কাজ সম্পাদন করতে 16.667 এমএস দিয়ে চলে যায়। গেমের শুরুতে, সর্বাধিক উপলব্ধ রেজোলিউশন টাইমারটি ব্যবহার করে বর্তমান সময়টি পান, এতে 16.667 এমএস যোগ করুন এবং এটি কোথাও সঞ্চয় করুন। আমি মনে করি অজগরটিতে ফাংশনটি সময় () যদিও ভাষায় কাজ করার পরে কিছুটা সময় হয়ে গেছে। আপনার প্রসেসিং শেষ হওয়ার পরে, এমন একটি লুপ প্রবেশ করান যা আপনার রেকর্ড করা সময়ের চেয়ে বর্তমান সময়টি পরীক্ষা করে। যদি বর্তমান সময় ফ্রেমের শেষ সময়ের চেয়ে কম হয় তবে আপডেট_আ_আর_সামান্য_ম্যন্ট। আপনার ছোট আপডেট প্রক্রিয়াটি দ্রুত হওয়া উচিত বলে ফ্রেমটির শেষের দিকে প্রসেসিংয়ের বিষয়ে আমি খুব বেশি চিন্তা করব না। এটি কেবলমাত্র পরবর্তী ফ্রেমের শুরুতে কিছুটা বিলম্ব হবে এবং এটি হ্যান্ডেল করার জন্য আপনার যথেষ্ট অলস সময় রয়েছে বলে মনে হয়।
ফ্রেমটি প্রক্রিয়া শেষ করার পরে, পরবর্তী ফ্রেমের শেষ কোথায় হওয়া উচিত তা জানতে শেষ ফ্রেমের শেষের জন্য সঞ্চিত সময়টিতে 16.667 এমএস যোগ করুন। আপনি যদি বর্তমান সময় + 16.667 এমএস ব্যবহার করেন এবং প্রসেসিং শেষ হয়ে যায়, শেষ ফ্রেমটি শেষ হয়ে যাওয়ার পরে পরবর্তী ফ্রেমের শেষটি বাইরে চলে যাবে।
উত্তর: দ্বিতীয় সম্পাদনা
স্পষ্ট করার জন্য, আমি এখানে প্রধান লুপের মাধ্যমে একটি পুনরাবৃত্তি নির্দেশ করতে ফ্রেম-রেট শব্দটি ব্যবহার করি। যদি এটি ব্যবহারকারীর ইনপুট গতির ভিত্তিতে থাকে তবে আমি কল্পনা করি যে আপনার লক্ষ্যটি কেবল গেমটিকে প্রতিক্রিয়াশীল মনে করা। অন্যথায় আপনি কেবল ইনপুট পরীক্ষা করতে পারেন এবং প্রতিটি সময় লুপের মাধ্যমে আপডেট করতে সক্ষম হলেও এটি করতে 10 সেকেন্ড সময় লাগে। যদিও এটিকে প্রতিক্রিয়াশীল মনে করার জন্য, আপনি সম্ভবত প্রতি সেকেন্ডে প্রায় 20 বার ইনপুট পরীক্ষা করতে চান যা 20 এফপিএসের কার্যকর ফ্রেম রেট দেয়, এমনকি আপনি যদি এই ফ্রেমগুলি আঁকেন না তখনও। আপনাকে আবার ইনপুট চেক করার আগে জিনিসগুলি আপডেট করতে এটি আপনাকে 50 এমএস দেয়।