فهرست مطالب:

اولین بازی مسابقه ای خود را ایجاد کنید: 10 مرحله
اولین بازی مسابقه ای خود را ایجاد کنید: 10 مرحله

تصویری: اولین بازی مسابقه ای خود را ایجاد کنید: 10 مرحله

تصویری: اولین بازی مسابقه ای خود را ایجاد کنید: 10 مرحله
تصویری: 🤯❌آخرای بازی که تا حالا کسی ندیده است #shorts 2024, جولای
Anonim
Image
Image
تصویر
تصویر

اگر برنامه نویسی پایتون را انجام داده اید و می خواهید بازی بنویسید ، ممکن است در Pygame Zero داشته باشید.

در این آموزش ما یک بازی مسابقه ای ساده می نویسیم.

مرحله 1: مرور کلی

ماژول Pygame توابع زیادی را اضافه می کند که به شما در نوشتن بازی در پایتون کمک می کند.

Pygame Zero یک قدم جلوتر می رود تا به شما اجازه دهد از فرایند دشوار ایجاد همه آن حلقه های بازی و تنظیم ساختار برنامه خود بگذرید.

Pygame Zero برای کسانی که مایل به نوشتن بازی های رایانه ای روی رزبری پای یا هر دستگاه لینوکس هستند ، انتخابی عالی است.

شما نیاز دارید:

  • دستگاهی که سیستم عامل لینوکس را اجرا می کند
  • ویرایشگر برای نوشتن برنامه پایتون
  • صفحه کلید
  • کمی تخیل

فایل ها:

github.com/AhmNouira/-Racing-Game

مرحله 2: پیش نیازها

ابتدا از لپ تاپ خود با سیستم عامل اوبونتو 18.04 استفاده می کنم. سپس بازی را روی Raspberry Pi در مرحله 8 اجرا می کنیم.

قبل از ادامه این آموزش ، مطمئن شوید که به عنوان یک کاربر با امتیازات sudo وارد شده اید.

نصب pip برای پایتون 3

با به روز رسانی لیست بسته ها با استفاده از دستور زیر شروع کنید:

به روز رسانی sudo apt

برای نصب pip برای پایتون 3 از دستور زیر استفاده کنید:

sudo apt python3-pip را نصب کنید

با بررسی نسخه pip ، نصب را تأیید کنید:

pip3 -تبدیل

نصب Pygame Zero

pip3 نصب pgzero --user

با این کار Pygame نیز نصب می شود. بسته های Pygame از قبل کامپایل شده است

بنابراین اولین قدم در سفر شما باز کردن Python 3 IDLE یا ویرایشگر پایتون مورد علاقه شما خواهد بود.

مرحله 3: "سلام جهان" در Pygame Zero

به طور پیش فرض ، پنجره Pygame Zero در اندازه 800 پیکسل عرض و 600 پیکسل ارتفاع باز می شود. می توانید سفارشی کنید

اندازه پنجره شما ، دو متغیر از پیش تعیین شده را می توانید تنظیم کنید ، اگر WIDTH = 700 HIGH = 800 را وارد کنید.

Pygame zero توابع از پیش تعریف شده ای را برای مدیریت حلقه بازی ارائه می دهد:

تابع draw ()

ما می توانیم این تابع را همانطور که معمولاً یک تابع در پایتون تعریف می کنیم در برنامه خود بنویسیم.

Pygame Zero از قوانین قالب بندی مشابه Python پیروی می کند ، بنابراین شما باید مراقب باشید که کد خود را به صورت صاف وارد کنید.

#!/usr/bin/python3 # مترجم را تنظیم کنید

import pgzrun # واردات ماژول pgzero WIDTH = 700 # عرض پنجره HEIGHT = 800 # ارتفاع پنجره def draw (): # pygame zero draw function screen.fill ((128، 128، 128)) # صفحه را با RGB پر کنید screen.draw.text ("سلام جهان!" ، (270 ، 320) ، # قرعه کشی "سلام جهان!" color = (255 ، 255 ، 255) ، fontsize = 40) pgzrun.go ()

اول از همه باید فایل برنامه خود را ذخیره کرده و نامی برای آن بگذارید.

سپس پنجره ترمینال را باز کنید ، به محل فایل خود بروید و تایپ کنید:

./.py

مرحله 4: ترسیم بازیگر خود

بازیگر خود را ترسیم کنید
بازیگر خود را ترسیم کنید

اکنون که مجموعه صحنه خود را آماده کرده ایم ، می توانیم بازیگران خود را بسازیم ، آنها اشیاء پویایی در Pygame Zero هستند.

ما می توانیم یک بازیگر را با تایپ در بالای برنامه بارگذاری کنیم:

ماشین = بازیگر ("مسابقه")

در Pygame Zero تصاویر ما باید در یک دایرکتوری به نام images در کنار فایل برنامه ما ذخیره شوند. بنابراین بازیگر ما به دنبال یک فایل تصویری در پوشه images به نام racecar.png است. ممکن است یک فایل GIF یا-j.webp

با تایپ کردن موارد زیر می توانید موقعیت آن را روی صفحه تنظیم کنید.

car.pos = 350 ، 560

پس از آن در تابع draw () ما می توانیم تایپ کنیم

car.draw () # ماشین مسابقه ما را در موقعیت مشخص شده بکشید

برنامه کامل به این صورت خواهد بود:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # عرض پنجره HEIGHT = 800 # ارتفاع ماشین پنجره = بازیگر ("racecar" car.pos = 350، 560 def draw (): # pygame zero draw draw screen.fill ((128، 128 ، 128)) # صفحه را با car.draw () pgzrun.go () پر کنید

برنامه خود را آزمایش کنید تا مطمئن شوید که این برنامه کار می کند.

مرحله 5: بازیگر را کنترل کنید

بازیگر را کنترل کنید
بازیگر را کنترل کنید

هنگامی که ماشین خود را روی صفحه نمایش می کشیم ، مرحله بعدی این است که بازیکن را قادر به حرکت آن کنیم.

ما می توانیم این کار را با فشار کلید انجام دهیم. ما می توانیم وضعیت این کلیدها را در یک تابع از پیش تعریف شده دیگر به نام update () بخوانیم.

تابع Update ()

این عملکرد به طور مداوم در حین بازی در حال بررسی است.

ما باید برخی از کد ها را برای تشخیص فشارهای کلیدهای کلیدهای جهت دار و همچنین انجام کاری در مورد آن بنویسیم.

بنابراین ما این تابع را به برنامه خود اضافه می کنیم

def update ():

if keyboard.left: car.x -= 2 if keyboard.right: car.x += 2 if keyboard.up: car.y -= 2 if keyboard.down: car.y += 2

این خطوط کد ماشین بازیگر را به چپ ، راست ، جلو و عقب حرکت می دهد.

مرحله 6: ساخت پیست

ساخت پیست
ساخت پیست

اکنون که ما خودرویی داریم که می توانیم آن را هدایت کنیم ، برای پیاده روی به پیست نیاز داریم.

ما قصد داریم آهنگ خود را از بازیگران ، یک ردیف در یک زمان بسازیم. برای پیگیری بازیگرانی که خلق می کنیم ، باید فهرستی تهیه کنیم.

ما همچنین باید چند متغیر دیگر برای آهنگ تنظیم کنیم.

سپس بیایید یک تابع جدید به نام makeTrack () بسازیم ، این تابع یک آهنگ Actor در سمت چپ و یکی در سمت راست اضافه می کند ، هر دو از تصویر bare-p.webp

trackLeft = # لیست برای ذخیره نوارهای چپ

trackRight = # لیست برای ذخیره میله های راست trackCount = 0 # شمارش تعداد بارها trackPosition = 350 trackWidth = 150 # عرض بین نوارهای چپ و راست def makeTrack (): # تابع برای ایجاد یک بری در مسیر جهانی چپ و راست شمارش ، trackLeft ، trackRight ، trackPosition ، trackWidth trackLeft.append (بازیگر ("برهنه" ، pos = (trackPosition-trackWidth ، 0))) trackRight.append (بازیگر ("برهنه" ، pos = (trackPosition + trackWidth ، 0))) trackCount += 1

کار بعدی که ما باید انجام دهیم این است که قسمت های مسیر را روی صفحه به سمت ماشین حرکت دهیم.

بیایید یک تابع جدید بنام updateTrack () بنویسیم ، این تابع محل نمایش بلوک های آهنگ را به روز می کند. قطعات آهنگ توسط اعداد تصادفی ایجاد می شوند ، بنابراین هر بازی متفاوت است.

trackDriction = غلط

SPEED = 4 # سرعت بازی را از واردات تصادفی randint # وارد می کند 32: if trackDirection == نادرست: trackPosition += 16 if trackDirection == True: trackPosition - = 16 if randint (0، 4) == 1: trackDirection = not trackDirection if trackPosition> 700 - trackWidth: trackDirection = True اگر trackPosition < trackWidth: trackDirection = makeTrack کاذب () # ایجاد یک آهنگ جدید در بالای صفحه

لطفاً به فایل زیپ زیر با نام "RaceGameDemo" مراجعه کنید.

اگر در حال حاضر کد خود را اجرا کنیم ، باید یک پیست را ببینیم که به سمت ماشین حرکت می کند. تنها مشکلی که وجود دارد این است که ما می توانیم خودرو را از روی موانع پیست حرکت دهیم و می خواهیم خودرو را در برخی از آنها با تشخیص برخورد نگه داریم.

مرحله 7: تصادف اتومبیل

تصادف اتومبیل
تصادف اتومبیل
تصادف اتومبیل
تصادف اتومبیل
تصادف اتومبیل
تصادف اتومبیل

ما باید مطمئن شویم که ماشین ما به پیست بازیگران دست نمی زند.

ما همچنین می توانیم با استفاده از متد colliderect () در تابع updateTrack () ، برخورد را آزمایش کنیم.

در این بازی ما سه حالت مختلف برای بازی ذخیره شده در بازی متغیر خود داریم:

  • gameStatus == 0 # بازی در حال اجرا است
  • gameStatus == 1 # تصادف اتومبیل
  • gameStatus == 2 # بازی تمام شد

برای پاسخ به متغیر gameStatus ، ما باید تابع draw () و تابع update () خود را تغییر دهیم.

لمس های پایانی

تنها کاری که ما باید انجام دهیم این است که اگر gameStatus روی 1 یا 2 تنظیم شده است چیزی را نمایش دهیم ، به عنوان مثال ما باید قرمز را نمایش دهیم

در صورت تصادف خودرو پرچم ما می توانیم این کار را با کد زیر انجام دهیم:

screen.blit ("redflag" ، (230 ، 230))

برای اینکه ببینیم ماشین به پایان رسیده است ، باید تعداد قسمت های ایجاد شده را بشماریم و شاید وقتی به 200 رسیدیم ، gameStatus را روی 2 تنظیم کنید. سپس پرچم چهارخانه را نمایش دهید:

screen.blit ("finishflag" ، (230 ، 230))

ما همچنین مقداری متن را مانند نمره فعلی بازی در صفحه نمایش می دهیم.

فهرست کاملی از کد را مشاهده کنید تا ببینید چگونه همه اینها با هم متناسب است.

مرحله 8: بازی را روی Raspberry Pi اجرا کنید

بازی را روی Raspberry Pi اجرا کنید
بازی را روی Raspberry Pi اجرا کنید
بازی را روی Raspberry Pi اجرا کنید
بازی را روی Raspberry Pi اجرا کنید

در Raspberry Pi pgzero از زمان انتشار Raspbian Jessie در سپتامبر 2015 به طور پیش فرض نصب شده است.

کافی است رزبری پای خود را با استفاده از دستور زیر به روز کنید:

sudo apt-get update

به محل پرونده خود بروید و ترمینال را تایپ کنید.

pgzrun.py

مرحله 9: آیا شما برنده شدید؟

بردی؟
بردی؟

با تغییر متغیر trackWidth می توانید بازی را آسان تر یا سخت تر کنید تا عرض آهنگ متفاوت شود. می توانید مقدار SPEED را تغییر دهید تا آهنگ سریعتر یا کندتر حرکت کند.

مرحله 10: نتیجه گیری

Pygame Zero برای کسانی که می خواهند نوشتن بازی های رایانه ای را شروع کنند یک انتخاب عالی است.

اگر سوالی دارید ، البته می توانید نظر خود را بنویسید. برای دیدن اطلاعات بیشتر در مورد آثار من ، لطفاً از کانال من دیدن کنید:

myYouTube

myTwitter

myLinkedin

با تشکر از شما برای خواندن این مطلب آموزنده ^^ و روز خوبی داشته باشید. می بینمت. احمد نویرا

توصیه شده: