ary599
ary599
خواندن ۴ دقیقه·۸ ماه پیش

حرکت دادن یک شی مستطیل شکل با پای گیم

حرکت در چهارجهت با پای گیم
حرکت در چهارجهت با پای گیم


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

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

ایده اصلی این کار به این صورت است که با هر بار فشردن کلید های جهت نما، موقعیت شی تغییر و صفحه بروز رسانی می شود به این معنا که رنگ صفحه اصلی پای گیم با رنگ تعیین شده پر می شود و مستطیل در موضع جدید ترسیم می شود. با رنگ شدن صفحه و تریسیم شی در موقعیت جدید این طور به نظر می رسد که شی در حال حرکت است.

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

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

  • وارد کردن ماژول پای گیم
  • آماده سازی اولیه ماژول پایگیم برای فعال سازی این ماژول تا بتوان از عملکرد آن استفاده کنیم.
  • تعریف کردن پنجره با طول و عرض مناسب
  • تعیین عنوان پنجره
  • مشخص کردن مختصات اولیه و طول و عرض و سرعت شی مستطیلی
  • ایجاد حلقه تکرار ترسیم
  • ایجاد تاخیر زمانی با استفاده از ماژول زمان پای گیم
  • رویداد خروج از حلقه
  • در این بخش رویداد های مربوط به حرکت در چهار جهت با استفاده از ماژول key پایگیم و متد get_pressed که فشردن دکمه ها را ثبت می کند،مشخص می شود.اگر کلید جهت نمای راست فشار داده شود، به موضع افقی شی به اندازه سرعت تعیین شده اضافه می شود و اگر کلید جهت نمای چپ فشار داده شود، از موضع افقی به اندازه سرعت داده شده کم می شود.فشردن کلید جهت نمای بالا ، از موقعیت عمودی به اندازه مقدار سرعت داده شده کم می شود و شی به سمت بالا حرکت می کند و فشردن کلید جهت نمای پایین ، موقعیت عمودی را با سرعت داده شده جمع می کند و شی را به همان اندازه به سمت پایین صفحه هدایت می کند.
  • پر کردن کل صفحه پای گیم با رنگ آسمانی
  • ترسیم مستطیل با عرض و ارتفاع معین شده و مختصات لحظه ای با استفاده از ماژول ترسیم شکل پایگیم
  • بروز رسانی صفحه و مقادیر متغیر ها
  • در مرحله، دستور ()pygame.quit را برای خروج از پایگیم در صورت توقف حلقه اجرا می کنیم.

کد:


#!/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()


تصویر خروجی کد
تصویر خروجی کد


پای گیمحرکتpygamelearn pygame
شاید از این پست‌ها خوشتان بیاید