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

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

نحوه پیاده سازی یک سیستم سلامت در Python Arcade

به دنبال این هستید که بازی خود را با خطر کنترل کنید؟ زندگی‌ها را به سلامتی تبدیل کنید و به گیم‌پلی خود ابعاد بیشتری اضافه کنید.

افزودن یک سیستم سلامت به بازی آرکید شما می‌تواند تجربه بازیکن را افزایش دهد و می‌تواند لایه‌ای از چالش و تعامل اضافه کند. شما می توانید با نمایش سلامتی و مکانیک بازیکن برای آسیب و بهبود، تجربه گیم پلی فراگیرتری ایجاد کنید.

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

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

ابتدا pip را روی دستگاه خود نصب کنید و از دستور زیر برای نصب کتابخانه آرکید استفاده کنید:

pip install arcade

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

کد استفاده شده در این مقاله در این مخزن GitHub موجود است و برای استفاده شما تحت مجوز MIT رایگان است.

یک فایل جدید با نام simple-game.py ایجاد کنید و کد زیر را اضافه کنید:

import arcade

# Set window dimensions
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Set player movement speed
PLAYER_MOVEMENT_SPEED = 5
white = arcade.color.WHITE
blue = arcade.color.BLUE
red = arcade.color.RED

class GameWindow(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height)
        arcade.set_background_color(white)

        # Create player and enemy objects
        self.player = arcade.SpriteCircle(30, blue)
        self.enemy = arcade.SpriteCircle(30, red)
        self.player.center_x = 100
        self.player.center_y = 100
        self.enemy.center_x = 400
        self.enemy.center_y = 300

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

    def update(self, delta_time):
        pass

    def on_key_press(self, key, modifiers):
        if key == arcade.key.LEFT:
            self.player.center_x -= PLAYER_MOVEMENT_SPEED
        elif key == arcade.key.RIGHT:
            self.player.center_x += PLAYER_MOVEMENT_SPEED
        elif key == arcade.key.UP:
            self.player.center_y += PLAYER_MOVEMENT_SPEED
        elif key == arcade.key.DOWN:
            self.player.center_y -= PLAYER_MOVEMENT_SPEED

def main():
    game = GameWindow(SCREEN_WIDTH, SCREEN_HEIGHT)
    arcade.run()

if __name__ == "__main__":
    main()

شما باید پنجره ای حاوی دو کاراکتر را ببینید که با دایره های آبی و قرمز نشان داده شده است:

بازی آرکید ساده با سیستم

تعریف متغیرها و ثابت های مرتبط با سلامت

برای پیاده سازی نظام سلامت متغیرها و ثابت های مرتبط با سلامت را تعریف کنید. شما از آنها برای پیگیری وضعیت فعلی بازیکن و تعیین قوانین آسیب و بهبود استفاده خواهید کرد. کد زیر را در کلاس GameWindow اضافه کنید:

class GameWindow(arcade.Window):
    def __init__(self, width, height):
        # ...
        # Health-related variables and constants
        self.player_health = 100

        # Health points healed per second
        self.heal_rate = 1

        # Timer for healing
        self.heal_timer = 0

    def update(self, delta_time):
        # ...
        # Update healing timer
        self.heal_timer += delta_time

        # Heal the player's health every 2 seconds
        if self.heal_timer >= 2:
            self.player_health += self.heal_rate
            self.heal_timer = 0

        # Ensure health doesn't exceed the maximum value
        if self.player_health > 100:
            self.player_health = 100

اجرای مکانیک آسیب و درمان

برای پیاده سازی آسیب و مکانیک های بهبود، برخورد بین بازیکن و دشمن را شناسایی کنید. در هنگام برخورد با دشمن سلامتی بازیکن را کاهش دهید و در صورت عدم برخورد هر 2 ثانیه سلامتی بازیکن را بهبود بخشید. متد update() را تغییر دهید و کد زیر را اضافه کنید:

class GameWindow(arcade.Window):
    def __init__(self, width, height):
        # ...

    def update(self, delta_time):
        # Detect collisions between player and enemy
        if arcade.check_for_collision(self.player, self.enemy):
            self.player_health -= 5

        # ...

مدیریت مرگ بازیکن و سناریوهای بازی بیش از حد

برای مدیریت سناریوهای مرگ بازیکن و پایان بازی، بررسی کنید که آیا سلامت بازیکن به صفر یا کمتر رسیده است. اگر سلامتی به صفر رسید، بازیکن را مرده در نظر بگیرید و بازی را تمام کنید. متد update() را با کد زیر تغییر دهید:

class GameWindow(arcade.Window):
    def __init__(self, width, height):
        # ...

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

        # Check if player health is zero or below
        if self.player_health <= 0:
            # End the game
            arcade.close_window()

        # ...

تجسم نوار سلامت

یک نمایش تصویری از سلامت بازیکن می تواند تجربه گیم پلی را تا حد زیادی بهبود بخشد. یک نوار سلامت با استفاده از مستطیل ها برای نشان دادن سطح سلامت فعلی ایجاد کنید. یک فایل جدید با نام health-bar.py ایجاد کنید و کد را با به روز رسانی های زیر اضافه کنید:

class GameWindow(arcade.Window):
    def __init__(self, width, height):
        # ...

    def on_draw(self):
        arcade.start_render()
        self.player.draw()
        self.enemy.draw()
        gray = arcade.color.LIGHT_GRAY
        green = arcade.color.GREEN

        # Draw health bar
        arcade.draw_rectangle_filled(SCREEN_WIDTH // 2, 20,
                                     SCREEN_WIDTH, 20, gray)

        health_width = self.player_health / 100 * SCREEN_WIDTH

        arcade.draw_rectangle_filled(health_width // 2, 20,
                                     health_width, 20, green)

در زیر خروجی است:

مطلب مرتبط:   DirectX 11 در مقابل DirectX 12: چه تفاوت هایی با هم دارند و از کدام باید استفاده کنید؟

بازی آرکید ساده با بازیکن، دشمن و نوار سلامتی

از جمله ویژگی های اضافی

می‌توانید با ویژگی‌های بیشتر، مانند موارد زیر، سیستم سلامت را بیشتر ارتقا دهید.

نمایشگر سلامت عددی

علاوه بر نوار سلامت، می توانید سلامت باقی مانده را به عنوان یک مقدار عددی روی صفحه نمایش دهید. این یک نشانه دقیق از وضعیت سلامت بازیکن است. کد زیر را در متد on_draw() اضافه کنید:

# Inside the on_draw() method
black = arcade.color.BLACK
text = f"Health: {self.player_health}"
arcade.draw_text(text, 10, 10, black, 14)

پاور آپ های سلامت

برای معرفی پاور آپ های سلامتی، می توانید اشیاء خاصی ایجاد کنید که در برخورد با آنها سلامت بازیکن را افزایش می دهد. در اینجا مثالی از نحوه پیاده سازی این ویژگی آورده شده است:

# Inside the update() method
if arcade.check_for_collision(self.player, self.power_up):
    self.player_health += 20

    # Remove the power-up from the game
    self.power_up.kill()

انواع مختلف دشمن

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

# Inside the update() method
if arcade.check_for_collision(self.player, self.enemy):
    if self.enemy.type == "weak":
        self.player_health -= 5
    elif self.enemy.type == "strong":
        self.player_health -= 20

با گنجاندن این ویژگی‌های اضافی در پیاده‌سازی سیستم سلامت خود، می‌توانید تجربه‌های گیم‌پلی پویا و چالش برانگیزی را برای بازیکنان خود ایجاد کنید.

بهترین شیوه ها برای نظام سلامت

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

مطلب مرتبط:   نحوه ایجاد انیمیشن های ورودی و خروجی برای کامپوننت React با استفاده از Framer Motion

آن را ماژولار کنید

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

اعتبار سنجی ورودی و پادمان ها

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

مکانیسم ذخیره و بارگذاری

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

تست و مدیریت خطا

اجرای سیستم سلامت را به طور کامل آزمایش کنید تا صحت و اعتبار آن را تأیید کنید. از تکنیک های مناسب رسیدگی به خطا برای رسیدگی موثر به استثناها و موارد لبه استفاده کنید.

بازخورد بهداشتی مداوم

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

با پیروی از این بهترین شیوه‌ها، می‌توانید یک سیستم سلامت قوی و مؤثر ایجاد کنید که ضمن حفظ کیفیت و خوانایی کد، تجربه گیم‌پلی بازی آرکید شما را افزایش می‌دهد.

مطلب مرتبط:   استفاده از سیستم کنترل نسخه برانداز در سرور

با سیستم سلامت بازی ها را سرگرم کننده تر کنید

افزودن یک سیستم سلامت به بازی شما می تواند به طور قابل توجهی تجربه کلی بازیکن را بهبود بخشد. این عنصر ریسک و چالش را معرفی می کند و باعث می شود گیم پلی جذاب تر و با ارزش تر شود.

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