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

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

چگونه با حرکت بازیکن در بازی های کتابخانه آرکید خود مقابله کنید

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

Arcade یک کتابخانه محبوب پایتون است که می توانید از آن برای ایجاد بازی های آرکید دو بعدی استفاده کنید. این یک کتابخانه با کاربری آسان است که یک چارچوب ساده برای ایجاد بازی با پایتون فراهم می کند.

یکی از اجزای ضروری هر بازی، حرکت بازیکن است.

ایجاد یک بازی ساده در آرکید

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

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

pip install library

پس از آن، یک کلاس Player به عنوان زیر کلاس کلاس arcade.Sprite و یک کلاس MyGame به عنوان زیر کلاس arcade.Window ایجاد کنید. کلاس MyGame متدهایی برای تنظیم اشیاء بازی، رندر آنها روی صفحه، به روز رسانی وضعیت بازی و مدیریت ورودی های کاربر خواهد داشت. کد ایجاد صفحه بازی و شی بازیکن به شرح زیر است:

import arcade

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

class Player(arcade.Sprite):
    def __init__(self):
        super().__init__("player.png", 0.5)
        self.center_x = SCREEN_WIDTH // 2
        self.center_y = SCREEN_HEIGHT // 2

class MyGame(arcade.Window):
    def __init__(self):
        super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "My Game")
        self.player = None
        arcade.set_background_color(arcade.color.BLACK)

    def setup(self):
        self.player = Player()

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

    def update(self, delta_time):
        pass

MyGame().run()

اضافه کردن حرکت پخش کننده با ورودی صفحه کلید

اکنون که صفحه بازی و شی بازیکن را ایجاد کرده اید، می توانید پخش کننده را در پاسخ به ورودی صفحه کلید حرکت دهید. متدهای on_key_press() و on_key_release() را تعریف کنید که وقتی پخش کننده کلیدی را فشار داده یا رها می کند، آنها را فراخوانی می کنید.

def on_key_press(self, key, modifiers):
    if key == arcade.key.LEFT:
        self.player.change_x = -5
    elif key == arcade.key.RIGHT:
        self.player.change_x = 5
    elif key == arcade.key.UP:
        self.player.change_y = 5
    elif key == arcade.key.DOWN:
        self.player.change_y = -5

def on_key_release(self, key, modifiers):
    if key == arcade.key.LEFT or key == arcade.key.RIGHT:
        self.player.change_x = 0
    elif key == arcade.key.UP or key == arcade.key.DOWN:
        self.player.change_y = 0

هنگام اضافه کردن حرکت بازیکن با ورودی های صفحه کلید، می توانید با تغییر مقدار اختصاص داده شده به self.player.change_x و self.player.change_y، سرعت حرکت را سفارشی کنید. همچنین می توانید شرایطی را برای محدود کردن حرکت بازیکن در صفحه بازی اضافه کنید.

مطلب مرتبط:   9 مزیت عملی استفاده از GraphQL

اضافه کردن حرکت بازیکن با ورودی ماوس

علاوه بر ورودی های صفحه کلید، می توانید حرکت پخش کننده را با استفاده از ورودی ماوس نیز اضافه کنید. متد on_mouse_motion() را تعریف کنید که وقتی بازیکن ماوس را حرکت می‌دهد اجرا می‌شود. در داخل متد، ویژگی های center_x و center_y شی پخش کننده را روی موقعیت فعلی ماوس قرار دهید.

def on_mouse_motion(self, x, y, dx, dy):
    self.player.center_x = x
    self.player.center_y = y

هنگام اضافه کردن حرکت پخش کننده با ورودی ماوس، می توانید با تعریف روش هایی مانند on_mouse_press() یا on_mouse_drag، رفتار شی پخش کننده را زمانی که کاربر ماوس خود را کلیک می کند یا نگه می دارد، سفارشی کنید. بسته به مکانیک بازی، می‌توانید از این روش‌ها برای شروع فعالیت‌های بازیکن مانند تیراندازی یا پریدن استفاده کنید.

معرفی ویژگی های اضافی

با در نظر گرفتن شتاب و کاهش سرعت می توانید حرکت بازیکن را بیشتر تقویت کنید. متد on_key_press() را تغییر دهید تا بسته به جهت حرکت، ویژگی های change_x و change_y شی بازیکن را کم یا به آن اضافه کنید. همچنین در متد ()on_key_release، خواص change_x و change_y را مانند قبل روی 0 قرار دهید.

def on_key_press(self, key, modifiers):
    if key == arcade.key.LEFT:
        self.player.change_x -= 5
    elif key == arcade.key.RIGHT:
        self.player.change_x += 5
    elif key == arcade.key.UP:
        self.player.change_y += 5
    elif key == arcade.key.DOWN:
        self.player.change_y -= 5

def on_key_release(self, key, modifiers):
    if key == arcade.key.LEFT or key == arcade.key.RIGHT:
        self.player.change_x = 0
    elif key == arcade.key.UP or key == arcade.key.DOWN:
        self.player.change_y = 0

درست مانند PyGame، شما همچنین می توانید تشخیص برخورد بین شی بازیکن و سایر اشیاء بازی، مانند دشمنان یا موانع موجود در بازی را اضافه کنید. می توانید با افزودن کد زیر به متد update() کلاس MyGame به این هدف دست یابید:

def update(self, delta_time):
    self.player.update()

    # Check for collisions between player and other game objects
    collisions = arcade.check_for_collision_with_list(self.player, self.enemy_list)

    for collision in collisions:
        collision.kill()

بازی های جذاب با حرکت بازیکن تعاملی بسازید

حرکت تعاملی بازیکن یک جنبه حیاتی از هر بازی جذاب است. استفاده از انواع مکانیک های حرکتی مانند پریدن، دویدن، پرواز و سر خوردن می تواند به بازی تنوع و هیجان بیافزاید.

مطلب مرتبط:   SonarQube چیست؟ 5 ویژگی کلیدی برای برنامه نویسان

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