با یادگیری این روال های اساسی طراحی، توسعه بازی خود را از راه درست شروع کنید.
PyGame یک کتابخانه بازی سازی قدرتمند و محبوب برای پایتون است. مجموعه ای از ابزارها و عملکردها را فراهم می کند که ایجاد بازی ها و سایر برنامه های تعاملی را آسان تر می کند. یکی از ویژگی های مفید PyGame توانایی آن در کشیدن اشیا و اشکال است.
ماژول pygame.draw
در PyGame، رسم اشیا و اشکال یک فرآیند ساده است. می توانید از ماژول pygame.draw برای کشیدن اشکالی مانند مستطیل، دایره، خطوط و غیره استفاده کنید.
قبل از شروع، مطمئن شوید که پیپ را روی دستگاه خود نصب کرده اید، سپس از این دستور برای نصب ماژول PyGame استفاده کنید:
pip install pygame
ترسیم اشکال پایه
ماژول pygame.draw چندین توابع را ارائه می دهد که به شما امکان می دهد اشکال اصلی را ترسیم کنید. هر تابع مجموعه ای از پارامترها را برای تعریف شکل و موقعیت آن می گیرد.
- rect(): با استفاده از این تابع می توانید یک مستطیل رسم کنید. این یکی از رایج ترین شکل ها در بازی ها است. می توانید سکوها، دیوارها و سایر اشیاء را با مستطیل ایجاد کنید. این تابع چهار پارامتر دارد: سطح (سطحی که مستطیل روی آن کشیده می شود)، رنگ، راست (یک شی Rect) و عرض (ضخامت خط). pygame.draw.rect (سطح، رنگ، راست، عرض)
- circle(): یک دایره رسم کنید. به چهار پارامتر سطح، رنگ، پوس (مرکز دایره) و شعاع نیاز دارد. pygame.draw.circle (سطح، رنگ، پوز، شعاع)
- polygon(): یک چند ضلعی رسم کنید. چهار پارامتر را می طلبد: سطح، رنگ، نقاط (لیستی از نقاطی که شکل چند ضلعی را مشخص می کنند) و عرض. pygame.draw.polygon (سطح، رنگ، نقاط، عرض)
- line(): یک خط بکشید. به چهار پارامتر سطح، رنگ، start_pos و end_pos نیاز دارد. pygame.draw.line (سطح، رنگ، start_pos، end_pos)
pygame.draw.rect(surface, color, rect, width)
pygame.draw.circle(surface, color, pos, radius)
pygame.draw.polygon(surface, color, points, width)
pygame.draw.line(surface, color, start_pos, end_pos)
شما می توانید لیست کامل توابع و پارامترهای آنها را در اسناد رسمی PyGame برای ماژول قرعه کشی بیابید.
ترسیم اشکال پیچیده
علاوه بر اشکال اصلی، PyGame همچنین به شما اجازه می دهد تا اشکال پیچیده مانند کمان، بیضی و aalines را ترسیم کنید.
- arc(): این تابع یک قوس روی یک سطح می کشد. قوس بخشی از دایره است. به شش پارامتر سطح، رنگ، راست، شروع_زاویه، انتهای_زاویه و عرض نیاز دارد. زاویه ها را بر حسب درجه مشخص کنید، با 0 درجه به سمت راست و افزایش در جهت عقربه های ساعت. پارامتر عرض ضخامت قوس را مشخص می کند. pygame.draw.arc (سطح، رنگ، راست، شروع_زاویه، انتهای_زاویه، عرض)
- ellipse(): یک بیضی روی یک سطح بکشید. بیضی یک دایره کشیده است. به چهار پارامتر سطح، رنگ، راست و عرض نیاز دارد. pygame.draw.ellipse (سطح، رنگ، راست، عرض)
- aaline(): برای کشیدن یک خط ضد مستعار روی یک سطح استفاده می شود. Anti-aliasing تکنیکی است که برای صاف کردن لبه های یک شکل استفاده می شود، بنابراین طبیعی تر به نظر می رسد. چهار پارامتری که تابع line() را منعکس می کند: سطح، رنگ، start_pos و end_pos نیاز دارد. pygame.draw.aaline (سطح، رنگ، start_pos، end_pos)
pygame.draw.arc(surface, color, rect, start_angle, end_angle, width)
pygame.draw.ellipse(surface, color, rect, width)
pygame.draw.aaline(surface, color, start_pos, end_pos)
ایجاد اشکال تو در تو در PyGame
یکی دیگر از ویژگی های جالب PyGame امکان رسم اشکال در داخل شکل دیگر است. شما می توانید این کار را با استفاده از ترکیبی از توابع اصلی ترسیم شکل در PyGame انجام دهید.
برای کشیدن یک شکل در داخل یک شکل دیگر، ابتدا می توانید شکل داخلی را بکشید و سپس شکل بیرونی را روی آن بکشید. شکل داخلی می تواند هر شکل اصلی باشد، مانند مستطیل یا دایره.
به عنوان مثال، برای کشیدن یک مستطیل در داخل یک دایره، می توانید از تابع pygame.draw.circle() برای رسم دایره استفاده کنید و سپس از تابع pygame.draw.rect() برای کشیدن مستطیل بالای آن استفاده کنید.
می توانید نمونه کدهای زیر را در این مخزن GitHub پیدا کنید.
در اینجا یک نمونه کد کد است که نحوه رسم مستطیل را در داخل یک دایره نشان می دهد:
import pygame
# Initialize pygame
pygame.init()
# Create a window
window = pygame.display.set_mode((800, 600))
# Create a circle
circle_rect = pygame.draw.circle(window, (255, 255, 255), (400, 300), 100)
# Create a surface for the rectangle
rectangle_surface = pygame.Surface((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))
# Draw the rectangle on the surface
pygame.draw.rect(rectangle_surface, (255, 0, 0), (0, 0, 50, 50))
# Blit the surface onto the circle
window.blit(rectangle_surface, (375, 275))
# Main loop
while True:
# Quitting the game
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
# Update the display
pygame.display.update()
این باعث ایجاد جلوه یک مستطیل در داخل یک دایره می شود. شما می توانید از این تکنیک برای ایجاد اشکال پیچیده تر و عناصر بازی با ترکیب چندین شکل استفاده کنید.
طراحی تصاویر
PyGame همچنین به شما امکان ترسیم تصاویر را می دهد. می توانید از تابع pygame.image.load() برای بارگذاری تصویر از یک فایل و تابع pygame.image.blit() برای ترسیم تصویر روی صفحه استفاده کنید.
سینتکس pygame.image.load() به شکل زیر است:
pygame.image.load(filename)
و در اینجا نحو برای pygame.image.blit ():
pygame.image.blit(image, rect)
علاوه بر بارگذاری و ترسیم تصاویر، PyGame چندین عملکرد مرتبط با تصویر را نیز ارائه می دهد. این توابع به شما این امکان را میدهند که تصاویر را به روشهای مختلفی دستکاری کنید، مانند مقیاسبندی، چرخش، چرخش و برش.
افزودن ویژگی های پیشرفته
PyGame همچنین برخی از ویژگی های پیشرفته را برای ترسیم اشیا و اشکال فراهم می کند. برای مثال، میتوانید از تابع pygame.mouse.get_pos() برای دریافت موقعیت ماوس و تابع pygame.mouse.get_pressed() برای دریافت وضعیت دکمه ماوس استفاده کنید. با استفاده از این توابع، می توانید یک ویژگی کلیک برای ترسیم ایجاد کنید که به شما امکان می دهد با کلیک کردن روی ماوس شکل ها را ترسیم کنید.
import pygame
# Initialize pygame
pygame.init()
# Create a window
window = pygame.display.set_mode((800, 600))
# Main loop
while True:
# Get the mouse position
mouse_position = pygame.mouse.get_pos()
# Get the mouse button state
mouse_pressed = pygame.mouse.get_pressed()
# Quitting the game
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
# Drawing a circle when mouse is pressed
if mouse_pressed[0] == 1:
pygame.draw.circle(window, (255, 0, 0), mouse_position, 20)
# Update the display
pygame.display.update()
در زیر خروجی است:
به راحتی Game Sprites را در PyGame ایجاد کنید
PyGame همچنین مجموعه ای قدرتمند از ابزارها را برای ایجاد آسان sprites و اشیاء بازی ارائه می دهد. با ماژول pygame.draw می توانید به راحتی اسپرایت هایی بسازید که بتوانید در بازی های خود از آنها استفاده کنید. شما می توانید شخصیت ها، اشیاء و سایر عناصر بازی را به راحتی ایجاد کنید.