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

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

مدیریت ورودی های صفحه کلید در Arcade Library Games Python

پاسخ دادن به ورودی برای هر بازی حیاتی است و پشتیبانی از صفحه کلید برای کاربرانی که آن را ترجیح می دهند خوب است. نحوه استفاده از کتابخانه آرکید پایتون را بیابید.

ورودی صفحه کلید بخش اساسی توسعه بازی است و برای ارائه یک تجربه کاربری عالی، مدیریت موثر آن بسیار مهم است. کتابخانه Arcade راهی ساده و کارآمد برای مدیریت ورودی صفحه کلید در بازی‌های پایتون شما فراهم می‌کند.

ایجاد یک بازی ساده با یک بازیکن

می توانید کد کامل را در این مخزن GitHub پیدا کنید.

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

pip install arcade

پس از آن، اسکلت یک بازی ساده را ایجاد کنید:

import arcade

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

class MyGame(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height, "My Game")
        arcade.set_background_color(arcade.color.WHITE)

    def on_draw(self):
        arcade.start_render()

    def update(self, delta_time):
        pass

MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

این یک پنجره با پس زمینه سفید ایجاد می کند. سپس یک بازیکن را به بازی خود اضافه کنید:

class Player:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.speed = 5
        self.radius = 20

    def draw(self):
        arcade.draw_circle_filled(self.x, self.y, self.radius, arcade.color.BLUE)

    def move_left(self):
        self.x -= self.speed

    def move_right(self):
        self.x += self.speed

    def move_up(self):
        self.y += self.speed

    def move_down(self):
        self.y -= self.speed

این یک بازیکن ساده با دایره آبی ایجاد می کند. با تغییر کلاس MyGame می توانید این بازیکن را به بازی خود اضافه کنید:

import arcade

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

class MyGame(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height, "My Game")
        arcade.set_background_color(arcade.color.WHITE)
        self.player = Player(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

    def on_draw(self):
        arcade.start_render()
        self.player.draw()

    def update(self, delta_time):
        pass

def main():
    MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
    arcade.run()

if __name__ == "__main__":
    main()

اکنون یک بازیکن در بازی خود دارید که می توانید آن را روی صفحه بکشید.

مطلب مرتبط:   نحوه واکشی داده ها با Redux-Saga در یک برنامه React

پاسخ دادن به فشارهای کلیدی و انتشار

برای پاسخ به ورودی کاربر در بازی خود، باید فشار دادن و رها کردن کلیدها را کنترل کنید. کتابخانه Arcade دو روش برای مدیریت این رویدادها ارائه می دهد: on_key_press و on_key_release.

برای استفاده از این روش ها، باید آنها را در زیر کلاس arcade.Window خود تعریف کنید. هنگامی که بازیکن کلیدی را فشار می دهد یا رها می کند، آرکید روش مربوطه را اجرا می کند و دو آرگومان را به آن ارسال می کند: کلید و اصلاح کننده. کلید یک عدد صحیح است که نشان دهنده کد کلید کلید فشرده یا آزاد شده است. اصلاح‌کننده‌ها یک فیلد بیتی است که نشان‌دهنده هر کلید اصلاح‌کننده‌ای است که پخش‌کننده نیز فشار داده است، مانند Shift یا Control.

در اینجا مثالی از نحوه پاسخ دادن به فشار کلید در بازی خود آورده شده است:

class MyGame(arcade.Window):
    def on_key_press(self, key, modifiers):
        if key == arcade.key.LEFT:
            # Move player left
        elif key == arcade.key.RIGHT:
            # Move player right
        elif key == arcade.key.UP:
            # Move player up
        elif key == arcade.key.DOWN:
            # Move player down

برای پاسخ به انتشار کلید، می توانید روش on_key_release را به همین ترتیب تعریف کنید:

class MyGame(arcade.Window):
    def on_key_release(self, key, modifiers):
        if key == arcade.key.LEFT:
            # Stop moving player left
        elif key == arcade.key.RIGHT:
            # Stop moving player right
        elif key == arcade.key.UP:
            # Stop moving player up
        elif key == arcade.key.DOWN:
            # Stop moving player down

مهم است که توجه داشته باشید که گرفتن ورودی کاربر در pygame به بررسی دستی رویداد در حلقه بازی شما نیاز دارد. از سوی دیگر، کتابخانه Arcade به طور خودکار روش های مربوطه را زمانی که بازیکن کلیدی را فشار داده یا رها می کند، فراخوانی می کند. این بدان معنی است که شما مجبور نیستید به صورت دستی رویدادهای کلیدی را در حلقه بازی خود بررسی کنید و از دردسر کد اضافی صرفه جویی کنید.

مطلب مرتبط:   نحوه ذخیره، به روز رسانی، حذف و بازیابی داده ها از پایگاه داده Firebase با استفاده از Angular

سفارشی کردن کنترل ورودی صفحه کلید متناسب با نیازهای بازی شما

کتابخانه Arcade راه های زیادی برای سفارشی کردن ورودی صفحه کلید ارائه می دهد. ممکن است بخواهید اتصالات کلید را برای بازی خود تغییر دهید یا به بازیکن اجازه دهید تا اتصالات کلید خود را شخصی سازی کند.

می توانید این کار را با تعریف یک دیکشنری key_map انجام دهید که هر کلید را به روش مربوط به شی پخش کننده نگاشت می کند. برای اینکه به پخش کننده اجازه دهید اتصالات کلید خود را سفارشی کند، می توانید یک منوی تنظیمات اضافه کنید که فرهنگ لغت key_map را بر اساس ترجیحات پخش کننده تغییر می دهد.

در اینجا یک مثال است:

class MyGame(arcade.Window):
    def __init__(self, width, height, title):
        super().__init__(width, height, title)
        self.player = Player(100, 100)

        self.key_map = {
            arcade.key.LEFT: self.player.move_left,
            arcade.key.RIGHT: self.player.move_right,
            arcade.key.UP: self.player.move_up,
            arcade.key.DOWN: self.player.move_down
        }

    def on_key_press(self, key, modifiers):
        if key in self.key_map:
            self.key_map[key]()

    def on_key_release(self, key, modifiers):
        if key in self.key_map:
            self.key_map[key + 1]()

به ورودی های کاربر در زمان واقعی پاسخ دهید

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