আমার ধারণা আমি সিদ্ধান্ত নিয়েছি যে আমি সত্যিই ইভেন্ট হ্যান্ডলারগুলি পছন্দ করি। আমি বিশ্লেষণ পক্ষাঘাতে কিছুটা ভুগতে পারি, তবে আমি আমার নকশাটি অযৌক্তিকভাবে তৈরি করা বা আমার ডিজাইনের সিদ্ধান্তের কোনও অপ্রত্যাশিত পরিণতিতে চলে যাওয়ার বিষয়ে উদ্বিগ্ন।
আমার গেম ইঞ্জিন বর্তমানে প্যানিং ওভারহেড ক্যামেরার সাথে বেসিক স্প্রাইট-ভিত্তিক রেন্ডারিং করে। আমার ডিজাইনটি দেখতে কিছুটা এ জাতীয় দেখাচ্ছে:
SceneHandler
ক্লাসগুলির একটি তালিকা রয়েছে যা দৃশ্যপরিচালিত ইন্টারফেস (বর্তমানে কেবলমাত্র স্প্রাইটস) প্রয়োগ করে। কলগুলি প্রতি টিকিটে একবার রেন্ডার () করে এবং ক্যামেরাপেডেট () পাঠায়; SceneListeners যাও বার্তা।
InputHandler
প্রতি টিকে প্রতি একবার ইনপুট পোল করে এবং ইনপুটলিস্টনারে একটি সাধারণ "অনকি পিপ্রেসড" বার্তা প্রেরণ করে। আমার কাছে একটি ক্যামেরা ইনপুটলিস্টনার রয়েছে যা একটি সিন হ্যান্ডলার উদাহরণটি ধরে রাখে এবং আপডেট ক্যামেরা () ট্রিগার করে; ইনপুট কী তার উপর ভিত্তি করে ইভেন্টগুলি।
AgentHandler
যেকোন এজেন্টদের (এআই) একবার টিক প্রতি একবার ডিফল্ট ক্রিয়াকলাপ কল করে এবং নিবন্ধিত যে কোনও নতুন ইভেন্টের জন্য স্ট্যাক পরীক্ষা করে এটি প্রয়োজনীয় এজেন্টগুলিতে প্রেরণ করে।
সুতরাং আমার কাছে বেসিক স্প্রাইট অবজেক্ট রয়েছে যা কোনও দৃশ্যের চারপাশে ঘুরে বেড়াতে পারে এবং ভ্রমণের জন্য প্রাথমিক স্টিয়ারিং আচরণ ব্যবহার করতে পারে। আমি সংঘর্ষ শনাক্ত করতে পেরেছি এবং আমি এখানে নিশ্চিত নই যে আমার নকশাটি যে দিকনির্দেশে চলেছে তা ভাল। অনেক ছোট ছোট ইভেন্ট হ্যান্ডলার রাখা কি একটি ভাল অনুশীলন? আমি ভাবছি যেভাবে আমি যাচ্ছি আমাকে একরকম কলিজনহ্যান্ডলার প্রয়োগ করতে হবে।
আমি কি আরও সংহত ইন্টিটিহ্যান্ডলারের সাথে আরও ভাল থাকতে পারি যা এআই, সংঘর্ষের আপডেটগুলি এবং এক শ্রেণীর অন্যান্য সত্তা মিথস্ক্রিয়াকে পরিচালনা করে? বা আমি ঠিক ঠিক বিভিন্ন ইভেন্ট হ্যান্ডলিং সাবসিস্টেমগুলি প্রয়োগ করব যা এটি কোন ধরণের ইভেন্টের ভিত্তিতে একে অপরের কাছে বার্তা দেয়? আমি কি এমন একটি এনটিটিহ্যান্ডলার লিখব যা এই সমস্ত উপ ইভেন্ট হ্যান্ডলারের সমন্বয়ের জন্য কেবল দায়ী?
আমি বুঝতে পারি কিছু ক্ষেত্রে যেমন আমার ইনপুটহ্যান্ডলার এবং সিনহ্যান্ডলার, এগুলি খুব নির্দিষ্ট ধরণের ইভেন্ট। আমার গেম কোডের একটি বড় অংশ ইনপুট সম্পর্কে চিন্তা করে না এবং দৃশ্যের রেন্ডারিংয়ে খাঁটিভাবে ঘটে যাওয়া আপডেটগুলি নিয়ে একটি বড় অংশের যত্ন নেই। সুতরাং আমি অনুভব করি যে এই সিস্টেমগুলির আমার বিচ্ছিন্নতা ন্যায়সঙ্গত। যাইহোক, আমি এই প্রশ্নটি বিশেষত গেম লজিক ধরণের ইভেন্টগুলির কাছে আসছি asking