উত্তর:
দিনগুলিতে (1990) পুরানো পিনবল গেমগুলি এভাবে তৈরি করা হয়েছিল:
খেলার মাঠের জন্য কয়েকটি স্তর রয়েছে (গেমটি খেলার সময় আপনি কী দেখেন):
এবং সংঘর্ষের জন্য কয়েকটি স্তর:
বাম গ্রেস্কেল ছবিটি মূল গেমের জন্য একটি সংঘর্ষের মানচিত্র, ডান ছবিটি বিশেষ অঞ্চলের জন্য একটি সংঘর্ষের মানচিত্র: পিনবল র্যাম্প।
White
= বলের জন্য মুক্ত অঞ্চল, রঙ সূচক 255 রয়েছে।
Gray
= বলটি এই অঞ্চল থেকে "দূরে ধাক্কা" দেওয়া হবে। রঙ সূচক = বলের অবস্থানে যুক্ত করতে ভেক্টরের কোণ। হালকা ধূসর = 0 ডিগ্রি। গা dark় ধূসর = 360 ডিগ্রি।
কিছু ছদ্ম কোড:
void do_ball_physics()
{
while(1)
{
byte color = read_pixel_under_ball(ballx, bally); //one pixel read
if(color == 255) //see remark below
break;
float vectorx = sin(color/255.0f * 2.0f * PI);
float vectory = cos(color/255.0f * 2.0f * PI);
ballx += vectorx; //push ball away from one unit
bally += vectory; //
}
}
কিছু বিশেষ রঙ ইনডেক্স এছাড়াও সংঘর্ষের ছাড়া অন্য কিছুর জন্য ব্যবহার করা যেতে পারে একটি কাস্টম রঙ পরিসীমা (যেমন: 240 - 255) -এর মত বিশেষ অঞ্চল শনাক্ত জন্য সংরক্ষিত করা যেতে পারে spinners
, triggers
, bumpers
, holes
, ...
আপনি দেখতে পাচ্ছেন যে এটি খুব সহজ। প্রতি ফ্রেমে কয়েকটি পিক্সেল "পঠিত" রয়েছে। এ কারণে আপনি পদার্থবিজ্ঞানের সিমুলেশনটি একটি বাস্তব উচ্চ ফ্রেমরেটে যেমন: 200 fps এ চালাতে পারেন। উচ্চ ফ্রেমরেট ব্যবহার করে সিমুলেশন মসৃণ হবে এবং "টানেলিং" হ্রাস পাবে (বলটি খুব দ্রুত চলে এলে এবং সংঘর্ষ ছাড়াই ট্রুপের উপাদানগুলি পাস করবে) happen সেই সরলতাটিই সেই দিনগুলিতে মসৃণ পিনবল গেমগুলি 386 computers
(এবং এমনকি দ্রুত 286
) ফিরে আসা (রঙ সাইক্লিং, ভিগা স্ক্রোলিং এবং স্প্রাইট মাস্কিংয়ের মতো আরও কিছু কৌশলগুলির মধ্যেও) সম্ভব করে তোলে ।
আজ, বেশিরভাগ পিনবল গেমগুলি আর এর মতো তৈরি হয় না। পরিবর্তে প্লেফিলিটি 2 ডি / 3 ডি দৃশ্য যা বহুভুজ বা স্প্রাইট ব্যবহার করে সংঘর্ষগুলি কিছু সরল রেখা, বেজিয়ার রেখাচিত্র বা ভিজ্যুয়াল প্লেফিল্ডের সরলিকৃত আকারের প্রতিনিধিত্বকারী গোলকের বিরুদ্ধে তৈরি করা হয়।
উদাহরণ ( ভিজ্যুয়াল পিনবল থেকে ):
কিছু গেম সংস্থাগুলি তাদের নিজস্ব পদার্থবিজ্ঞান ইঞ্জিন ব্যবহার করে তবে আরেকটি সহজ উপায় হ'ল ফিজিক্স ইঞ্জিনের মতো Box2D
বা ব্যবহার করা Bullet
। আমি দেখেছি বেশিরভাগ আইফোন পিনবল গেমগুলি প্রাক-বিদ্যমান ফিজিক্স ইঞ্জিন + কিছু 3 ডি সম্পদ ব্যবহার করছিল।
পিনবলগুলিতে পদার্থবিদ্যার খুব সমৃদ্ধ সেট রয়েছে, কেবল ছিদ্র বা দেয়ালই নয়, উপাদানগুলি (পিছনে আঘাত) বা অসমান পৃষ্ঠের প্রতিক্রিয়াও রয়েছে যেখানে বলটি ধীর হয়ে যায় এবং তার গতি ফিরে আসে।
যদি আপনি একটি ভাল পিনবল তৈরি করতে চান, তবে যেতে যেতে হ'ল হয় একটি ডি ডি সংঘর্ষ সনাক্তকরণ, বা স্বচ্ছ-ভিত্তিক সিস্টেমটি প্রতিটি সংঘর্ষযোগ্য অবজেক্টের সাথে দূরত্ব এবং বেগের পরামিতিগুলির একটি পদ্ধতি রয়েছে, পরিবর্তিত গতিবেগ ফিরে আসে।
আমি কিছুক্ষণ আগে পিনবল খেলা তৈরি করেছি; এটি পিক্সেলও ভিত্তিক ছিল। আমার একটি সংঘর্ষের মানচিত্র ছিল যা সংঘর্ষের ডেটা সবেমাত্র। একটি আনুমানিক সংঘর্ষ স্বাভাবিকভাবে পাওয়া সহজ ছিল:
বলটি ওভারল্যাপিংয়ের সংঘর্ষের মানচিত্রের অঞ্চলটি ধরুন, কেন্দ্রটি সন্ধান করুন, সেই বিন্দু থেকে বল সেন্টারে ভেক্টরটি তৈরি করুন, তারপরে স্বাভাবিক করুন।
আশা করি যা আপনাকে কিছু ধারণা দেয় :)
প্রথমে যদি আপনি পিনবল গেম করেন তবে আপনার সম্ভবত সীমাবদ্ধ বাক্সের চেয়ে আরও বেশি বাউন্ডিং-সিরক্লে-সংঘর্ষ-সনাক্তকরণের প্রয়োজন হবে :-)
একটি পূর্ণাঙ্গ পিনবলের সাথে জড়িত শারীরিক জটিলতার বিষয়টি বিবেচনা করার জন্য আমি পরামর্শ দেব বিদ্যমান 2 ডি ফিজিক ইঞ্জিন। বক্স 2 ডি জাভাস্ক্রিপ্টে বেশ খ্যাতি আছে, অন্যরা থাকতে পারে তবে আমি কোনও ভাল (এবং বিনামূল্যে) এর মুখোমুখি হই নি।
আরকিউ 1: আপনি অবশ্যই আপডেট এবং অঙ্কনের মধ্যে আপনার গেমের শাস্ত্রীয় বিভাজনটি ব্যবহার করবেন (যেমন করি)। এবং আপনি আপডেট কল করতে একটি টাইমার (সেটইন্টারওয়াল / সেটটাইমআউট) এবং / অথবা রিকোয়েস্টএনিমেশনফ্রেম ব্যবহার করেন, তারপরে নিয়মিত ফ্যাশনে আঁকুন। পিনবল এমন এক ধরণের গেম হতে পারে যেখানে আপনি এক টাইমার ড্রাইভিং আপডেট করতে চান এবং অন্যটি ড্র চালাচ্ছেন, যাতে আপনি বিস্তৃত ডিভাইসগুলিতে কাজ করতে প্রতিটি স্তরের স্বতন্ত্রভাবে সমন্বয় করতে পারেন। কারণ ডিভাইসটি খুব ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে অপসারণ (আপডেট + ড্র) করতে পারবেন না: যদি দুটি আপডেটের (ডিটি) মধ্যে সময় খুব বেশি হয়ে যায় তবে পদার্থবিজ্ঞানের ইঞ্জিন সংঘর্ষের হাতছাড়া হতে পারে।
আপনি 2 ডি বনাম 3 ডি বিষয়ের জন্য ভিজ্যুয়াল পিনবল বনাম ভবিষ্যতের পিনবলের দিকে একবার নজর দিতে পারেন। আপনি যদি ভিজ্যুয়াল পিনবল খেলেন (সমস্ত কিছু 2 ডি তৈরি করা হয়) তবে ভবিষ্যতের পিনবল খেলুন বা জেন পিনবলের মতো কিছু আপনি কীভাবে খেলেন তার মধ্যে পার্থক্য বোধ করেন। আমি ব্যক্তিগতভাবে 3 ডি পছন্দ করি তবে আপনার প্রকল্পটি 2 ডি এর পক্ষে আরও উপযুক্ত হতে পারে, কেবল আপনিই এটি সিদ্ধান্ত নিতে সক্ষম হবেন