আমি আশা করি এই দুর্বৃত্তরা আমার প্রশ্নটি পরিষ্কার করে দেবে - তবে তারা যদি না জানত তবে আমি পুরোপুরি বুঝতে পারতাম, তবে যদি ঘটনাটি ঘটে তবে আমাকে জানান, এবং আমি নিজেকে আরও পরিষ্কার করার চেষ্টা করব।
অবজেক্ট-ভিত্তিক গেম বিকাশের সাথে পরিচিত হওয়ার জন্য বক্সপংয়ের সাথে মিলিত হওয়া একটি খুব সাধারণ খেলা। বলটি নিয়ন্ত্রণ করতে এবং হলুদ জিনিস সংগ্রহ করতে বাক্সটি টানুন।
বক্সপং তৈরি করা আমাকে অন্যান্য বিষয়গুলির মধ্যে একটি মৌলিক প্রশ্ন গঠনে সহায়তা করেছিল: আমার কীভাবে এমন বস্তু থাকতে পারে যা একে অপরের সাথে "সম্পর্কযুক্ত" না হয়ে একে অপরের সাথে যোগাযোগ করে? অন্য কথায়, কোনও পদার্থের জন্য শ্রেণিবদ্ধ না হয়ে পরিবর্তে সহাবস্থান করার কি উপায় আছে? (আমি আরও বিশদে নীচে যাব।)
আমি সন্দেহ করি অবজেক্টের সহাবস্থান থাকার সমস্যাটি একটি সাধারণ সমস্যা, তাই আমি আশা করি এটি সমাধানের একটি স্থিত উপায় রয়েছে। আমি বর্গাকার চাকাটি পুনরায় উদ্ভাবন করতে চাই না, তাই আমি যে আদর্শ উত্তরটি সন্ধান করছি তা অনুমান করি যে "এখানে একটি নকশার ধরণ যা আপনার ধরণের সমস্যাটি সমাধান করার জন্য সাধারণত ব্যবহৃত হয়"।
বিশেষত বক্সপংয়ের মতো সাধারণ গেমগুলিতে এটি স্পষ্ট যে একই স্তরে মুষ্টিমেয় কিছু বস্তু সহাবস্থান রয়েছে বা হওয়া উচিত। একটি বাক্স আছে, একটি বল আছে, সংগ্রহযোগ্য ble অবজেক্ট-ভিত্তিক ভাষায় আমি সমস্ত প্রকাশ করতে পারি, যদিও - বা তাই মনে হয় - হ'ল- কঠোর সম্পর্ক। এটি সদস্য ভেরিয়েবলের মাধ্যমে সম্পন্ন হয়েছে। আমি শুধু বন্ধ না শুরু করতে পারেন ball
এবং তার জিনিস না দেওয়া, আমি স্থায়ীভাবে তা প্রয়োজন অন্তর্গত অন্য বস্তুর জন্য। আমি এটা সেট করেছি আপ করুন যাতে মূল খেলা বস্তু রয়েছে একটি বাক্স, এবং পালাক্রমে বক্স রয়েছে একটি বল, এবং হয়েছে একটি স্কোর কাউন্টার। প্রতিটি বস্তুর একটিও রয়েছেupdate()
পদ্ধতি, যা অবস্থান, দিক ইত্যাদি গণনা করে এবং আমি সেখানে একইভাবে চলেছি: আমি মূল গেমের অবজেক্টের আপডেট পদ্ধতিটি কল করি, যা তার সমস্ত বাচ্চার আপডেট পদ্ধতিগুলি কল করে এবং তারা তাদের সমস্ত বাচ্চার আপডেট পদ্ধতিগুলি কল করে । কোনও অবজেক্ট-ওরিয়েন্টেড গেমটি দেখতে আমি এটি দেখতে পাচ্ছি তবে আমি অনুভব করি যে এটি আদর্শ উপায় নয়। সর্বোপরি, আমি বলটিকে বাক্সের সাথে সম্পর্কিত হিসাবে ভাবব না, বরং একই স্তরে থাকছিলাম এবং এটির সাথে ইন্টারঅ্যাক্ট করব। আমি মনে করি যে সমস্ত গেমের অবজেক্টগুলিকে মূল গেমের অবজেক্টের সদস্য ভেরিয়েবলগুলিতে পরিণত করার মাধ্যমে এটি অর্জন করা যেতে পারে, তবে আমি কিছুই সমাধান করতে দেখছি না। আমি বলতে চাই ... সুস্পষ্ট গোলমালকে একপাশে রেখে বল এবং বাক্সে একে অপরকে জানার উপায় কী হবে, অর্থাত্ ইন্টারঅ্যাক্ট করার?
একে অপরের মধ্যে তথ্য পাস করার জন্য প্রয়োজনীয় বস্তুর বিষয়টিও রয়েছে। এসএনইএস-এর জন্য আমার কাছে লেখার কোডের বেশ খানিকটা অভিজ্ঞতা রয়েছে, যেখানে আপনি পুরো সময় পুরো র্যামে অ্যাক্সেস পান। বলুন আপনি সুপার মারিও ওয়ার্ল্ডের জন্য একটি কাস্টম শত্রু করছেন , এবং আপনি এটি মারিওয়ের সমস্ত কয়েন মুছে ফেলতে চান, তবে কেবল 0 ডাব্লুএফএফ ঠিকানার জন্য শূন্য সংরক্ষণ করুন, কোনও সমস্যা নেই। শত্রুরা প্লেয়ারের স্ট্যাটাস অ্যাক্সেস করতে পারে না এমন বলার কোনও সীমাবদ্ধতা নেই। আমার ধারণা আমি এই স্বাধীনতা দ্বারা নষ্ট হয়ে গিয়েছি, কারণ সি ++ এবং এর মতো আমি প্রায়শই নিজেকে ভাবছি যে কীভাবে কিছু অন্যান্য অবজেক্টের (বা এমনকি বিশ্বব্যাপী) কোনও মূল্যকে অ্যাক্সেসযোগ্য করা যায়।
বক্সপংয়ের উদাহরণ ব্যবহার করে, আমি যদি বলটি পর্দার প্রান্তগুলিকে ছাড়িয়ে যেতে চাইতাম? width
এবং শ্রেণীর height
বৈশিষ্ট্য হয় Game
,ball
তাদের অ্যাক্সেস আছে। আমি এই ধরণের মানগুলিতে পাস করতে পারি (হয় কনস্ট্রাক্টর বা তাদের প্রয়োজনীয় পদ্ধতিগুলির মাধ্যমে) তবে এটি আমার কাছে খারাপ অভ্যাসের চিৎকার করে।
আমার অনুমান যে আমার প্রধান সমস্যাটি হ'ল একে অপরকে জানার জন্য আমার প্রয়োজন বস্তুগুলি, তবে আমি এটি করতে কেবলমাত্র উপায়টি হ'ল কঠোর শ্রেণিবদ্ধতা, যা কুৎসিত এবং অবৈধ।
আমি C ++ এ "ফ্রেন্ড ক্লাস" শুনেছি এবং কিন্ডা জানি তারা কীভাবে কাজ করে তবে তারা যদি শেষ সমাধান হয় তবে আমি কীভাবে দেখতে পাচ্ছি না friend
প্রতিটি সি সি ++ প্রকল্পে কীওয়ার্ড pouredেলে দেওয়া হয়েছে এবং কীভাবে আসে প্রতিটি ওওপি ভাষায় ধারণার অস্তিত্ব নেই? (একই ফাংশন পয়েন্টারগুলির ক্ষেত্রেও হয়, যা আমি সম্প্রতি শিখেছি))
কোনও ধরণের উত্তরের জন্য অগ্রিম ধন্যবাদ - এবং আবারও যদি এমন কোনও অংশ থাকে যা আপনাকে বোঝায় না, তবে আমাকে জানান know