একটি কম্পিউটার গেম একটি অন্তহীন লুপ:
- আপডেট: গেম স্টেটের এক অতি ক্ষুদ্র সময়ের স্লাইস (১/৮০ সেকেন্ডের মতো) এর অগ্রিম করুন।
- বর্তমান গেমের স্থিতি আঁকুন।
এর বিভিন্নতা রয়েছে। কিছু গেমের প্রতিটি পেইন্টের মধ্যে আরও আপডেট থাকে, বা বিভিন্ন মেশিনে গেমের প্রবাহকে সমানভাবে মসৃণ করতে এগুলি পরিবর্তিত হতে পারে। তবে তা প্রযুক্তিগত বিবরণ।
আপডেট পর্ব যা প্রতি সেকেন্ডে 50 থেকে 100 বারের মধ্যে ঘটে (হ্যাঁ এটি প্রায়শই হয়) এটি করে:
- গেমস পদার্থবিজ্ঞানের আপডেট করুন। বলুন যে একজন অভিনেতার বেগ আছে। আপডেটটি তাকে সঠিক দিকে এক সামান্য সরানো উচিত। এছাড়াও, আপনি যদি পদার্থবিজ্ঞানের ইঞ্জিন ব্যবহার করেন তবে এটি অন্যান্য অ্যাক্টো বা বাধাগুলির সাথে সংঘর্ষের জন্য পরীক্ষা করা উচিত।
- গেমস বিধি আপডেট করুন। পদার্থবিজ্ঞানের পরীক্ষা নয় এটি এটিকেই একটি খেলা করে তোলে। বলুন যে একটি গুলি খেলোয়াড় অভিনেতাকে আঘাত করেছিল। গেমের নিয়মগুলি খেলোয়াড়কে স্বাস্থ্যের এক্স পয়েন্ট এবং বুলেটটি অদৃশ্য হওয়ার জন্য বলে দেয়।
- এআই আপডেট। কখনও কখনও কম্পিউটার নিয়ন্ত্রিত অভিনেতাদের করণীয় অনুধাবন করা উচিত। বাম না ডান? সুন্দর জায়গা হওয়ার জন্য একটি পথ সন্ধান করুন। একটি অস্ত্র আগুন।
- ইনপুট নিয়ন্ত্রণ। কীবোর্ডে টিপানো বোতামগুলি অনুযায়ী প্লেয়ার অভিনেতা আপডেট করুন।
- দৃশ্য গ্রাফ আপডেট করুন। এটি অ্যানিমেশনটিকে এক ধাপ এগিয়ে নিয়ে যেতে বা খেলোয়াড়ের এখন 10 পয়েন্ট কম স্বাস্থ্য রয়েছে তা দেখানোর জন্য জিইউআই আপডেট করা যেতে পারে। এটি কেবল উদ্দেশ্যটি হ'ল গেমটি দেখতে সুন্দর লাগছে।
আপনি কোথায় শুরু করবেন?
গ্রাফিকাল গেমের প্রাথমিক প্রয়োজন হ'ল প্রোগ্রাম গ্রাফিক্স। নিশ্চিত হয়ে নিন যে আপনি একটি উইন্ডো খুলতে পারেন এবং এতে একটি বল আঁকতে পারেন।
আমি ধরে নিলাম আপনি কিছু ধরণের ক্লাস করতে পারেন। একটি বল ক্লাস করুন। এর নিম্নলিখিত সদস্যগণ রয়েছে: x, y, ডেল্টেক্স, ডেল্টাওয়াই। সমস্তগুলি পূর্ণসংখ্যা এবং পিক্সেল স্কেলগুলিতে। এখন, এই লুপ লিখুন।
forever, do this {
start measure time (in milliseconds)
//physics part
add deltaX to x
add deltaY to y
if x is bigger than the screen width, assign -deltaX to deltaX
if y is bigger than the screen height, assign -deltaY to deltaY
if x is less than 0, assign -deltaX to deltaX
if y is less than 0, assign -deltaY to deltaY
//paint
paint the ball at x, y
stop measuring time, assign this to workTime
make the thread sleep for (25 - workTime) milliseconds
}
এটি উইন্ডোস সীমানা বল বাউন্স করতে হবে। এটি এখনও একটি খেলা নয় , বরং একটি শারীরিক সিমুলেশন। যদি আপনি বল শ্রেণীর অভ্যন্তরে বল পদার্থবিজ্ঞানের আপডেট লিখেন তবে কয়েকটি বল যুক্ত করা সহজ। এগুলিকে একটি তালিকায় সংরক্ষণ করুন এবং প্রতিটি ফ্রেমের জন্য প্রতিটি একটি আপডেট এবং রঙ করুন।
আপনি একটি প্যাডেল যুক্ত করতে পারেন (এর জন্য পদার্থবিজ্ঞানের সিমুলেট করুন এবং এটি মাউস বা কীবোর্ডের সাহায্যে নিয়ন্ত্রণযোগ্য করে তুলুন) এবং একটি গেমের উদ্দেশ্য যেমন বলটি বাম প্রাচীরে পৌঁছানো থেকে থামানো। গেমটি সময়ের সাথে আরও বেশি বল যোগ করলে অসুবিধা আরও বাড়বে। তোমার একটা খেলা আছে
(25 - ওয়ার্কটাইম) মিলিসেকেন্ডের জন্য কেন ঘুমাবেন? আপনি যদি এটির মতো এটি করেন তবে সিমুলেশনটি প্রতি সেকেন্ডে 40 টি আপডেট এবং পেইন্টগুলির বিপরীত গতিতে চলবে। এটি বেশ মসৃণ হবে। আপনি যদি ঘুমের অংশটি এড়িয়ে যান তবে অ্যানিমেশনটি ঝাঁকুনিযুক্ত হবে এবং 100% সিপিইউ গ্রহণ করবে। এছাড়াও, বলের গতি নির্ভর করে এটি চালিত মেশিনের গতির উপর। এখন, বল উল্লম্ব গতি প্রতি সেকেন্ডে 40 * ডেল্টাওয়াই পিক্সেল।