<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ary599</title>
        <link>https://virgool.io/feed/@ary599</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 15:23:30</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>ary599</title>
            <link>https://virgool.io/@ary599</link>
        </image>

                    <item>
                <title>حرکت دادن یک شی مستطیل شکل با پای گیم</title>
                <link>https://virgool.io/@ary599/%D8%AD%D8%B1%DA%A9%D8%AA-%D8%AF%D8%A7%D8%AF%D9%86-%DB%8C%DA%A9-%D8%B4%DB%8C-%D9%85%D8%B3%D8%AA%D8%B7%DB%8C%D9%84-%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C-%DA%AF%DB%8C%D9%85-r9h2u3auf5d5</link>
                <description>حرکت در چهارجهت با پای گیمپای گیم مجموعه ای از ماژول هایی است که برای نوشتن بازی های ویدیویی طراحی شده است. این پکیج پایتونی شامل ماژول های گرافیکی و صوتی است که از زبان برنامه نویسی پایتون در ساختار خود استفاده می کنند. ساخت ویدیو گیم با پای گیم به تصورات و نیاز توسعه دهنده بستگی دارد با این هدف که او می خواهد چه نوع بازی را با استفاده از این جعبه ابزار توسعه دهد.در این آموزش نحوه حرکت یک شکل مستطیلی را در چهار جهت ، راست و چپ و جهت های بالا و پایین با استفاده از کلید های جهت نمای صفحه کلید پیاده سازی می کنیم.در واقع هدفمان این است که چه طور یک شی مستطیلی را با فشار دادن کلید جهت نمای راست صفحه کلید، به سمت راست حرکت دهیم و همین کار را برای کلید جهت نمای چپ صفحه کلید در نظر می گیریم با این تفاوت که با فشردن آن شی به سمت چپ حرکت می کند و به این ترتیب حرکت افقی حاصل می شود.در ادامه مانند ایجاد حرکت افقی،  حرکت عمودی را با استفاده از کلید های جهت نمای بالا و پایین ایجاد می نماییم.ایده اصلی این کار به این صورت است که با هر بار فشردن کلید های جهت نما، موقعیت شی تغییر و صفحه بروز رسانی می شود به این معنا که رنگ صفحه اصلی پای گیم با رنگ تعیین شده پر می شود و مستطیل در موضع جدید ترسیم می شود. با رنگ شدن صفحه و تریسیم شی در موقعیت جدید این طور به نظر می رسد که شی در حال حرکت است.در مورد جهت های حرکت باید توجه داشت که سازندگان پای گیم مبدا دستگاه مختصات را در گوشه سمت چپ بالای پنجره تعیین کرده اند و جهت مثبت محور افقی به سمت راست و جهت مثبت محور عمودی رو به پایین است.با فشردن کلید جهت نمای راست، شی به سمت راست حرکت می کند و با فشار دادن کلید جهت نمای چپ، شی به سمت چپ تغییر موقعیت می دهد.کلید جهت نمای بالا،  شی را به سمت بالای صفحه حرکت می دهد و ارتفاع آن کاهش می یابد.با فشردن کلید جهت نمای پایین،  شی مستطیلی به سمت پایین حرکت می کند و ارتفاع آن افزایش می یابددر کد نویسی موارد گفته شده، به ترتیب موارد زیر عمل می کنیم:وارد کردن ماژول پای گیمآماده سازی اولیه ماژول پایگیم برای فعال سازی این ماژول تا بتوان از عملکرد آن استفاده کنیم.تعریف کردن پنجره با طول و عرض  مناسبتعیین عنوان پنجرهمشخص کردن مختصات اولیه و طول و عرض و سرعت شی مستطیلیایجاد حلقه تکرار ترسیمایجاد تاخیر زمانی با استفاده از ماژول زمان پای گیم رویداد خروج از حلقهدر این بخش رویداد های مربوط به حرکت در چهار جهت با استفاده از ماژول key پایگیم و متد get_pressed که فشردن دکمه ها را ثبت می کند،مشخص می شود.اگر کلید جهت نمای راست فشار داده شود، به موضع افقی شی به اندازه سرعت تعیین شده اضافه می شود و اگر کلید جهت نمای چپ فشار داده شود،  از موضع افقی به اندازه سرعت داده شده کم می شود.فشردن کلید جهت نمای بالا ، از موقعیت عمودی به اندازه مقدار سرعت داده شده کم می شود و شی به سمت بالا حرکت می کند و فشردن کلید جهت نمای پایین ،  موقعیت عمودی را با سرعت داده شده جمع می کند و شی را به همان اندازه به سمت پایین صفحه هدایت می کند.پر کردن کل صفحه پای گیم با رنگ آسمانیترسیم مستطیل با عرض و ارتفاع معین شده و مختصات لحظه ای با استفاده از ماژول ترسیم شکل پایگیمبروز رسانی صفحه و مقادیر متغیر هادر مرحله، دستور ()pygame.quit  را برای خروج از پایگیم در صورت توقف حلقه اجرا می کنیم.کد:#!/usr/bin/python# -*- coding: utf-8 -*-import pygamepygame.init()#  راه اندازی پنجره برای نمایش تصاویر و اشکالscreen = pygame.display.set_mode((600,600))# مشخص کردن عنوان پنجرهpygame.display.set_caption(&quot;Moving&quot;)# موقیعیت اولیه مستطیلx = 250y = 250# طول و عرض مستطیلwidth = 50height = 30# سرعت مستطیلvel = 10running = Truewhile 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 &gt; 0:         x -= vel          # افزایش موقعیت افقی با این شرط که از سمت راست صفحه خارج نشود        if keys[pygame.K_RIGHT] and x &lt; 600 - width:         x += vel          # کاهش موقعیت عمودی با این شرط که از بالا صفحه بیرون نرود        if keys[pygame.K_UP] and y &gt; 0:         y -= vel          # افزایش موقعیت عمودی با این شرط که از پایین صفحه عبور نکند    if keys[pygame.K_DOWN] and y &lt; 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()  تصویر خروجی کد</description>
                <category>ary599</category>
                <author>ary599</author>
                <pubDate>Sat, 30 Mar 2024 05:05:26 +0330</pubDate>
            </item>
            </channel>
</rss>