একটি বৃহত নেটওয়াক ওয়ার্ল্ডে কীভাবে সত্তার পাথ সন্ধান এবং চলাচল পরিচালনা করবেন?


12

এখানে চিত্র বর্ণনা লিখুনটাইলসটি 32x32 বাক্সে বিভক্ত করে উপরের চিত্রটি বিবেচনা করে আমার কাছে একটি সত্তা রয়েছে যা কাছাকাছি আসা খেলোয়াড়দের 'এগ্রো' হিসাবে চিহ্নিত করা হয়েছে। আমি চাই যে এই দানবটি আদর্শভাবে প্লেয়ারটিকে তাড়া করুক (এবং কিছুক্ষণের জন্য প্লেয়ারকে তাড়াতে থাকবে)। বর্তমানে, আমার একমাত্র চলন দূরবর্তী সত্তাগুলির জন্য আমার একটি সাধারণ ইন্টারপোলটার হয়ে গেছে এবং এটি কাজ করে কারণ আন্দোলনের আপডেটের মধ্যে ফাঁকগুলি বরং ছোট।

আমি সাফল্যের সাথে কেবল ক্লায়েন্টকে বলতে পারি না যে দানব যে অবস্থানে রয়েছে সে দিকে যেতে চায়, কারণ এটি সত্তাকে যত দ্রুত করা উচিত তার চেয়ে অনেক দ্রুত গতি ঘটায় (এটি সম্ভবত অন্তরঙ্গ সহ কিছু গণিত ব্যবহার করে সমাধান করা যেতে পারে) - কার্যকর) তবে আরও গুরুত্বপূর্ণ এটি বাস্তববাদী বলে মনে হচ্ছে না এবং দেয়ালগুলি ক্লিপ করতে পারে! সার্ভারে পুরো আন্দোলনটি এড়াতে পারলে তা সিমুলেট করতে চাই না ... যদিও আমার ধারণা আমি পারতাম তবে তা ক্লিপিংয়ের সমস্যাটি সমাধান করতে পারে না। আমি সন্দেহ করি যে সমাধানটিতে কিছু পথ সন্ধান করা এবং ক্লায়েন্ট পর্যায়ক্রমিক নোড আপডেটগুলি প্রেরণ এবং তাদের চলাচলের অনুকরণ করতে দেওয়া জড়িত তবে আমি নিশ্চিত নই।

ধন্যবাদ!

উত্তর:


9

একটি সহজ শুরুর জন্য আপনি স্টিয়ারিং আচরণগুলি প্রয়োগ করতে পারেন । বিশেষত আচরণগুলি সন্ধান করুনএখানে চিত্র বর্ণনা লিখুন

চরিত্রগুলি সন্ধানের পাশাপাশি বাধা থেকে দূরে সরে যাওয়ার জন্য এড়ানো উচিত ।

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

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

শত্রুটি "যথেষ্ট পরিমাণে" পেয়ে গেলে আপনি পুরোপুরি স্টিয়ারিং আচরণগুলিতে স্যুইচ করতে পারেন। যেহেতু তারা পাথ সন্ধানের চেয়ে কম ব্যয়বহুল এবং আপনি ফলাফলগুলি খুব কাছাকাছি স্থানে পাবেন।

স্টিয়ারিং আপনাকে শত্রুদের সর্বাধিক ঘুরিয়ে দেওয়ার গতি এবং সর্বাধিক গতি সংজ্ঞা দিতে দেয়।

তারা এখনও ট্র্যাকে রয়েছে তা নিশ্চিত করার জন্য সার্ভারের পর্যায়ক্রমিক আপডেটগুলি সহ ক্লায়েন্টে স্টিয়ারিং পরিচালনা করা যায়।


এর অর্থ কী সার্ভারে স্টিয়ারিং আচরণটিও অনুকরণ করতে পারে বা আমি যুক্তিযুক্তভাবে সেই পথটি বরাবর সত্তাকে 'স্ন্যাপ' করতে পারি? আমার বিশাল সংশোধন দরকার নেই।
ভান হিলস

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

দুর্দান্ত উত্তরের জন্য +1। আমার কয়েক ঘন্টা বাঁচানোর জন্য ধন্যবাদ।
মোঃ মাহবুবুর রহমান

1

আমি সাফল্যের সাথে কেবল ক্লায়েন্টকে বলতে পারি না যে দানব যে অবস্থানে রয়েছে সে দিকে যেতে চায়, কারণ এটি সত্তাকে যত দ্রুত করা উচিত তার চেয়ে অনেক দ্রুত গতি ঘটায় (এটি সম্ভবত অন্তরঙ্গ সহ কিছু গণিত ব্যবহার করে সমাধান করা যেতে পারে) -efficent)

আসলে এটি করা সহজ। চলাচলের দিকনির্দেশ বর্তমান অবস্থানের লক্ষ্য অবস্থান বিয়োগ করবে। আপনাকে যা করতে হবে তা হ'ল ভেক্টরটি আসলে যা আপনি চান তার চলাফেরার গতি পর্যন্ত কমিয়ে দিন। প্রতিটি ফ্রেম পুনরাবৃত্তি।

তবে আরও গুরুত্বপূর্ণ বিষয় এটি বাস্তববাদী বলে মনে হচ্ছে না এবং দেয়ালগুলি ক্লিপ করতে পারে! সার্ভারে পুরো চলাচলের সিমুলেট করতে চাই না যদি এটি এড়ানো যায় ...

আপনার সার্ভারে চলাচলের অনুকরণ করতে হবে। আপনি কীভাবে জানবেন যে সমস্ত খেলোয়াড় একই আচরণ দেখছেন?

আপনার কিছু বেসিক পাথফাইন্ডিংয়ের প্রয়োজন হবে। একটি * মান। আপনি টার্গেটের কোনও পাথ গণনা করতে পারেন এবং তারপরে সেই পথ অনুসরণ করা কেবল উপরের মত চলন ভেক্টর সেট করার ক্ষেত্রে is (অথবা আপনি বাইট ৫6 এর উত্তর হিসাবে স্টিয়ারিং আচরণগুলি ব্যবহার করতে পারেন যা কিছু সংযোজন অতিরিক্তগুলির সাথে মূলত একই জিনিস))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.