Накарайте главния си герой да се движи в отговор на входа на играча със събитията на клавиатурата и мишката на аркадната библиотека.
Arcade е популярна библиотека на Python, която можете да използвате за създаване на 2D аркадни игри. Това е лесна за използване библиотека, която предоставя проста рамка за създаване на игри с Python.
Един от основните компоненти на всяка игра е движението на играча.
Създаване на проста игра в Arcade
Можете да намерите пълния код в това хранилище на GitHub.
Преди да започнете, уверете се, че имате pip, инсталиран на вашето устройство. Използвайте тази команда, за да инсталирате аркадната библиотека:
библиотека за инсталиране на pip
След това създайте клас Player като подклас на аркада. Спрайт клас и а MyGame клас като подклас на аркада. прозорец. The MyGame класът ще има методи за настройка на обектите на играта, изобразяването им на екрана, актуализиране на състоянието на играта и обработка на потребителски входове. Кодът за създаване на екрана на играта и обекта на играча е както следва:
импортиране аркада
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600класИграч(аркадна. спрайт):
деф__в него__(себе си):
супер().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2класMyGame(аркадна. прозорец):
деф__в него__(себе си):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Моята игра")
self.player = Нито един
arcade.set_background_color (arcade.color. ЧЕРЕН)дефнастройвам(себе си):
self.player = Player()дефon_draw(себе си):
arcade.start_render()
self.player.draw()дефактуализация(самостоятелно, делта_време):
пас
MyGame().run()
Добавяне на движение на играча с въвеждане от клавиатурата
Сега, след като сте създали екрана на играта и обекта на играча, можете да преместите играча в отговор на въвеждане от клавиатурата. Определете on_key_press() и on_key_release() методи, които ще извиквате, когато играчът натисне или пусне клавиш.
дефon_key_press(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО:
self.player.change_x = -5
елиф ключ == arcade.key. ДЯСНО:
self.player.change_x = 5
елиф ключ == arcade.key. НАГОРЕ:
self.player.change_y = 5
елиф ключ == arcade.key. НАДОЛУ:
self.player.change_y = -5
дефon_key_release(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО или ключ == arcade.key. ДЯСНО:
self.player.change_x = 0
елиф ключ == arcade.key. НАГОРЕ или ключ == arcade.key. НАДОЛУ:
self.player.change_y = 0
Когато добавяте движение на играча с въвеждане от клавиатурата, можете да персонализирате скоростта на движение, като промените стойността, присвоена на self.player.change_x и self.player.change_y. Можете също да добавите условия за ограничаване на движението на играча в рамките на екрана на играта.
Добавяне на движение на играча с въвеждане с мишката
В допълнение към въвеждането от клавиатурата, можете също да добавите движение на играча с помощта на въвеждане с мишката. Определете on_mouse_motion() метод, който ще се стартира, когато играчът премести мишката. Вътре в метода задайте center_x и center_y свойства на обекта на играча към текущата позиция на мишката.
дефon_mouse_motion(себе си, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y
Когато добавяте движение на играча с въвеждане на мишката, можете да персонализирате поведението на обекта на играча, когато потребителят щракне или задържи мишката си, като дефинирате методи като on_mouse_press() или on_mouse_drag(). Можете да използвате тези методи, за да задействате действия на играча като стрелба или скачане, в зависимост от механиката на играта.
Представяме ви допълнителни функции
Можете допълнително да подобрите движението на играча, като вземете предвид ускорението и забавянето. Променете on_key_press() метод за изваждане или добавяне към промяна_x и промяна_y свойства на обекта на играча, в зависимост от посоката на движение. Също така задайте промяна_x и промяна_y свойства до 0 в on_key_release() метод, както преди.
дефon_key_press(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО:
self.player.change_x -= 5
елиф ключ == arcade.key. ДЯСНО:
self.player.change_x += 5
елиф ключ == arcade.key. НАГОРЕ:
self.player.change_y += 5
елиф ключ == arcade.key. НАДОЛУ:
self.player.change_y -= 5
дефon_key_release(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО или ключ == arcade.key. ДЯСНО:
self.player.change_x = 0
елиф ключ == arcade.key. НАГОРЕ или ключ == arcade.key. НАДОЛУ:
self.player.change_y = 0
Също като PyGame, можете също добавете откриване на сблъсък между обекта на играча и други игрални обекти, като врагове или препятствия в аркадните игри. Можете да постигнете това, като добавите следния код към актуализация() метод на MyGame клас:
дефактуализация(самостоятелно, делта_време):
self.player.update()# Проверете за сблъсъци между играч и други обекти на играта
сблъсъци = arcade.check_for_collision_with_list (self.player, self.enemy_list)
за сблъсък в сблъсъци:
collision.kill()
Направете увлекателни игри с интерактивно движение на играча
Интерактивното движение на играча е ключов аспект на всяка увлекателна игра. Използването на различни видове механика на движение като скачане, бягане, летене и плъзгане може да добави разнообразие и вълнение към играта.
Даването на контрол върху движението на играчите добавя усещане за свобода на действие и потапяне, което може да доведе до по-удовлетворяващо игрово изживяване.