আচরণ গাছ: :: যে টিকাগুলি এক টিকের চেয়ে বেশি সময় নেয়


19

আচরণ গাছগুলিতে আমি যা বুঝি সেগুলি থেকে প্রতিটি আচরণের একটি স্বল্প লক্ষ্য ভিত্তিক অ্যাকশন হওয়া উচিত যা কয়েকটি পুনরাবৃত্তিতে করা যেতে পারে।

সুতরাং উদাহরণস্বরূপ, নীচে আচরণ গাছের একটি চিত্র রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

এখন ধরে নেওয়া যাক যে ড্রাইভে টু শত্রু আচরণে গাছটিতে কয়েকটি পুনরাবৃত্তির চেয়ে বেশি সময় লাগে। সুতরাং প্রতিটি পাসেই ড্রাইভ টু এনেমি বলা হয় কারণ এটি এখন চলমান অবস্থায় রয়েছে।

সমস্যাটি হ'ল আমি যদি শত্রু কাছাকাছি থাকে তবে আমি এ্যাডে শত্রুকে কল করতে চাই । এবং ড্রাইভ টু অ্যানিমিকে সর্বদা ডাকা হয় তা বিবেচনা করে আমি কখনই এ্যাডে শত্রুকে কল করার সুযোগ পাই না ( সম্ভবত শত্রুদের এড়ানো উচিত বলে অভিহিত করা উচিত ))

  • বর্তমানে পদক্ষেপটি কী চলছে তা বিবেচনা করেই কি আমি গাছের প্রতিটি পাস দিয়ে যেতে পারি?
  • আমি কি এটি সঠিক পথে চলছি?
  • এই জাতীয় আচরণ পরিচালনা করার সঠিক উপায় কী?

মূলত স্ট্যাকওভারফ্লোতে জিজ্ঞাসা করা হয়েছে। এই প্রশ্নটি জিজ্ঞাসা করার জন্য এখানে ভেবে নেওয়া আরও উপযুক্ত জায়গা হবে।


1
এখানে প্রদত্ত উত্তরটি কি সহায়তা করে? gamedev.stackexchange.com/questions/51693/...
Tetrad

এটাও আমার প্রশ্ন। আমি এই মন্তব্যটি একটি মন্তব্য হিসাবে পোস্ট করতে যাচ্ছিলাম তবে ভেবেছিলাম এটি একটি পৃথক প্রশ্ন হওয়া উচিত।
ফ্রি ল্যান্সার

উত্তর:


16

আমার আগের উত্তরে আমি যে চিত্র সরবরাহ করেছি তা দেখুন :

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি কল্পনা করেন যে নোড 1 হ'ল 'এ্যাডে শত্রু' এবং নোড 2 'চেজ শত্রু', আপনি দেখতে পাবেন যদিও দ্বিতীয় পুনরাবৃত্তির মধ্যে (যখন '2' এবং 'বি' বাদে সবুজ সবুজ হয় তখন দ্বিতীয় পুনরাবৃত্তি হয়) শুরু হয়), 'এ্যাডে শত্রু' এখনও প্রথমে চেক হয়। কেবল তখনই 'এ্যাডে শত্রু' ব্যর্থ হয়, কারণ কাছে কোনও শত্রু নেই, আবার 'চেস শত্রু' আবার সক্রিয় হয়। যখন 'চেজ শত্রু' আবার দেখা হয় তখন এটি লক্ষ্য করে যে এটি 'চলমান' অবস্থায় রয়েছে এবং সরাসরি 'বি' এ চলে যায়।

এর অর্থ হ'ল যতবার গাছটি পরীক্ষা করা হয়, এটি সর্বদা বাম থেকে ডানে অতিক্রম করবে। এমনকি কোনও নোডকে চলমান হিসাবে চিহ্নিত করা হলেও, উচ্চতর অগ্রাধিকার নোডগুলি এখনও প্রথমে পরীক্ষা করা হয়।

আমি নিশ্চিত নই যে আপনি আপনার নোডগুলি ডান থেকে বামে প্রক্রিয়া করার অর্থ করছেন, তবে আপনি সেগুলি সাজিয়েছেন বলে মনে হয় (অর্থাত শত্রুদের বিপরীতে, শত্রুটিকে বিপরীত দিকে চালনার ডানদিকে চিহ্নিত করুন)। আপনার যদি আরও ব্যাখ্যা প্রয়োজন, আপনার চ্যাট বা বিষয়টিতে আপনার বিদ্যমান প্রশ্নগুলির মধ্যে একটিতে জিজ্ঞাসা করা উচিত।


2
আর একটি দুর্দান্ত ব্যাখ্যার জন্য ধন্যবাদ। আচরণ গাছগুলির পুনরাবৃত্তিমূলক প্রকৃতিটি বোঝার জন্য আমার খুব কষ্ট হয়েছিল। আমি আপনাকে সর্বশেষ প্রশ্নের মন্তব্যে জিজ্ঞাসা করতে যাচ্ছিলাম তবে মন্তব্যগুলি দীর্ঘ QA তে রূপান্তর করতে চাইনি। যদিও একটি সর্বশেষ প্রশ্ন, এটি এখন সমস্ত বোঝার হয়। রানিং স্টেটস পরিচালনার ক্ষেত্রে কি নির্বাচক এবং সিকোয়েন্সগুলির মধ্যে পার্থক্য রয়েছে? মনে হয় নির্বাচক (নোড 0) নোড 1 প্রথমে পরীক্ষা করেছেন, যখন "নোড 2" ক্রমটি নোড এটিকে দ্বিতীয় পুনরাবৃত্তিতে পরীক্ষা করে নি।
ফ্রি ল্যান্সার

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

প্রথম পুনরাবৃত্তির পরে এটি "চলমান" সেট করার পরে আপনি কি রুট নির্বাচনকারীকে (0) পুনরায় সেট করছেন?
ফ্রি ল্যান্সার

আমি বিশ্বাস করি যে কেবল চলমান নোডের পিতামাতাই চলমান সেট করেছেন। চলার পরিবর্তে রুটটি প্রস্তুত করতে হবে কারণ আমাদের নোড (1) আবার পার্স করতে হবে।
MichaelHouse

3
এটি একটি বিকল্প। আপনি এটি আপনার পছন্দ মতো ঘন ঘন বা কদাচিৎ আপডেট করতে পারেন। প্রতি 300 এমএস আপনি বা প্রতিটি ফ্রেম চাইলে। অথবা আপনার কোনও স্থির আপডেটের পাশাপাশি কোনও ইভেন্টের সাথে কাজ করার জন্য ট্রিগারযুক্ত আপডেটও থাকতে পারে। আচরণ গাছ, যেমন বেশিরভাগ কাঠামোর সাথে, কঠোরভাবে সংজ্ঞায়িত হয় না। এগুলি আপনার গেমের জন্য সর্বোত্তম উপায়ে ব্যবহার করা উচিত। যদি প্রতিটি ফ্রেম এটি মূল্যায়ন খুব অপব্যয় হয়, তবে এটি করবেন না। আপনি কোনও গাছের মূল্যায়ন করতে ব্যয় করা সময়ের পরিমাণও সীমাবদ্ধ করতে পারেন এবং আপনি চাইলে পরবর্তী ফ্রেমে তুলে নিতে পারেন। বিকল্প প্রচুর আছে।
মাইকেলহাউস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.