উত্তর:
আমার সমাধানটি হ'ল গেমের মানচিত্রের প্রতিটি শারীরিক সত্তাকে গাছের নোড হিসাবে এবং মানচিত্রটি নিজেই মূল নোড হিসাবে বিবেচনা করা । নোডগুলিতে অন্যান্য নোড থাকতে পারে। প্রতিটি নোড ম্যাপ নোডের ভিতরে (প্রত্যক্ষ বা অপ্রত্যক্ষভাবে) থাকে contained
উদাহরণস্বরূপ, আসুন আমরা বলি যে আপনার চরিত্রটি একটি প্ল্যাটফর্মে দাঁড়িয়ে আছে। প্ল্যাটফর্মের নোডে চরিত্রের নোড রয়েছে। সুতরাং, যখনই প্ল্যাটফর্মটি সরানো হবে তখন এতে থাকা নোডগুলি (এই ক্ষেত্রে চরিত্রটি) খুব সরানো হবে।
এটি হওয়ার জন্য, প্রতিটি নোডের প্যারেন্ট নোডের সাথে সম্পর্কিত (x, y) অবস্থান থাকতে হবে । উদাহরণস্বরূপ, আপনার চরিত্রটি প্ল্যাটফর্মের তুলনায় (1,0) এ অবস্থিত হতে পারে , যা নিজেই গেমের মানচিত্রের তুলনায় (10,10) এ অবস্থিত হতে পারে । এইভাবে, যদি প্ল্যাটফর্মটি সরানো হয়, আপনার চরিত্রটি পুরোপুরি স্পষ্টভাবে চলবে।
এই শ্রেণিবিন্যাসের গাছে, প্রতিটি নোডের অবস্থান তার পজিশনের সমষ্টি এবং তার প্রতিটি পিতামাতার নোডের অবস্থানের সমান। ধরা যাক আমরা মানচিত্রে চরিত্রের অবস্থান পেতে চাই। আমরা গণনা:
(চরিত্রের অবস্থান) + (পিতামাতার নোডের অবস্থান) + (মূল নোডের অবস্থান) = (1,0) + (10,10) + (0,0) = (১১,০)
ঠিক আছে, তাই এই সমস্ত সময় আপনার চরিত্রটি প্ল্যাটফর্মে দাঁড়িয়ে আছে। জাম্পিং সম্পর্কে কি? আচ্ছা সে মুহূর্তে জাম্প, আপনি তাকে মঞ্চ থেকে বিচ্ছিন্ন এবং প্ল্যাটফর্ম ধারণকারী নোড তাকে সংযুক্ত ; এই ক্ষেত্রে, মানচিত্র (রুট নোড)।
যখন সে আবার অবতরণ করবে, তার যে নোডে নেমেছে তার সাথে তাকে যুক্ত করুন।
আমি এটি ছদ্ম-পদার্থবিজ্ঞানের সমস্যা হিসাবে বিবেচনা করার পরামর্শ দেব এবং স্থল ঘর্ষণ ব্যবহার করে এটি সমাধান করব।
চরিত্রটি মাটিতে রাখার জন্য আপনি ইতিমধ্যে মাধ্যাকর্ষণ ব্যবহার করছেন, এটি এমন পরিস্থিতিতে পরিচালনা করে যেখানে প্ল্যাটফর্মগুলি উপরে এবং নীচে চলে যায়। বাম এবং ডান চলাচল পরিচালনা করতে, গ্রাউন্ডটি চরিত্রটিতে প্রচুর পরিমাণে ঘর্ষণ করতে হবে। সাধারণত এই ঘর্ষণ স্তরটি 1.0 বা 100% হবে।
চরিত্রটি যদি স্থির থাকে তবে তাদের গতিবেগ 0 হয় এবং ঘর্ষণের কারণে তারা প্ল্যাটফর্মটির 100% গতি লাভ করে। নিম্নলিখিত মত কিছু:
character_velocity = friction * platform_velocity
এই পদ্ধতির সুবিধাটি হ'ল এটি সহজেই অতিরিক্ত প্লাটফর্মিং মেকানিকগুলিকে ndsণ দেয় যেমন খাড়া opালুগুলিতে ঘর্ষণটি কাটিয়ে উঠতে সক্ষম হওয়া, আপনার চরিত্রটিকে স্লাইড করতে দেয়। এটি বরফটি তৈরি করতে ঘর্ষণটিকে সহজেই হ্রাস করতে দেয় যা চরিত্রটি সরে যায়।
কম ঝুলন্ত দেয়ালগুলির মতো সমস্যাগুলি মোকাবিলা করা আরও সহজ যা আপনার প্লেয়ারকে চলন্ত প্ল্যাটফর্ম থেকে ছিটকে দিতে পারে। আপনি যদি এই চরিত্রটিকে পিতামাতার প্ল্যাটফর্মের শিশু হিসাবে সহজভাবে ব্যবহার করেন তবে খুব ভাল কাজ না করে আপনার বাকী সংঘর্ষ সনাক্তকরণের সাথে এটি খুব সহজেই ইন্টারঅ্যাক্ট করবে না এমন একটা ভাল সুযোগ রয়েছে।
আপনি প্লেয়ারের অবস্থানটি "স্তরে নিরঙ্কুশ" নয় তবে "প্ল্যাটফর্মের সাথে তুলনামূলক" স্থির করতে পারেন, তারপরে এমন একটি ক্রিয়া রয়েছে যা তার আসল অবস্থান দেয়। যদিও আমি এটি পছন্দ করি না।
প্লেয়ারটিকে প্ল্যাটফর্মের সাথে আবদ্ধ করা আরও ভাল (এবং সহজ) হতে পারে যাতে প্ল্যাটফর্মটি যখন + x / + y সরানো হয়, প্লেয়ারটি যতটা সরে যায়।