ঝালটি কি তার নিজস্ব সত্ত্বা হওয়া উচিত যা প্লেয়ারের অবস্থানটি ট্র্যাক করে? এটি ক্ষতি ফিল্টারিং বাস্তবায়ন করা কঠিন হতে পারে। এটি কান্ডা সংযুক্ত উপাদান এবং সত্তার মধ্যে লাইনগুলি ঝাপসা করে।
সম্পাদনা: আমি মনে করি একটি পৃথক সত্তার জন্য যথেষ্ট "স্বায়ত্তশাসিত আচরণ" নেই। এই নির্দিষ্ট ক্ষেত্রে, একটি ঝাল লক্ষ্য অনুসরণ করে, লক্ষ্যের জন্য কাজ করে এবং লক্ষ্যকে ছাড়িয়ে যায় না। যদিও আমি একমত হতে চাই যে "ঝাল অবজেক্ট" ধারণার সাথে কোন ভুল নেই, এক্ষেত্রে আমরা আচরণটি করছি, যা একটি উপাদানটিতে ঠিকঠাক ফিট করে। তবে আমি খাঁটি যৌক্তিক সত্তারও একজন সমর্থক (সম্পূর্ণ প্রস্ফুটিত সত্তা সিস্টেমগুলির বিপরীতে যেখানে আপনি ট্রান্সফর্ম এবং রেন্ডারিং উপাদানগুলি পেতে পারেন)।
ঝালটি এমন উপাদান হওয়া উচিত যা অন্যান্য উপাদানগুলি রাখে? আমি এর আগে কখনও দেখিনি বা শুনিনি, তবে সম্ভবত এটি সাধারণ এবং আমি এখনও যথেষ্ট গভীর নই।
এটি অন্য দৃষ্টিকোণে দেখুন; একটি উপাদান যুক্ত করা অন্যান্য উপাদানগুলিকেও যুক্ত করে এবং অপসারণের পরে অতিরিক্ত উপাদানগুলি খুব বেশি চলে যায়।
ঝালটি কী এমন উপাদানগুলির একটি সেট হওয়া উচিত যা প্লেয়ারে যুক্ত হয়? অন্যদের পরিচালনা করার জন্য সম্ভবত কোনও অতিরিক্ত উপাদান সহ, উদাহরণস্বরূপ যাতে সেগুলি সমস্ত গোষ্ঠী হিসাবে সরানো যায়। (দুর্ঘটনাক্রমে ক্ষয় হ্রাস উপাদান পিছনে ছেড়ে এখন মজা হবে)।
এটি একটি সমাধান হতে পারে, এটি পুনঃব্যবহারকে উত্সাহিত করবে, তবে এটি আরও ত্রুটিযুক্ত প্রবণও রয়েছে (উদাহরণস্বরূপ, আপনি যে সমস্যার উল্লেখ করেছেন) এটি অগত্যা খারাপ নয়। আপনি পরীক্ষা এবং ত্রুটির সাথে নতুন বানান সংমিশ্রণগুলি খুঁজে পেতে পারেন :)
আরও কিছু উপাদান যা আরও বেশি উপাদান অভিজ্ঞতার সাথে সুস্পষ্ট?
আমি কিছুটা বিস্তারিত বলতে যাচ্ছি।
আমি বিশ্বাস করি আপনি লক্ষ্য করেছেন যে কিছু উপাদান যখন কোনও সত্তায় যুক্ত করা হয় তখন তাদের কীভাবে অগ্রাধিকার দেওয়া উচিত (এটি আপনার অন্যান্য প্রশ্নেরও উত্তর দেবে)।
আমি ধরে নিতে চলেছি আমরা বার্তা-ভিত্তিক যোগাযোগ ব্যবহার করছি (আলোচনার জন্য, এটি মুহুর্তের জন্য একটি পদ্ধতি কলের তুলনায় কেবল একটি বিমূর্ততা)।
যখনই কোনও শিল্ড উপাদান "ইনস্টল" করা থাকে তখন ঝাল উপাদান মেসেজ হ্যান্ডলারগুলি নির্দিষ্ট (উচ্চতর) অর্ডার দিয়ে বেঁধে রাখা হয়।
Handler Stage Handler Level Handler Priority
In Pre System High
Out Invariant High
Post AboveNormal
Normal
BelowNormal
Low
System Low
In - incoming messages
Out - outgoing messages
Index = ((int)Level | (int)Priority)
"পরিসংখ্যান" উপাদান ইন / ইনভেরিয়েন্ট / সাধারণ সূচকে "ক্ষতি" বার্তা হ্যান্ডলার ইনস্টল করে। প্রতিবার কোনও "ক্ষয়ক্ষতি" বার্তা পাওয়ার পরে এইচপি এর "মান" পরিমাণে হ্রাস করুন।
মোটামুটি মানক আচরণ (কিছু প্রাকৃতিক ক্ষতি প্রতিরোধের এবং / অথবা বর্ণগত বৈশিষ্ট্যগুলি যাই হোক না কেন)।
শিল্ড উপাদানটি ইন / প্রি / হাই ইনডেক্সে "ক্ষতি" বার্তা হ্যান্ডলার ইনস্টল করে।
Every time a "damage" message is received, deplete the shield energy and substract
the shield energy from the damage value, so that the damage down the message
handler pipeline is reduced.
damage -> stats
stats
stats.hp -= damage.value
damage -> shield -> stats
shield
if(shield.energy) {
remove_me();
return;
}
damage.value -= shield.energyquantum
shield.energy -= shield.energyquantum;
stats
stats.hp -= damage.value
আপনি দেখতে পাচ্ছেন এটি বেশ নমনীয়, তবুও উপাদানগুলির ইন্টারঅ্যাকশন ডিজাইনের সময় সতর্ক পরিকল্পনার প্রয়োজন হবে, কারণ আপনি কীভাবে বার্তা হ্যান্ডলিং পাইপলাইন উপাদান বার্তা ইভেন্ট হ্যান্ডলারের কোনও অংশটি ইনস্টল করা হয়েছে তা নির্ধারণ করতে চলেছেন।
বোধ হয়? আমি আরও বিশদ যুক্ত করতে পারলে আমাকে জানান।
সম্পাদনা করুন: একাধিক উপাদান দৃষ্টান্ত সম্পর্কিত (দুটি বর্ম উপাদান)। আপনি হয় কেবলমাত্র একটি সত্তার উদাহরণে মোট দৃষ্টান্তের গণনাটি ট্র্যাক রাখতে পারেন (এটি প্রতি উপাদান উপাদানকে খুন করে) এবং কেবল বার্তা ইভেন্ট হ্যান্ডলার যুক্ত করেই রাখতে পারেন, বা নিশ্চিত করুন যে আপনার উপাদান ধারকরা সদৃশ উপাদানগুলির নকলের জন্য আগেই অনুমতি দেয়।