به بازیکنان خود در حین پیشروی در بازی شما چیزی برای انتخاب کردن بدهید.
پاور آپ ها و کلکسیون ها عناصر ضروری بازی هستند که می توانند تجربه گیم پلی را افزایش دهند و به بازی های آرکید هیجان بیافزایند. آنها توانایی ها، پاداش ها و چالش های اضافی را برای بازیکنان فراهم می کنند. با کتابخانه آرکید، میتوانید در کمترین زمان بازیهای جذابی با قدرتها و کلکسیونها ایجاد کنید.
یک بازی ساده بسازید
با یک تنظیم اولیه شروع کنید که در آن بازیکن می تواند با استفاده از ورودی های صفحه کلید در چهار جهت (چپ، راست، بالا و پایین) حرکت کند. علاوه بر این، یک شی دشمن را برای ایجاد تعامل در محیط بازی معرفی کنید.
کد استفاده شده در این مقاله در این مخزن GitHub موجود است و برای استفاده شما تحت مجوز MIT رایگان است.
یک فایل جدید با نام simple-game.py ایجاد کنید و کد زیر را اضافه کنید:
import arcade
blue = arcade.color.BLUE
red = arcade.color.RED
black = arcade.color.BLACK
white = arcade.color.WHITE
yellow = arcade.color.YELLOW
green = arcade.color.GREEN
orange = arcade.color.ORANGE
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(black)
self.player = arcade.SpriteCircle(20, blue)
self.player.center_x = width // 2
self.player.center_y = height // 2
self.enemy = arcade.SpriteSolidColor(20, 20, red)
self.enemy.center_x = width // 4
self.enemy.center_y = height // 4
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 -= 10
elif key == arcade.key.RIGHT:
self.player.center_x += 10
elif key == arcade.key.UP:
self.player.center_y += 10
elif key == arcade.key.DOWN:
self.player.center_y -= 10
def main():
game = Game(800, 600)
arcade.run()
if __name__ == "__main__":
main()
این کد را اجرا کنید و یک بازی اساسی با حرکت بازیکن و یک شی دشمن خواهید داشت.
ایجاد ایالات بازی
برای ترکیب قدرتها و کلکسیونها، باید حالتهای بازی مانند امتیاز و سلامت را ایجاد کنید. شما می توانید امتیاز و سلامت را با استفاده از یک متغیر جداگانه مدیریت کنید. کد را طوری تغییر دهید که این ویژگی ها را شامل شود. سلامت بازیکن در هنگام برخورد با شی دشمن کاهش می یابد.
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
self.score = 0
self.health = 100
def on_draw(self):
arcade.draw_text(f"Score: {self.score}", 10, 10, white)
arcade.draw_text(f"Health: {self.health}", 10, 30, white)
def update(self, delta_time):
if arcade.check_for_collision(self.player, self.enemy):
self.health -= 10
if self.health <= 0:
self.game_over()
def game_over(self):
# Add game over logic here
pass
اکنون سلامت بازیکن در هنگام برخورد با دشمن 10 کاهش می یابد و امتیاز و مقادیر سلامتی روی صفحه نمایش داده می شود.
اضافه کردن کلکسیون
در مرحله بعد، کلکسیونی ایجاد کنید که در صورت جمع آوری امتیاز بازیکن را 10 افزایش دهد. این کلکسیون ها برای تنوع بصری اشکال مختلفی خواهند داشت. یک فایل جدید به نام collectibles.py ایجاد کنید و کد را با آپدیت زیر اضافه کنید:
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
self.collectibles = arcade.SpriteList()
for _ in range(5):
collectible = arcade.SpriteSolidColor(20, 40, yellow)
collectible.center_x = random.randint(0, width)
collectible.center_y = random.randint(0, height)
self.collectibles.append(collectible)
def on_draw(self):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f"Score: {self.score}", 10, 10, white)
arcade.draw_text(f"Health: {self.health}", 10, 30, white)
def update(self, delta_time):
for collectible in self.collectibles:
if arcade.check_for_collision(self.player, collectible):
self.score += 10
collectible.remove_from_sprite_lists()
فهرستی از کلکسیون ها با پنج نمونه ایجاد کنید که هر کدام با یک مستطیل زرد نشان داده شده است. وقتی بازیکن با یک کلکسیون برخورد می کند، امتیاز او 10 افزایش می یابد و کلکسیونی از لیست اسپرایت حذف می شود.
اضافه کردن پاور آپ ها
اکنون می توانید به بازی خود پاور آپ اضافه کنید. هنگامی که بازیکن قدرت را جمع آوری می کند، یک سپر به مدت 10 ثانیه در اطراف آنها ظاهر می شود. در این مدت اگر بازیکن با دشمن برخورد کند، دشمن را نابود می کند. یک فایل جدید به نام power-ups.py ایجاد کنید و کد را با آپدیت زیر اضافه کنید:
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
self.power_up = arcade.SpriteSolidColor(50, 20, green)
self.power_up.center_x = random.randint(0, width)
self.power_up.center_y = random.randint(0, height)
self.shield_active = False
self.shield_duration = 10
self.shield_timer = 0
def on_draw(self):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"Score: {self.score}", 10, 10, white)
arcade.draw_text(f"Health: {self.health}", 10, 30, white)
def update(self, delta_time):
if arcade.check_for_collision(self.player, self.enemy):
if not self.shield_active:
self.health -= 10
if self.health <= 0:
self.game_over()
else:
self.enemy.remove_from_sprite_lists()
if self.shield_active:
self.shield_timer += delta_time
if self.shield_timer >= self.shield_duration:
self.shield_active = False
self.shield_timer = 0
for collectible in self.collectibles:
if arcade.check_for_collision(self.player, collectible):
self.score += 10
collectible.remove_from_sprite_lists()
if arcade.check_for_collision(self.player, self.power_up):
self.shield_active = True
self.power_up.remove_from_sprite_lists()
در زیر خروجی است:
از جمله ویژگی های اضافی
شما می توانید با افزودن ویژگی های اضافی، سیستم قدرت و کلکسیون را بیشتر تقویت کنید. برای مثال، میتوانید یک تایمر روشنکننده ایجاد کنید که در صورت جمعآوری، زمان گیمپلی را افزایش میدهد. یک فایل جدید به نام timer-power-up.py ایجاد کنید و کد را با آپدیت زیر اضافه کنید:
class Game(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(black)
self.player = arcade.SpriteCircle(20, blue)
# ...
self.timer_power_up = arcade.SpriteSolidColor(40, 20, orange)
self.timer_power_up.center_x = random.randint(0, width)
self.timer_power_up.center_y = random.randint(0, height)
self.game_time = 60 # Initial game time in seconds
self.timer_power_up_duration = 10
# ...
def update(self, delta_time):
# ...
if arcade.check_for_collision(self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()
# ...
def main():
game = Game(800, 600)
arcade.run()
if __name__ == "__main__":
main()
بهترین روش ها برای پاور آپ ها و کلکسیون ها
پاور آپ ها و کلکسیون ها نقش مهمی در افزایش تجربه گیم پلی بازی های آرکید دارند. برای اطمینان از اینکه این عناصر لذت بخش هستند و به خوبی در بازی ادغام می شوند، رعایت برخی از بهترین شیوه ها ضروری است:
وضوح و سازگاری بصری
از اسپریت های متمایز و از نظر بصری جذاب برای قدرت ها و کلکسیون ها استفاده کنید تا آنها را از دیگر عناصر بازی متمایز کنید. اطمینان حاصل کنید که ظاهر قدرتها و کلکسیونها با جلوهها و هدف آنها در بازی مطابقت دارد.
یکپارچگی در طراحی، طرحهای رنگی، و اندازه برای قدرتها و کلکسیونها در طول بازی حفظ کنید.
تعادل و چالش
کمیاب بودن و توزیع قدرتها و کلکسیونها را تنظیم کنید تا حس چالش و پاداش را برای بازیکنان حفظ کنید. از بازیکنان زیاد با قدرت یا کلکسیون زیاد خودداری کنید، زیرا ممکن است تاثیر و هیجان پیدا کردن آنها را کاهش دهد.
به دقت بین اثربخشی و مدت زمان قدرتآپها تعادل برقرار کنید تا از فشار بیش از حد یا کمتوانی آنها جلوگیری کنید.
پاک کردن شاخص ها و بازخورد
هنگامی که پخش کننده یک پاور آپ یا کلکسیون را جمع آوری می کند، نشانگرهای تصویری و صوتی واضحی ارائه دهید. نمایش جلوه های بصری موقت، مانند انیمیشن ها یا ذرات، برای نشان دادن فعال شدن پاور آپ ها و مدت زمان آنها.
رابطه چالش-پاداش
اطمینان حاصل کنید که قدرتها و کلکسیونها پاداشهای معنیداری مانند افزایش امتیاز، تواناییهای اضافی یا زمان طولانیتر بازی را به بازیکن ارائه میدهند. دشواری به دست آوردن قدرت ها و کلکسیون ها را با مزایایی که ارائه می دهند هماهنگ کنید. وظایف چالش برانگیزتر باید پاداش های ارزشمندتری را به همراه داشته باشد.
تست بازی و تعادل
بازی را به طور گسترده آزمایش کنید تا نحوه تعامل بازیکنان با قدرتها و کلکسیونها را مشاهده کنید. از بازخورد پخش کننده برای تنظیم دقیق توزیع، مدت زمان و جلوه های قدرت و کلکسیون برای ایجاد یک تجربه متعادل و لذت بخش استفاده کنید.
با پیروی از این بهترین شیوهها، میتوانید یک سیستم قدرت و کلکسیون جذاب و متعادل ایجاد کنید که تجربه گیمپلی را افزایش میدهد و بازیکنان را درگیر بازی آرکید خود نگه میدارد.
با پاور آپ ها و کلکسیون بازی ها را سرگرم کننده تر کنید
پاور آپ ها و کلکسیون ها لایه ای از هیجان و تعامل را به بازی های آرکید اضافه می کنند. آنها نه تنها توانایی ها و پاداش های جدید را در اختیار بازیکنان قرار می دهند، بلکه چالش های جالب و انتخاب های استراتژیک را نیز ایجاد می کنند.
با ترکیب این ویژگی ها با استفاده از کتابخانه Python Arcade، می توانید بازی های خود را لذت بخش تر کنید و تجربه کلی بازی را برای بازیکنان خود افزایش دهید. به خاطر داشته باشید که آزمایش کنید، تکرار کنید، و خلاقیت خود را آزاد کنید تا قدرت ها و مجموعه های منحصر به فرد و جذابی ایجاد کنید که با تم و مکانیک بازی شما همخوانی دارند.