ভাল প্রশ্ন! আপনি জিজ্ঞাসা করা নির্দিষ্ট প্রশ্নগুলি পাওয়ার আগে, আমি বলব: সরলতার শক্তিটিকে হ্রাস করবেন না। টেনপান ঠিক আছে। মনে রাখবেন যে এই পদ্ধতির সাথে আপনি যা করার চেষ্টা করছেন তা হ'ল ফাংশন কলকে পিছিয়ে দেওয়ার জন্য বা কলিকে কলার থেকে ডিকুয়াল করার জন্য একটি দুর্দান্ত উপায় খুঁজে বের করুন। আমি এই সমস্যাগুলির কিছু লাঘব করার জন্য আশ্চর্যজনকভাবে স্বজ্ঞাত উপায় হিসাবে কর্টিনগুলিকে সুপারিশ করতে পারি, তবে এটি সামান্য অফ-টপিক। কখনও কখনও, আপনি কেবল ফাংশনটি কল করে এবং সত্তা এটিকে সরাসরি সত্তা বিতে সংযুক্ত করা হয় এই সত্যের সাথে জীবনযাপন করা ভাল Y
এটি বলেছিল, আমি সাধারণ বার্তা পাসের সাথে সংযুক্ত সিগন্যাল / স্লট মডেলটি ব্যবহার করেছি এবং খুশি হয়েছি। আমি এটিকে সি ++ এবং লুয়ায় মোটামুটি সফল আইফোন শিরোনামের জন্য ব্যবহার করেছি যার খুব কড়া সময়সূচি ছিল।
সিগন্যাল / স্লট মামলার জন্য, যদি আমি সত্তা বি এর কোনও কিছুর প্রতিক্রিয়াতে সত্তা এটিকে কিছু করতে চাই (যেমন, কোনও কিছু মারা যাওয়ার পরে একটি দরজা আনলক করুন) আমার সত্তা থাকতে পারে সত্তা বি এর মৃত্যুর ঘটনায় সরাসরি সাবস্ক্রাইব করতে। অথবা সম্ভবত সত্তা এ সত্ত্বার একটি গ্রুপের প্রতিটি সদস্যতার জন্য সাবস্ক্রাইব করবে, বহিস্কার হওয়া প্রতিটি ইভেন্টের একটি কাউন্টার বাড়িয়ে তুলবে এবং এর মধ্যে এন মারা যাওয়ার পরে দরজাটি আনলক করবে। এছাড়াও, "সত্তা গোষ্ঠী" এবং "তাদের মধ্যে এন" সাধারণত স্তরের ডেটাতে সংজ্ঞায়িত ডিজাইনার হবে। (সরু হিসাবে, এটি এমন একটি অঞ্চল যেখানে কর্টাইনগুলি সত্যই জ্বলতে পারে যেমন, ওয়েটফর্মমલ્ટিয়াল ("মরন", এনটিএ, এনটিবি, এনটিসি); দরজা। আনলক ();)
সি ++ কোড, বা সহজাতভাবে সংক্ষিপ্ত গেম ইভেন্টগুলির সাথে শক্তভাবে মিলিত প্রতিক্রিয়াগুলি আসে: তবে ক্ষয়ক্ষতি, অস্ত্রগুলি পুনরায় লোড করা, ডিবাগিং করা, প্লেয়ার-চালিত অবস্থান-ভিত্তিক এআই প্রতিক্রিয়া যখন প্রতিক্রিয়া আসে তখন তা জটিল হয়ে উঠতে পারে। এখানেই বার্তা পাঠানো শূন্যস্থান পূরণ করতে পারে। এটি মূলত এই জাতীয় কিছুতে উত্থিত হয়, "এই অঞ্চলে সমস্ত সত্তাকে 3 সেকেন্ডের মধ্যে ক্ষতি নিতে বলুন," বা "যখনই আমি কাকে গুলি করেছি তা নির্ধারণের জন্য আপনি যখন পদার্থবিজ্ঞান শেষ করেন, তাদের এই স্ক্রিপ্ট ফাংশনটি চালানোর জন্য বলুন।" প্রকাশ / সাবস্ক্রাইব বা সিগন্যাল / স্লট ব্যবহার করে কীভাবে কীভাবে এটি করা যায় তা নির্ধারণ করা কঠিন।
এটি সহজেই ওভারকিল হতে পারে (বনাম টেনপেনের উদাহরণ)। আপনার যদি অ্যাকশন প্রচুর থাকে তবে এটি অদক্ষ ব্লাটও হতে পারে। তবে এর ত্রুটিগুলি সত্ত্বেও, এই "বার্তা এবং ইভেন্টগুলি" স্ক্রিপ্টেড গেম কোড (যেমন লুয়ায়) সহ খুব ভালভাবে মেসে যায়। স্ক্রিপ্ট কোডটি নিজের বার্তাগুলি এবং ইভেন্টগুলিকে সি ++ কোড কেয়ারিং ছাড়া মোটেই সংজ্ঞায়িত করতে পারে এবং প্রতিক্রিয়া জানাতে পারে। এবং স্ক্রিপ্ট কোডটি সহজেই বার্তাগুলি প্রেরণ করতে পারে যা সি ++ কোডকে ট্রিগার করে, যেমন স্তর পরিবর্তন করা, শব্দ বাজাতে বা এমনকি কোনও অস্ত্র সেট করে দেয় যে টেকড্যামেজ বার্তাটি সরবরাহ করে damage এটি আমার বেশ কয়েকবার সাশ্রয় করেছিল কারণ আমাকে নিয়মিত লুয়াবিন্ডের সাথে বোকা বানাতে হবে না। এবং এটি আমার সমস্ত লুবাইন্ড কোডকে এক জায়গায় রাখতে দেয়, কারণ এতে খুব বেশি কিছু ছিল না। যখন সঠিকভাবে মিলিত হয়,
এছাড়াও, ব্যবহারের ক্ষেত্রে # 2 নিয়ে আমার অভিজ্ঞতা হ'ল আপনি অন্য দিকের ইভেন্ট হিসাবে এটি পরিচালনা করা ভাল। সত্তার স্বাস্থ্য কী তা জিজ্ঞাসা করার পরিবর্তে, কোনও ইভেন্টে গুলি চালান / যখনই স্বাস্থ্যের উল্লেখযোগ্য পরিবর্তন আসে তখন কোনও বার্তা প্রেরণ করুন।
ইন্টারফেসের ক্ষেত্রে, বিটিডব্লিউ, আমি এগুলি সমস্ত বাস্তবায়নের জন্য তিনটি শ্রেণি দিয়ে শেষ করেছি: ইভেন্টহোস্ট, ইভেন্টক্লিয়েন্ট এবং বার্তা-ক্লায়েন্ট। ইভেন্টহস্টগুলি স্লট তৈরি করে, ইভেন্টক্লিয়েন্টস তাদের সাবস্ক্রাইব করে / তাদের সাথে সংযুক্ত হয় এবং মেসেজ ক্লাইেন্টস একটি প্রতিনিধিকে একটি বার্তার সাথে যুক্ত করে। মনে রাখবেন যে কোনও মেসেজক্লেইন্টের প্রতিনিধি টার্গেটে অ্যাসোসিয়েশনের মালিকানাধীন একই অবজেক্টের প্রয়োজন হয় না। অন্য কথায়, মেসেজ ক্লায়েন্টগুলি কেবলমাত্র অন্য অবজেক্টগুলিতে বার্তা ফরোয়ার্ড করার জন্য উপস্থিত থাকতে পারে। এফডাব্লুআইডাব্লু, হোস্ট / ক্লায়েন্ট রূপকটি একধরণের অনুচিত। উত্স / সিঙ্ক আরও ভাল ধারণা হতে পারে।
দুঃখিত, আমি সেখানে ছুটে এসেছি। এটি আমার প্রথম উত্তর :) আমি আশা করি এটি কার্যকর হয়েছে।