গেম লুপের ভিতরে গেমটি বিরতি দিন


12

গেম লুপের অভ্যন্তরে, পি টিপে গেমটি বিরতি দেওয়া হয়েছে, যার অর্থ গেমের লুপটি আর চলবে না। সমস্যাটি হ'ল এই লুপটি থামার পরে, লুপটি পুনরায় শুরু করতে পিটিকে আবার টিপানো যায় না, কারণ এটি লুপের ভিতরেই ছিল। এটি কীভাবে তৈরি করা যায় যাতে পি আবার চাপলে এটি আবার লুপটিকে কাজ করে?

উত্তর:


20

গেমটি বিরতি দেওয়ার সময় গেম লুপটি বন্ধ করবেন না। পরিবর্তে, আপনাকে বুল ভেরিয়েবল যুক্ত করতে হবে, গেমটি বিরতি দেওয়া থাকলে নির্ভর করে এটি সত্য / মিথ্যাতে পরিবর্তিত হবে। গেমটি বিরতি দেওয়া থাকলে, আপনাকে কেবল গেমটি আপডেট করা বন্ধ করতে হবে, তবে আপনি ইনপুট থেকে আপডেট পাওয়ার সাথে বর্তমান ফ্রেমের রেন্ডারিং চালিয়ে যেতে পারেন।

if(gameIsPaused == false)
{
    // run updates
}
checkInput();
render();

checkInputবিরতি মোড এবং বিরতিযুক্ত মোডের জন্য আপনার আলাদা ফাংশন থাকতে পারে, কারণ এমন কিছু নিয়ন্ত্রণ থাকতে পারে যা কেবলমাত্র একটি মোডে বা অন্যটিতে উপলব্ধ in checkInputবিরাম দেওয়া হয়েছে মোডের জন্য ফাংশন যদি খুঁজছেন ছাড়া আর কিছুই করতে পারে Pটেপা হলে এবং তারপর সেট gameIsPaused = false, কিন্তু কিছু গেম এছাড়াও অতিরিক্ত বিরতি পর্দায় কার্যকারিতা স্থান (90s মধ্যে এটি ঠকাই কোডগুলি গোপন ইনপুট হিসাবে বিরতি পর্দা আছে জনপ্রিয়, আধুনিক ছিল গেমস এটি একটি মেনু স্ক্রিনের সাথে একত্রিত করতে পছন্দ করে)।
ফিলিপ

1
যদিও আমি সাধারণত আপনার উত্তরটির সাথে একমত হই, তবে আমি মনে করি এটি স্পষ্টভাবে বলা উচিত যে কখনও কখনও বিরামপ্রাপ্ত অবস্থায় কিছু আপডেট চালানো পুরোপুরি বৈধ । উদাহরণস্বরূপ, মেনু আইটেমগুলি অ্যানিমেট করা বা সম্ভবত কিছু অডিও পরিচালনা। বড় ধারণাটি হ'ল বিরতি শর্ত আপনাকে checkInput/ render/ updateকলগুলির অন্য সেটগুলিতে শাখা করতে দেয় ।
নিকোলাস মিলার

গেমটি থামিয়ে দেওয়ার একমাত্র জিনিসটি পরিবর্তন হওয়া উচিত "আপডেট ওয়ার্ল্ড" বিটটি এড়ানো উচিত। অন্যান্য সমস্ত কার্যকারিতা সম্ভবত স্বাভাবিক হিসাবে রাখা উচিত।
মাকিং হাঁস

4
আমি উত্তরটি যথাসম্ভব সহজ রাখার চেষ্টা করেছি, কারণ এটি গেম প্রোগ্রামিংয়ের ক্ষেত্রে খুব প্রাথমিক জিনিস এবং আমি প্রশ্নকর্তাকে বিভ্রান্ত করতে চাইনি।
কাতু

1
@ ব্যবহারকারী 37৩30০78৮৮: একটি শাখা যা প্রতি গেম লুপের প্রতি একবার কার্যকর করে (যেমন প্রতি সেকেন্ডে ১০০ বারেরও কম) তার পারফরম্যান্সের কোনও প্রভাব প্রভাব ফেলবে না, এমনকি প্রতিবারই এটি অনুমান করা হলেও নয় ।
ইলমারি করোনেন

1

এটি তৈরি করুন যাতে পি টিপে অন্য লুপটিতে স্যুইচ হয় যা গেমের অবস্থা "বিরামিত" পরিচালনা করে এবং আবার পি টিপে মূল গেম লুপে ফিরে যেতে পারে।

আপনি আসলে এই সমস্তটিকে গেম লুপের মধ্যে রেখে দিতে পারেন এবং একটি রাষ্ট্রের ভেরিয়েবল প্রবর্তন করতে পারেন, যদি আপনি চান এবং লুপটি বন্ধ করার পরিবর্তে, রাষ্ট্রের পরিবর্তনশীল লুপের মধ্যে সম্পর্কিত রাষ্ট্র-নির্দিষ্ট কোডের প্রয়োগের মধ্যে টগল করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.