স্প্রিটকিট কি এমভিসি প্যাটার্ন অনুসরণ করে?


11

আমি বর্তমানে ওল্ড ফ্র্যাঙ্ক নামে একটি আইওএস প্রকল্পে কাজ করছি যা আমি এমভিসি ডিজাইনের ধরণ অনুসরণ করার চেষ্টা করছি।

এর সংক্ষিপ্তসার।

GameObjects(model) <- Scene(controller) -> Sprites "SpriteKit" (View)

এখন আমি যদি এমভিসিটি সঠিকভাবে বুঝতে পারি তবে আপনি এমভিসি অনুসরণ করতে চাইলে স্প্রিটকিট যে অফারগুলি দিতে পারে সেগুলি আপনি অনেকগুলি ব্যবহার করতে পারবেন না। উদাহরণস্বরূপ SKAction, সংঘর্ষ সনাক্তকরণ ইত্যাদি,

গেমের অবজেক্টগুলি কোথায় অবস্থিত এমন মডেলটির উপর নির্ভর করে না এবং অন্যান্য বস্তুর স্পর্শ করার সময় তাদের কীভাবে প্রতিক্রিয়া দেখা উচিত? সময়ের সাথে সাথে অবস্থান নির্ধারণ করা কি মডেলটির উপর নির্ভর করে না?

স্প্রিটকিটের এমন কোনও অংশ রয়েছে যা এমভিসিতে রেন্ডারিং ছাড়া অন্য "ভিউ" হিসাবে ব্যবহার করা উচিত?


"আমি এমভিসি ডিজাইনের ধরণটি অনুসরণ করার চেষ্টা করছি" - কেন?
পল ডি ওয়েট

2
@ পলডি.ওয়েট আমার মডেলকে আলাদা রাখার ধারণাটি পছন্দ করি। তত্ত্বগতভাবে এটিকে অন্য প্ল্যাটফর্মে পোর্ট করা বা পুনরায় তৈরি করা সহজ করে তোলে। এটি দৃistence়তা পরিচালনা করতে একটি টনকে আরও সহজ করে তোলে যা এখন পর্যন্ত সবচেয়ে বড় কারণ হয়ে দাঁড়িয়েছে।
স্কাইলার লরেন 21

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

এটির ফলে আপনার সংরক্ষণের গেমগুলি অন্য প্ল্যাটফর্মে ব্যবহারযোগ্য হতে পারে, যদিও আমার সন্দেহ হয় যে স্প্রেটকিটের মতো ম্যাক / আইওএস-কেবলমাত্র ফ্রেমওয়ার্কের সাথে কাজ করার সময় আপনি পোর্ট-সক্ষমতার দিক দিয়ে যেতে পারেন।
পল ডি ওয়েট

1
@ পলডি.ওয়েট আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ আমি ভবিষ্যতে বিবেচনার জন্য অন্য একটি নিদর্শন হিসাবে স্মৃতিসৌধের নিদর্শনটি দেখব। দুটি প্রশ্ন একই প্রকল্প সম্পর্কে হ্যাঁ তবে সম্পর্কিত নয়। অন্য একজন স্ট্যাকওভারফ্লোতে স্থানান্তরিত হয়ে দেখে অবাক হয়ে গিয়েছিল এবং আজ তার রাতের পরে তার উত্তরটি সন্ধান করবে =)
স্কাইলার লরেন

উত্তর:


6

আপনার প্রশ্নটি ভাল one স্প্রিটকিট সম্পর্কে আমার ঠিক একই প্রশ্ন ছিল এবং এটি সম্পর্কে ওয়েবে তথ্যের অভাব সম্পর্কে খুব বিভ্রান্ত হয়ে পড়েছি। স্প্রিটকিট আপনাকে সমস্ত মডেল-ভিউ-কন্ট্রোলার কোডটিকে একই ক্লাসে (আপনার এসকেসিন সাবক্লাস) স্থাপন করতে উত্সাহিত করছে বলে মনে হচ্ছে যা সত্যই আমার কাছে বিভ্রান্তিকর। কীভাবে আপনি যে কৌশলটি ব্যবহার করে কোনও জটিলতার একটি খেলা তৈরি করবেন? টাচস বিগান / সমাপ্তির মতো কন্ট্রোলার কোডের সাথে গেম স্টেটের (স্কোর, numLives, ইত্যাদি) সংমিশ্রণ এবং একই শ্রেণীর সমস্ত রেন্ডারিং ভিউ গেমসের সহজতম ছাড়াই পরিচালনা করা সত্যিই শক্ত হয়ে যায়।

আমি একমত যে দৃ pers়তা সহকারে স্মৃতিসৌধের প্যাটার্নটি ব্যবহার করা ভাল ধারণা, তবে আমিও মনে করি এমভিসি ডিজাইনে চলে যাওয়া উপকারী হতে পারে। আমি বর্তমানে আমার গেমটিকে এমভিসি আর্কিটেকচারে নিয়ে যাচ্ছি। আমার বর্তমান পদ্ধতির মধ্যে রয়েছে আমার মডেল (গেম অবজেক্টস) পদার্থবিজ্ঞান পরিচালনা করতে, এসকেস্কেন সাবক্লাসটি নিয়ামক হিসাবে কাজ করা এবং দৃশ্যে এসকে নোডের ভিজ্যুয়াল দিকগুলি কনফিগার এবং রেন্ডার করার জন্য পৃথক শ্রেণীর দৃষ্টিভঙ্গি হিসাবে কাজ করার জন্য। আমি প্রক্রিয়াটির একমাত্র অংশ, সুতরাং এটি ভাল ডিজাইন হবে কিনা তা নিশ্চিত করে বলতে পারছি না, তবে মনে হচ্ছে এটি এসকেসিনের 10,000 লাইন সাবক্লাসের চেয়ে অনেক ভাল হবে।


আপনার উত্তর / মন্তব্যের জন্য আপনাকে ধন্যবাদ। আপনার মতো মনে হচ্ছে স্প্রিটকিটের বৈশিষ্ট্যগুলি এমভিসি ডিজাইন প্যাটারটিকে অনুসরণ করে না। আমাকে skyler@skymistdevelopment.com ইমেইল করতে যদি আপনার সম্পর্কে MVC কিভাবে "আমি" ব্যবহার করছি প্রশ্ন আছে বা কিভাবে "আপনি" SpriteKit = সহ) MVC ব্যবহার করছেন বিস্তারিত মধ্যে আরো যেতে চান নির্দ্বিধায়
Skyler লরেন

আপনাকে বেশিরভাগ কোডকে এসকেসিন ক্লাসে রাখতে বাধ্য করার মতো কিছুই নেই। প্রকৃতপক্ষে, স্প্রিটকিট ব্যবহার করার সময় আমি দেখতে পাই, বেশিরভাগ যুক্তি নোডের কাছে সিনের চেয়ে অনেক বেশি প্রাকৃতিকভাবে পড়ে যায়, যেহেতু নোডগুলি স্প্রিটকিটের মজাদার। দৃশ্যটি আপনার নোড গাছের আপডেট এবং ইনপুট পরিচালনা করতে "নিয়ন্ত্রণকারী" এর চেয়ে কিছুটা বেশি। যদিও "এমভিসি" মডেলটি স্প্রিটকিটের সাথে এখনও মেলে না, নোডগুলি "এম" এবং "ভি" হিসাবে থাকে।
Attackfarm

1

সহজ কথায় স্প্রিটকিট গেমসের একটি সাধারণ নকশা হ'ল দৃশ্য, স্তর, নোড এবং শিশু নোড।

আপনি প্রতিটি অংশকে একটি পৃথক শ্রেণিতে পরিণত করতে পারেন যা সমস্ত অংশ, বৈশিষ্ট্য এবং পদ্ধতিগুলিকে আবদ্ধ করে।

উদাহরণস্বরূপ, একটি ব্যাকগ্রাউন্ড শ্রেণি যা চিত্রযুক্ত স্তর, কণা, বিভিন্ন বৈশিষ্ট্য যেমন প্রতিটি স্তরকে চলমান করা উচিত এবং ব্যাকগ্রাউন্ডটি স্ক্রোলিং শুরু এবং থামাতে সর্বসাধারণের পদ্ধতিগুলি রয়েছে has

এই নকশায় আপনি এই বিযুক্ত ক্লাসগুলিকে একত্রিত করেন যা দৃশ্যে নিজস্ব কাজ করে যা বেশিরভাগ চলমান আপডেট পরিচালনা করে :, পদার্থবিজ্ঞান, স্পর্শ ইভেন্ট ইত্যাদি hand

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.