কীভাবে বিশ্ব-টু-প্লেয়ার ইনভেন্টরি সিস্টেম তৈরি করবেন?


11

আমি এক্সএনএ-র মধ্যে একটি ইনভেন্টরি সিস্টেম কার্যকর করার চেষ্টা করার একটি ইস্যুতে চলেছি (আসলে কোনও বিষয় নয়, কোনও প্ল্যাটফর্ম হতে পারে) তবে এখন পর্যন্ত। আমি এখানে আমার মাথাটি গুটিয়ে দেওয়ার চেষ্টা করছি:

আমি কীভাবে বিশ্ব থেকে কোনও আইটেম পেতে পারি (ভাবুন আপনি যখন কোনও দৈত্যকে হত্যা করেন তখন এটি বর্ম ফেলে দেয়) এবং আমার প্লেয়ারের জায়টিতে তা পেতে পারি?

প্রযুক্তিগতভাবে যদি কোনও জায় কেবল আইটেমের তালিকা থাকে তবে আমি কীভাবে ক্লাস না করেই বিশ্ব থেকে আমার প্লেয়ারের ইনভেন্টরিতে স্টিল তরোয়াল পেতে পারি?

আমার কাছে বর্তমানে একটি আইটেম স্ট্রাক্ট রয়েছে, যার মধ্যে একটি অনন্য হেক্স মান রয়েছে, কতগুলি আইটেম রয়েছে তার একটি গণনা (স্ট্যাকেবিলের জন্য, তীরের মতো) এবং ইনভেন্টরির মধ্যে রেন্ডারিংয়ের জন্য একটি টেক্সচার এবং কিছু অন্যান্য গুরুত্বহীন বৈশিষ্ট্য (নাম, বিবরণ ইত্যাদি) রয়েছে contains ।

এটি যদি আমার বিদ্যমান আইটেম শ্রেণিকে সংঘর্ষ সনাক্তকরণের সাথে একটি বিশ্ব অবস্থান নির্ধারণ করতে (আইটেমটি পৃথিবীর মধ্য দিয়ে পড়তে চায় না) করতে হয় তবে এটি খারাপ নকশা হবে।

কোন বিবেচনার জন্য ধন্যবাদ!


4
আপনার কি WorldItemআলাদা যা আপনার কাছে আলাদা নয় InventoryItem? (সম্ভবত এটিতে WorldItemএকটি InventoryItemটেম্পলেট রয়েছে যা প্লেয়ারটি নেওয়ার সময় প্লেয়ারের ইনভেন্টরিতে রাখে)।
জর্জ ডেকেট

1
@ জর্জিডুकेट আপনার এই উত্তরটি দেওয়া উচিত .. সম্ভবত কোনও পদ্ধতি থাকা উচিত যা Inventoryএটি গ্রহণ করে WorldItemএবং এটি যুক্ত করে InventoryItem। যাতে আইটেমগুলি স্ট্যাক করার প্রয়োজন হয় এমন ক্ষেত্রেও এটি পরিচালনা করতে পারে (যেমন। তীরগুলি)।
বাম্মজ্যাক

@ অ্যালবামজ্যাক: হয়ে গেছে।
জর্জ ডেকেট

উত্তর:


17

আমি যে পদ্ধতির জন্য যাব তা হ'ল 2 টি পৃথক স্ট্রাক (বা ক্লাস) থাকে। WorldItemএবং InventoryItem

এরপরে আপনি নিজের InventoryItemসম্পত্তি / ক্ষেত্র হিসাবে একটি যুক্ত করতে পারেন WorldItemযা বিশ্বের আইটেমটি বাছাই করার পরে প্লেয়ারের ইনভেন্টরিতে রাখে।

আইটেমের মতো স্ট্যাকিংয়ের সাথে মোকাবেলা করার জন্য আপনি কোথাও এমন কোনও পন্থা চান (প্লেয়ার ক্লাসে বা কোনও আইটেম শ্রেণিতে) যা প্লেয়ারের ইনভেন্টরিতে একটি ইনভেন্টরি আইটেম যুক্ত করে।


আমি এই উত্তরটি সত্যিই পছন্দ করি, আপনাকে অনেক ধন্যবাদ, এটি এতটা অর্থবোধ করে! একটি সর্বশেষ চিন্তা, আসুন বলি যে ব্যক্তি কোনও আইটেম ফেলে দিতে চায়, ইনভেন্টরি আইটেমটির পাশাপাশি এটির জন্য একটি ওয়ার্ল্ড আইটেমেরও প্রয়োজন হবে?
রস

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

ওহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহ্রববব্রহ্মুহুউবহ্হ্হ্হুহ্হহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহহ্সহসামহান, তবুওনা এটি একটি খুব আকর্ষণীয় ধারণা। যেহেতু সমস্ত আইটেমগুলি কংক্রিট, সেগুলির জন্য অনুসন্ধান করা বোধগম্য।
রস

2
আমি ওয়ার্ল্ড আইটেমটি তৈরি করার সময় ধ্বংস করব এবং আইটেমটি ফেলে দেওয়া হলে একটি নতুন তৈরি করব।
সাইমন রিখটার

একমত। অন্যথায় বোঝানো মানে না।
জর্জি ডেকেট

0

যেমন একাধিক ক্লাস বা অ্যারেতে বিভক্ত হওয়ার আগে উল্লেখ করা আপনার সেরা বাজি হবে। আমি ৩ টি ক্লাস, ওয়ার্ল্ড, প্লেয়ার এবং আইটেম তৈরি করব ওয়ার্ল্ড ক্লাসে এটির একটি তালিকা ওয়ার্ল্ড আইটেম থাকত, তবে প্লেয়ার শ্রেণিও থাকবে, তবে নাম তালিকা তালিকার নামকরণ যখন কোনও খেলোয়াড় কোনও জিনিস বাছাই করে, আপনি এটি বিশ্বের তালিকা থেকে সরিয়ে নিন প্লেয়ার ক্লাসের তালিকায় ক্লাস।

আপনার গেমের ড্র লুপে আপনি এমন একটি লুপ তৈরি করতে পারেন যা ওয়ার্ল্ড আইটেমের তালিকার সমস্ত আইটেমকে স্ক্রিনে আঁকবে, তবে অবশ্যই প্লেয়ার অবজেক্টের ইনভেন্টরি তালিকাটিকে উপেক্ষা করবে।


আমার এই মুহূর্তে আমার পদ্ধতিটি হ'ল আমার কাছে একটি ওয়ার্ল্ড আইটেম ক্লাস রয়েছে যা একটি ইনভেন্টরি আইটেমকে একই আইটেমের সাথে সম্পর্কিত করে per গেমের আপডেট পদ্ধতিতে আমি সমস্ত বিশ্বের আইটেম এবং প্লেয়ারের সাথে সংঘর্ষের সীমানা পরীক্ষা করি। যদি দুটি সংঘর্ষ হয়, ওয়ার্ল্ড আইটেমটি ওয়ার্ল্ড আইটেম তালিকা থেকে সরানো হবে এবং প্লেয়ারের ইনভেন্টরিতে রাখা হবে (যা ইনভেন্টরি আইটেমের একটি তালিকা <> যা)
রস 14
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.