আমি একটি সাধারণ ব্লক-ভিত্তিক ধাঁধা গেম নিয়ে কাজ করছি।
গেম প্লেটি গেমের অঞ্চলে প্রায় চলমান ব্লককে ধারণ করে, তাই এটি একটি তুচ্ছ পদার্থবিজ্ঞানের সিমুলেশন। আমার বাস্তবায়নটি যদিও আমার মতে আদর্শের থেকে অনেক দূরে এবং আমি ভাবছি যে আপনি কীভাবে এটি আরও ভাল করে করবেন সে সম্পর্কে কোনও পয়েন্টার দিতে পারেন কিনা।
আমি কোডটি দুটি ভাগে বিভক্ত করেছি: গেম যুক্তি এবং ইউআই, যেমন আমি প্রচুর ধাঁধা গেমস দিয়েছিলাম:
- গেমের যুক্তি গেমের সাধারণ নিয়মের জন্য দায়ী (যেমন দাবাতে আনুষ্ঠানিক নিয়ম ব্যবস্থা)
- ইউআই গেমের ক্ষেত্র এবং টুকরা (উদাহরণস্বরূপ দাবা বোর্ড এবং টুকরো) প্রদর্শন করে এবং অ্যানিমেশনগুলির জন্য দায়ী eg
গেম লজিক গেমের অবস্থাটিকে লজিক্যাল গ্রিড হিসাবে প্রতিনিধিত্ব করে, যেখানে প্রতিটি ইউনিট গ্রিডের একক ঘরের প্রস্থ / উচ্চতা। সুতরাং প্রস্থ 6 এর গ্রিডের জন্য, আপনি সীমার সাথে সংঘর্ষ না হওয়া পর্যন্ত আপনি ২ টি প্রস্থের একটি ব্লকটি চারবার সরিয়ে নিতে পারেন।
ইউআই এই গ্রিডটি গ্রহণ করে এবং লজিকাল আকারকে পিক্সেল আকারগুলিতে রূপান্তরিত করে (এটি, একটি ধ্রুবক দ্বারা এটিকে গুণ করে) ws তবে, যেহেতু গেমটির কোনও গেম যুক্তিই কমই আছে, আমার গেম লজিক লেয়ার [1] সংঘর্ষ সনাক্তকরণ ব্যতীত আর কিছু করার নেই do এখানে কিভাবে এটা কাজ করে:
- প্লেয়ার একটি টুকরা টানতে শুরু করে
- ইউআই সেই টুকরোটির আইনী চলাচলের ক্ষেত্রের জন্য গেমের যুক্তি জিজ্ঞাসা করে এবং প্লেয়ারটিকে সেই অঞ্চলে টেনে আনতে দেয়
- খেলোয়াড় একটি টুকরা যেতে দেয়
- ইউআই টুকরা গ্রিডে স্ন্যাপ করে (যাতে এটি কোনও বৈধ যৌক্তিক অবস্থানে থাকে)
- ইউআই গেম যুক্তিকে নতুন যৌক্তিক অবস্থানের কথা বলে (পরিবর্তক পদ্ধতিগুলির মাধ্যমে যা আমি এড়াতে পারি)
আমি এতে খুশি নই:
- আমি আমার গেম লজিক লেয়ারের জন্য ইউনিট টেস্টগুলি লিখছি, তবে ইউআই নয়, এবং এটি প্রমাণিত হয়েছে যে সমস্ত জটিল কোডটি ইউআইতে রয়েছে: টুকরোটি অন্যদের সাথে বা সীমানাটির সাথে সংঘর্ষ হওয়া থেকে থামানো এবং গ্রিডে ছিটকে পড়া।
- আমি এই সত্যটি পছন্দ করি না যে ইউআই নতুন গেমটির যুক্তিটি নতুন রাষ্ট্র সম্পর্কে বলে, আমি বরং এটি অন্য
movePieceLeft()
পদ্ধতিগুলির মতো কোনও পদ্ধতি বা এর মতো কিছু কল করতে চাই, তবে আমি সেই পদ্ধতির সাথে খুব বেশি কাছে যাইনি, কারণ গেমের যুক্তিটি ইউআই-তে সম্ভব এবং টানাটানি টেনে নিয়ে যাওয়া সম্পর্কে কিছুই জানে না।
আমি মনে করি সবচেয়ে ভাল কাজটি হ'ল আমার গেম লজিক স্তর থেকে মুক্তি পাওয়া এবং পরিবর্তে একটি পদার্থবিজ্ঞানের স্তরটি প্রয়োগ করা। আমি সে সম্পর্কে কয়েকটি প্রশ্ন পেয়েছি:
- এই জাতীয় পদার্থবিজ্ঞানের স্তরটি কি সাধারণ, বা গেম লজিক স্তরটি এটি করা বেশি সাধারণ?
- গ্রিডে টুকরো টুকরো টুকরো টুকরো টুকরো কোডটি কি ইউআই বা পদার্থবিজ্ঞানের স্তরটির অন্তর্ভুক্ত?
- এই জাতীয় পদার্থের স্তরটি সাধারণত আমার গেম লজিক স্তরের মতো পিক্সেল আকার বা কোনও ধরণের লজিক্যাল ইউনিটের সাথে কাজ করবে?
- আমি একবার গেমের কোড বেসে ইভেন্ট-ভিত্তিক সংঘর্ষ সনাক্তকরণ দেখেছি, অর্থাৎ প্লেয়ারটি কেবল টুকরো টেনে টানত, ইউআই সেই আনুগত্যের সাথে রেন্ডার করে এবং পদার্থবিজ্ঞানকে অবহিত করবে এবং পদার্থবিজ্ঞান সিস্টেমটি একটি কলসিশন () পদ্ধতি কল করবে টুকরা উপর একবার একটি সংঘর্ষ সনাক্ত করা হয়। এর চেয়ে সাধারণ কী? এই পন্থা বা আইনী আন্দোলনের ক্ষেত্রটি আগে জিজ্ঞাসা করছেন?
[1] স্তরটি আমার অর্থটির জন্য সম্ভবত সঠিক শব্দ নয়, তবে সাবসিস্টেমটি ওভারব্লোন শোনায় এবং শ্রেণীটি বিপথগামী, কারণ প্রতিটি স্তরটি বেশ কয়েকটি শ্রেণীর সমন্বয়ে থাকতে পারে।