بسیاری از بازی ها از اسپرایت برای نمایش شخصیت بازیکن یا دشمنان استفاده می کنند. دریابید که چگونه کتابخانه Arcade Python کار با آنها را آسان می کند.
کتابخانه Arcade Python راهی بینظیر و شهودی برای گنجاندن sprites در پروژههای توسعه بازی شما فراهم میکند. Sprites عناصر ضروری هستند که جذابیت بصری، تعامل و حرکت پویا را به بازی های شما می آورند.
با نحو ساده و عملکرد قدرتمند Arcade، افزودن sprite بسیار آسان است. این کتابخانه به شما این امکان را می دهد که بدون دردسر بازی های خود را با شخصیت ها و اشیاء جذاب تقویت کنید.
ایجاد یک بازی ساده
کد استفاده شده در این مقاله در این موجود است
مخزن GitHub
و استفاده از آن تحت مجوز MIT برای شما رایگان است.
قبل از شروع، مطمئن شوید که پیپ را روی دستگاه خود نصب کرده اید. برای نصب کتابخانه آرکید از این دستور استفاده کنید:
pip install arcade
با ایجاد یک بازی ساده با استفاده از کتابخانه Arcade Python شروع کنید. در این بازی بازیکن می تواند به چپ و راست حرکت کند.
یک کلاس MyGame ایجاد کنید که از arcade.Window به ارث می برد. پس از آن، متد setup را برای مقداردهی اولیه متغیرها و متد on_draw را برای ترسیم اشیاء بازی تعریف کنید. روش on_key_press به بازیکن اجازه می دهد مستطیل آبی را به چپ یا راست حرکت دهد.
در اینجا کد بازی اصلی شما آمده است:
import arcade
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(arcade.color.WHITE)
def setup(self):
self.player_x = 320
def on_draw(self):
arcade.start_render()
arcade.draw_rectangle_filled(self.player_x, 50, 50, 50, arcade.color.BLUE)
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player_x -= 10
elif key == arcade.key.RIGHT:
self.player_x += 10
def main():
game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
game.setup()
arcade.run()
if __name__ == "__main__":
main()
چگونه Sprites را به بازی خود اضافه کنید
اکنون که یک بازی ساده کار میکند، وقت آن است که آن را با اضافه کردن چند sprite تقویت کنید. می توانید با استفاده از کلاس arcade.Sprite sprite ایجاد کنید. شما می توانید تصاویر را برای نمایش اسپرایت های خود بارگذاری کنید و از آنها در بازی خود استفاده کنید.
یک فایل تصویری به نام player.png را برای ایجاد اسپرایت پخش کننده خود بارگیری کنید. موقعیت اولیه اسپرایت را در مرکز صفحه تنظیم کنید. در روش on_draw با استفاده از تابع draw، اسپرایت پخش کننده را رسم کنید.
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(arcade.color.WHITE)
self.player_sprite = None
def setup(self):
self.player_sprite = arcade.Sprite("player.png")
self.player_sprite.center_x = SCREEN_WIDTH // 2
self.player_sprite.center_y = SCREEN_HEIGHT // 2
def on_draw(self):
arcade.start_render()
self.player_sprite.draw()
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player_sprite.change_x = -5
elif key == arcade.key.RIGHT:
self.player_sprite.change_x = 5
def update(self, delta_time):
self.player_sprite.update()
ویژگی های اضافی Sprite
Sprites در Arcade ویژگی هایی فراتر از حرکت اولیه را ارائه می دهد. به عنوان مثال، شما می توانید اندازه یک اسپرایت را با تنظیم ویژگی مقیاس آن تغییر دهید.
می توانید ویژگی مقیاس پخش کننده اسپرایت را روی 0.5 تنظیم کنید تا نصف اندازه اصلی شود.
class MyGame(arcade.Window):
def setup(self):
self.player_sprite = arcade.Sprite("player.png", scale=0.5)
کنترل حرکت Sprite
Sprites در Arcade راه های مختلفی برای کنترل حرکت بازیکن ارائه می دهد. علاوه بر ویژگی change_x، می توانید از ویژگی change_y برای کنترل حرکت عمودی استفاده کنید. برای الگوهای حرکتی پیچیده تر، می توانید از ویژگی change_angle برای چرخش اسپرایت نیز استفاده کنید.
self.player_sprite.change_angle = ROTATION_SPEED
با ترکیب این ویژگی ها با ورودی صفحه کلید یا ماوس، می توانید کنترل های حرکتی پویا و پاسخگو برای اسپرایت های بازی خود ایجاد کنید.
اضافه کردن تشخیص برخورد با Sprites
تشخیص برخورد در بسیاری از بازی ها بسیار مهم است. با Arcade، می توانید به راحتی برخورد بین اسپرایت ها را با استفاده از تابع arcade.check_for_collision تشخیص دهید. بیایید کد را طوری تغییر دهیم که شامل تشخیص برخورد بین اسپرایت بازیکن و جن دیگری به نام obstacle.png باشد:
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(arcade.color.WHITE)
self.player_sprite = None
def setup(self):
self.player_sprite = arcade.Sprite("player.png", scale=0.1)
self.obstacle_sprite = arcade.Sprite("obstacle.png", scale = 0.1)
self.obstacle_sprite.center_x = SCREEN_WIDTH
self.obstacle_sprite.center_y = SCREEN_HEIGHT // 2
self.player_sprite.center_x = SCREEN_WIDTH // 2
self.player_sprite.center_y = SCREEN_HEIGHT // 2
def on_draw(self):
arcade.start_render()
self.player_sprite.draw()
self.obstacle_sprite.draw()
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player_sprite.change_x = -5
elif key == arcade.key.RIGHT:
self.player_sprite.change_x = 5
def update(self, delta_time):
self.player_sprite.update()
self.obstacle_sprite.update()
if arcade.check_for_collision(self.player_sprite, self.obstacle_sprite):
print("Collision detected!")
بازی های خود را با Sprites جذاب تر کنید
جن باعث می شود شخصیت ها، اشیاء و انیمیشن ها واقعی و هیجان انگیز به نظر برسند. آنها می توانند حرکت کنند، برخورد کنند و با چیزهای دیگر در بازی شما تعامل داشته باشند، که باعث می شود احساس واقعی تر و سرگرم کننده تر داشته باشید.
با استفاده از اسپرایت ها، می توانید بازی هایی بسازید که بازیکنان را علاقه مند کند و بخواهد بیشتر بازی کند. Sprites دنیایی از امکانات را برای ایجاد بازی های جذاب و به یاد ماندنی باز می کند.