আমি সরাসরি বেরিয়ে এসে বলব যে আপনি যে প্রশ্নটিতে বর্ণিত সমস্যাটি কীভাবে সমাধান করবেন তা আমি জানি না (আইসো-টাইল-আকৃতির আয়তক্ষেত্রগুলির মধ্যে সংঘর্ষ সনাক্তকরণ), তবে আমি আপনাকে বলতে পারি যে অন্যরা কীভাবে এটি সমাধান করেছে :
অন্যান্য গেমগুলিতে এটি যেভাবে করা হয়েছে তা হ'ল গেম জগতকে পর্দার জগত থেকে আলাদা করা । যখন আপনি শুরু করছেন, তখন এগুলি একই জিনিস তা কল্পনা করা সাধারণ, তবে এরপরে এটি আপনি বর্ণনা করছেন এমন সমস্যার সৃষ্টি করে।
সাধারণ ধারণাটি হ'ল গেম ওয়ার্ল্ড পুরোপুরি মেমরির মধ্যে সংরক্ষণ করা হয়, পর্দার আড়ালে, এটি কেবল সংখ্যা, উল্লেখ এবং যুক্তি। আইসোমেট্রিকে আপনি গেমের জগতকে আঁকছেন এ বিষয়টি অপ্রাসঙ্গিক। আপনার গেমের জগতের আইসোমেট্রিক বা বর্গক্ষেত্রের ধারণা থাকা উচিত নয়, এমনকি স্ক্রিনটি 3 ডি হিসাবে আঁকলেও হওয়া উচিত। আপনি যখন গেমের জগতকে পর্দার দিকে টানেন (তখন স্ক্রিন ওয়ার্ল্ড ) তখন তার সবকিছুর যত্ন নেওয়া হয় । আইসোমেট্রিক গেমগুলিতে গেমের জগতটি সহজতম উপায়ে সংরক্ষণ করা এবং বজায় রাখা উচিত, আপনি সাধারণত এটি পুরোপুরি সত্যই উপেক্ষা করেন এবং পরিবর্তে অবস্থানগুলি সংরক্ষণ করুন যেন আপনি অক্ষ-সারিবদ্ধ গ্রিড ব্যবহার করছেন। বেশিরভাগ গেমের দুটি বিশ্বের মধ্যে সমন্বয় রূপান্তর করার জন্য পদ্ধতি থাকবে, আমি আমার ScreenToWorld(x, y)
এবং ডাকেWorldToScreen(x, y)
। রূপান্তরটি প্রায়শই ম্যাট্রিক্স গণিতের সাথে করা হয় তবে অন্য উপায়ে অর্জন করা যায়। আপনি যখন মাউস ব্যবহার করবেন তখন আপনি স্ক্রিনটি ওয়ার্ল্ড এবং ওয়ার্ল্ড টোস্ক্রিন ব্যবহার করবেন।
গেম ওয়ার্ল্ড এবং স্ক্রিন ওয়ার্ল্ডকে বিভক্ত করার বিভিন্ন সুবিধা রয়েছে । সুবিধাগুলির মধ্যে একটি হ'ল সংঘর্ষ সনাক্তকরণ এবং চলাচল সবই গেমের জগতে ঘটে থাকে এবং তাই সাধারণত বেশ সোজা হয়ে থাকে কারণ আপনি কোনও স্ল্যাড গ্রিড, বা স্কিওড কোঅর্ডিনেটস, বা স্ক্রিন যেখানে নেই ইত্যাদি নিয়ে কাজ করছেন না your , আপনি অক্ষ-সংযুক্ত আয়তক্ষেত্র এবং স্কোয়ারগুলি নিয়ে কাজ করবেন। একবার গেম ওয়ার্ল্ড আপডেট হয়ে গেছে, তারপরে আপনি গেম ওয়ার্ল্ডের একটি চিত্র স্ক্রিনে আঁকুন, কীওয়ার্ড: প্রতিনিধিত্ব করুন। এটি প্রথমে স্ব-স্বজ্ঞাত বলে মনে হতে পারে তবে আপনার পর্দাটি গেমের বিশ্বে কী চলছে তার একটি প্রতিনিধিত্ব। এটি ডেডিকেটেড সার্ভার এবং টার্মিনালের মতো ক্লায়েন্টগুলির মতো জিনিসকে সম্ভব করে তোলে।
ফ্রিসিভ আসলে এই সমস্ত কিছুর একটি দুর্দান্ত উদাহরণ। আপনি যে কোনওটির মতো একই বিশ্বকে দেখতে পারেন: একটি বর্গ উত্তর / দক্ষিণ গ্রিড, আইসোমেট্রিক বা এমনকি হেক্স। আপনার চালানো প্রতিটি গেমের পটভূমিতে একটি ডেডিকেটেড সার্ভার চলছে, এমনকি একক প্লেয়ার গেমসের জন্যও তাই ক্লায়েন্টটি কেবল একটি প্রদর্শন পোর্ট, আরও কিছু নয়।
দীর্ঘ গল্পের সংক্ষিপ্তসার: গেমের জগতটি এবং পর্দার জগত থেকে যুক্তিকে পৃথক করা গেমটির যুক্তিকে সহজ করে তোলে , গেম <-> প্রদর্শন সংযোগকে হ্রাস করে এবং ফলস্বরূপ , "আইসো" টাইলগুলির মধ্যে সংঘর্ষ সনাক্তকরণকে পরিচালনা করা সহজ এবং দৃশ্যমান করা সহজ করে তোলে।