আমি বর্তমানে সি ++ 11 এ অ্যালেগ্রো 5 এবং বুস্টের সাথে একটি 2 ডি আরপিজি তৈরি করছি।
অপশন মেনুতে কোনও বিকল্প পরিবর্তন করা হলে আমার লক্ষ্যটি কোনওরকমভাবে আমার গেম সেটিংস আপডেট করা। আমি ব্যবহারকারীকে আমার গেমটি পুনরায় চালু করতে বাধ্য করতে চাই না। রেজোলিউশন পরিবর্তন করার সময় বা ফুলস্ক্রিন থেকে উইন্ডোয়ডে যাওয়ার সময় অন্যান্য গেমগুলির পুনরায় আরম্ভের প্রয়োজন হয় না, তাই আমার গেমটিও উচিত নয়। নীচে সিস্টেমের একটি সরলীকৃত দৃশ্য দেখুন দয়া করে।
দয়া করে নোট করুন যে আমি অপশনস্ক্রিন থেকে সরাসরি আমার গেম অবজেক্টটি কল করতে চাই না। ড্যাশড লাইনটি কেবলমাত্র আমি যে প্রভাবটি অর্জনের চেষ্টা করছি তা চিত্রিত করার জন্য; কোনও বিকল্প সিস্টেমের ভিন্ন অংশে পরিবর্তিত হলে গেমটির আপডেট হতে পারে।
বিস্তারিত ব্যাখ্যা
স্ক্রিন ম্যানেজারে GameScreenবর্তমানে বিদ্যমান সমস্ত বস্তুর একটি তালিকা রয়েছে । এটি পপআপ সহ গেমের বিভিন্ন স্ক্রিন হবে। এই নকশাটি সি # / এক্সএনএ-তে গেম স্টেট ম্যানেজমেন্ট নমুনার কম-বেশি মেনে চলে ।
ScreenManagerআমার একটি রেফারেন্স রয়েছে Gameঅবজেক্ট। Gameবস্তুর সূচনা এবং মডিফাই খেলা এর সেটিংস। আমি যদি রেজোলিউশনটি পরিবর্তন করতে চাই, পূর্ণস্ক্রিনে যাই, বা ভলিউমটি নিঃশব্দ করে আমি Gameক্লাসে এটি করব।
তবে বর্তমানে অপশনস্ক্রিন গেম ক্লাসে অ্যাক্সেস করতে পারে না। নীচের চিত্রটি দেখুন:
একটি গেমস্ক্রিন তিনটি ইভেন্ট onFinished, onTransitionStartএবং সিগন্যাল করতে পারে onTransitionEnd। onOptionsChangedকেবলমাত্র একটি পর্দা এটি করে বলে কোনও কারণ নেই। স্ক্রিন ম্যানেজার সেটির জন্য ইভেন্ট হ্যান্ডলিং সেট আপ করতে পারে না কারণ এটি সমস্ত স্ক্রিনকে GameScreenগুলি হিসাবে পরিচালনা করে ।
আমার প্রশ্ন হ'ল আমি কীভাবে আমার নকশাটি পরিবর্তন করতে পারি যাতে বিকল্পমেনুতে কোনও পরিবর্তন পুনরায় আরম্ভের প্রয়োজন না হয় তবে অবিলম্বে পরিবর্তিত হয়? Gameএকবার প্রয়োগ বোতামটি ক্লিক করা হলে আমি আমার অবজেক্টটি আপডেট করার জন্য অনুরোধ করব ।


