پای گیم مجموعه ای از ماژول هایی است که برای نوشتن بازی های ویدیویی طراحی شده است. این پکیج پایتونی شامل ماژول های گرافیکی و صوتی است که از زبان برنامه نویسی پایتون در ساختار خود استفاده می کنند. ساخت ویدیو گیم با پای گیم به تصورات و نیاز توسعه دهنده بستگی دارد با این هدف که او می خواهد چه نوع بازی را با استفاده از این جعبه ابزار توسعه دهد.
در این آموزش نحوه حرکت یک شکل مستطیلی را در چهار جهت ، راست و چپ و جهت های بالا و پایین با استفاده از کلید های جهت نمای صفحه کلید پیاده سازی می کنیم.
در واقع هدفمان این است که چه طور یک شی مستطیلی را با فشار دادن کلید جهت نمای راست صفحه کلید، به سمت راست حرکت دهیم و همین کار را برای کلید جهت نمای چپ صفحه کلید در نظر می گیریم با این تفاوت که با فشردن آن شی به سمت چپ حرکت می کند و به این ترتیب حرکت افقی حاصل می شود.در ادامه مانند ایجاد حرکت افقی، حرکت عمودی را با استفاده از کلید های جهت نمای بالا و پایین ایجاد می نماییم.
ایده اصلی این کار به این صورت است که با هر بار فشردن کلید های جهت نما، موقعیت شی تغییر و صفحه بروز رسانی می شود به این معنا که رنگ صفحه اصلی پای گیم با رنگ تعیین شده پر می شود و مستطیل در موضع جدید ترسیم می شود. با رنگ شدن صفحه و تریسیم شی در موقعیت جدید این طور به نظر می رسد که شی در حال حرکت است.
در مورد جهت های حرکت باید توجه داشت که سازندگان پای گیم مبدا دستگاه مختصات را در گوشه سمت چپ بالای پنجره تعیین کرده اند و جهت مثبت محور افقی به سمت راست و جهت مثبت محور عمودی رو به پایین است.با فشردن کلید جهت نمای راست، شی به سمت راست حرکت می کند و با فشار دادن کلید جهت نمای چپ، شی به سمت چپ تغییر موقعیت می دهد.کلید جهت نمای بالا، شی را به سمت بالای صفحه حرکت می دهد و ارتفاع آن کاهش می یابد.با فشردن کلید جهت نمای پایین، شی مستطیلی به سمت پایین حرکت می کند و ارتفاع آن افزایش می یابد
در کد نویسی موارد گفته شده، به ترتیب موارد زیر عمل می کنیم:
کد:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pygame
pygame.init()
# راه اندازی پنجره برای نمایش تصاویر و اشکال
screen = pygame.display.set_mode((600,600))
# مشخص کردن عنوان پنجره
pygame.display.set_caption("Moving")
# موقیعیت اولیه مستطیل
x = 250
y = 250
# طول و عرض مستطیل
width = 50
height = 30
# سرعت مستطیل
vel = 10
running = True
while running:
# تاخیر زمانی
pygame.time.delay(10)
# حلقه رویداد
for event in pygame.event.get():
# شرط خروج از حلقه
if event.type == pygame.QUIT:
running = False
# ثبت کلید های فشار داده شده
keys = pygame.key.get_pressed()
# کاهش موقعیت افقی با این شرط که از سمت چپ صفحه خارج نشود
if keys[pygame.K_LEFT] and x > 0:
x -= vel
# افزایش موقعیت افقی با این شرط که از سمت راست صفحه خارج نشود
if keys[pygame.K_RIGHT] and x < 600 - width:
x += vel
# کاهش موقعیت عمودی با این شرط که از بالا صفحه بیرون نرود
if keys[pygame.K_UP] and y > 0:
y -= vel
# افزایش موقعیت عمودی با این شرط که از پایین صفحه عبور نکند
if keys[pygame.K_DOWN] and y < 600 - height:
y += vel
# پر کردن صفحه با رنگ آبی آسمانی
screen.fill((135, 206, 250))
# ترسیم مستطیل روی صفحه با موقعیت و لحظه ای و طول و عرض داده شده
pygame.draw.rect(screen, (40, 150, 60), (x, y , width, height))
# بروز رسانی متغیرها
pygame.display.update()
# خروج از پایگیم در صورت خروج از حلقه
pygame.quit()