خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه استفاده از Sprites در Arcade برای توسعه بازی

بسیاری از بازی ها از اسپرایت برای نمایش شخصیت بازیکن یا دشمنان استفاده می کنند. دریابید که چگونه کتابخانه 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 ایجاد کنید. شما می توانید تصاویر را برای نمایش اسپرایت های خود بارگذاری کنید و از آنها در بازی خود استفاده کنید.

مطلب مرتبط:   با React Hook Form و Material UI فرم های شیک Next.js بسازید

یک فایل تصویری به نام 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 دنیایی از امکانات را برای ایجاد بازی های جذاب و به یاد ماندنی باز می کند.