python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
keys = [False, False, False, False]

playerpos=[100,100]
کد بالا آرایه ای از کلیدهای فشرده شده را به ترتیب کلید جهت بالا، چپ، پایین و راست ثبت می کند و متغیر playerpos هم مکان بازیکن یا همان خرگوش را مشخص می کند. از آنجا که در بازی، خرگوش به موقعیت های مختلف حرکت می کند، داشتن متغیری که شامل موقعیت خرگوش باشد و سپس به سادگی خرگوش را به آن موقعیت منتقل کند، آسان تر است. اکنون باید کد موجود برای ترسیم خرگوش را برای استفاده از متغیر جدید playerpos تغییر دهید. خط زیر را در قسمت شماره 6 تغییر دهید:

screen.blit(player, (100,100))
به جای این دستور بالا، دستور زیر را قرار دهید.

screen.blit(player, playerpos)

در مرحله بعد، آرایه کلیدها را بر اساس فشردن کلیدها به روز کنید. PyGame با افزودن توابع event.key تشخیص فشارهای کلید را آسان می کند. در انتهای بخش شماره 8، بلافاصله پس از بررسی بلاک event.type == pygame.QUIT، این کد را (در همان سطح تورفتگی pygame.QUIT if block پس از دستور exit(0)) قرار دهید:
شاید فکر کنید این کدها در ساخت بازی با پایتون پیچیده هستند اما اگر آن ها را به عبارات if تقسیم کنید، چندان پیچیده نیست. ابتدا بررسی کنید که آیا کلید فشار داده شده، آزاد شده است یا خیر؟ سپس بررسی می کنید که کدام کلید فشرده یا آزاد می شود، و اگر کلید فشرده یا آزاد شده، یکی از کلیدهایی است که از آن استفاده می کنید، متغیر کلیدها را متناسب با آن به روز می کنید. در نهایت، شما باید متغیر playerpos را در پاسخ به فشارهای کلید به روز کنید. کد زیر را به پایان game.py اضافه کنید (با یک سطح تورفتگی، آن را در همان سطح حلقه for قرار دهید):
این کد به سادگی بررسی می کند که کدام یک از کلیدها فشرده می شوند و از موقعیت x یا y خرگوش (بسته به کلید فشرده شده) اضافه یا کم می کند تا بازیکن حرکت کند. بازی را اجرا کنید و باید بتوانید با جهت های کیبرد خرگوش را حرکت دهید.
🚀 دوره آموزشی علـــــم داده (Data Science)

🔥 نیاز روز بــــازار کــــار ایــــــران و خـــارج
🏙 مناسب برای تمام رشته‌ها
🖥 آموزش با نرم افزارها و زبــان‌های R، Python و SQL Server
🌟 با گواهینامه مورد تایید وزارت علوم و معتبر
🔬 آموزش #آنلاین و با موردکاوی‎های واقعی و پروژه

🚧 در خــــانه بمانید و آمـــــوزش ببینید

🔗 مشاهده جزئیات دوره و مشاوره رایگان:
https://tihe.ac.ir/data-science-course/
This media is not supported in your browser
VIEW IN TELEGRAM
مرحله چهارم: چرخش خرگوش

خوب تا الان خرگوش می تواند با فشار دادن کلیدها حرکت کند، اما اگر بتوان از ماوس برای چرخاندن خرگوش به جهت مورد نظر استفاده کرد، عالی خواهد بود. برای اجرای این عمل نیاز به محاسبات مثلثاتی داریم. به تصویر زیر توجه کنید:
در تصویر بالا، اگر مختصات (5،3) موقعیت خرگوش و مختصات (2،4) موقعیت فعلی ماوس باشد، می توان با اعمال تابع مثلثاتی atan2 به تفاوت در زاویه چرخش (z) را پیدا کنید. پس با فاصله بین دو نقطه و تابع tan به سادگی خرگوش بازی در جهت ماوس خواهد چرخید.

اگر کمی در مورد این قسمت گیج شده اید، نگران نباشید و ادامه دهید بازی سازی نیاز به درک کامل از ریاضیات دارد به همین دلیل است که باید در کلاس ریاضی حواستان جمع باشد. البته این راهکار را همیشه در برنامه نویسی بازی استفاده خواهید کرد. اکنون باید این مفهوم را در ساخت بازی با پایتون به کار بگیرید. برای انجام این کار، می توانید از تابع PyGame Surface.rotate (degree) استفاده کنید. به خاطر داشته باشید که مقدار Z در رادیان است. تابع atan2 در کتابخانه ریاضی پایتون وجود دارد؛ بنابراین ابتدا کد زیر را به انتهای بخش شماره 1 اضافه کنید:

import math

سپس، آخرین خط در بخش 6 (خط player.blit) را با کد زیر جایگزین کنید:
بیایید ساختار اساسی کد بالا را مرور کنیم. ابتدا موقعیت ماوس و خرگوش را دریافت می کنید. سپس آن ها را وارد تابع atan2 می کنید. پس از آن، زاویه دریافتی از تابع atan2 را از رادیان به درجه تبدیل می کنید (رادیان را تقریباً در 57.29 یا 360/2π ضرب کنید). از آنجا که خرگوش چرخانده می شود، موقعیت آن تغییر می کند. بنابراین اکنون موقعیت جدید خرگوش را محاسبه کرده و خرگوش را روی صفحه نمایش ترسیم می کنیم.

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

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

acc=[0,0]

arrows=[]
متغیر اول صحت بازیکن یا خرگوش بازی را ردیابی می کند و آرایه دوم تمام پیکان ها را ردیابی می کند. متغیر دقت در اصل لیستی از تعداد شلیک های شلیک شده و تعداد گورکن های اصابت شده است. بعداً، ما از این اطلاعات برای محاسبه درصد دقت استفاده خواهیم کرد. در این مرحله، تصویر پیکان یا bullet را در انتهای بخش شماره 3 بارگذاری کنید:

arrow = pygame.image.load("resources/images/bullet.png")

حالا وقتی کاربر روی ماوس کلیک می کند، یک پیکان باید شلیک شود. موارد زیر را به عنوان بخش رویداد جدید به انتهای بخش 8 اضافه کنید:
این کد بررسی می کند که آیا ماوس کلیک شده است یا خیر؛ موقعیت ماوس را می گیرد و چرخش پیکان را بر اساس موقعیت چرخانده شده خرگوش و موقعیت مکان نما محاسبه می کند. این مقدار چرخش در آرایه arrows ذخیره می شود. در مرحله بعد، باید پیکان ها را روی صفحه ترسیم کنید. کد زیر را پس از بخش شماره 6.1 اضافه کنید: