Реализовать платформер, где персонаж должен двигаться из точки А в точку Б, перепрыгивая препятствия, с помощью библиотеки Arcade. Также реализовать победу и поражение.
Ответы на вопрос
Установите библиотеку командой pip install arcade, сохраните программу в файл main.py и запустите его.
from arcade import *
SCREEN_WIDTH = 1000
SCREEN_HEIGHT = 600
GRAVITY = 1
SPEED = 5
JUMP_SPEED = 18
class Game(Window):
def __init__(self):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Платформер")
set_background_color(color.SKY_BLUE)
self.player = SpriteSolidColor(40, 60, color.RED)
self.player.center_x = 100
self.player.center_y = 100
self.walls = SpriteList()
self.add_wall(500, 30, 1000, 60)
self.add_wall(380, 110, 60, 100)
self.add_wall(650, 110, 60, 100)
self.goal = SpriteSolidColor(30, 100, color.YELLOW)
self.goal.center_x = 930
self.goal.center_y = 110
self.physics = PhysicsEnginePlatformer(self.player, self.walls, gravity_constant=GRAVITY)
self.state = "Игра"
def add_wall(self, x, y, width, height):
wall = SpriteSolidColor(width, height, color.DARK_BROWN)
wall.center_x = x
wall.center_y = y
self.walls.append(wall)
def on_draw(self):
self.clear()
self.walls.draw()
self.goal.draw()
self.player.draw()
draw_text(self.state, 20, 550, color.BLACK, 24)
if self.state != "Игра":
draw_text("Нажмите R для новой игры", 300, 300, color.BLACK, 22)
def on_key_press(self, key, modifiers):
if key == key.LEFT:
self.player.change_x = -SPEED
if key == key.RIGHT:
self.player.change_x = SPEED
if key == key.UP and self.physics.can_jump():
self.player.change_y = JUMP_SPEED
if key == key.R and self.state != "Игра":
self.player.center_x = 100
self.player.center_y = 100
self.player.change_x = 0
self.player.change_y = 0
self.state = "Игра"
def on_key_release(self, key, modifiers):
if key == key.LEFT or key == key.RIGHT:
self.player.change_x = 0
def on_update(self, delta_time):
if self.state != "Игра":
return
self.physics.update()
if check_for_collision(self.player, self.goal):
self.state = "Победа!"
if self.player.center_y < 0:
self.state = "Поражение!"
Game()
run()
Красный квадрат — персонаж. Стрелки влево и вправо двигают его, стрелка вверх позволяет прыгать. Жёлтая фигура — точка Б: при касании наступает победа. Падение ниже экрана означает поражение.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

