Отговарянето на въвеждане е жизненоважно за всяка игра и е добре да поддържате клавиатурата за потребители, които я предпочитат. Разберете как с аркадната библиотека на Python.

Въвеждането от клавиатурата е съществена част от разработването на игри и е от решаващо значение да се справяте ефективно, за да осигурите страхотно потребителско изживяване. Библиотеката Arcade предоставя лесен и ефективен начин за обработка на въвеждане от клавиатурата във вашите Python игри.

Създаване на проста игра с плейър

Можете да намерите пълния код в това репо на GitHub.

Преди да се потопите в обработката на въвеждане от клавиатурата, уверете се, че имате pip, инсталиран на вашето устройство. Използвайте тази команда, за да инсталирате аркадната библиотека:

pip инсталирайте аркада

След това създайте скелета на проста игра:

импортиране аркада

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

класMyGame(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина, "Моята игра")
arcade.set_background_color (arcade.color. БЯЛО)

instagram viewer

дефon_draw(себе си):
arcade.start_render()

дефактуализация(самостоятелно, делта_време):
пас

MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

Това създава прозорец с бял фон. След това добавете играч към вашата игра:

класИграч:
деф__в него__(себе си, x, y):
себе си.x = x
self.y = y
self.speed = 5
себе си.радиус = 20

дефрисувам(себе си):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. СИН)

дефмръдни на ляво(себе си):
self.x -= self.speed

дефпремести се надясно(себе си):
self.x += self.speed

дефдвижение_нагоре(себе си):
self.y += self.speed

дефпреместване_надолу(себе си):
self.y -= self.speed

Това създава прост играч със син кръг. Можете да добавите този играч към вашата игра, като промените MyGame клас:

импортиране аркада

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

класMyGame(аркадна. прозорец):
деф__в него__(аз, ширина, височина):
super().__init__(ширина, височина, "Моята игра")
arcade.set_background_color (arcade.color. БЯЛО)
self.player = Играч (SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

дефon_draw(себе си):
arcade.start_render()
self.player.draw()

дефактуализация(самостоятелно, делта_време):
пас

дефосновен():
MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

ако __име__ == "__основен__":
основен ()

Сега имате играч в играта си, който можете да рисувате на екрана.

Отговаряне на натискане и освобождаване на клавиши

За да отговорите на въвеждане от потребителя във вашата игра, трябва да управлявате натисканията и освобождаванията на клавиши. Библиотеката Arcade предоставя два метода за обработка на тези събития: on_key_press и on_key_release.

За да използвате тези методи, трябва да ги дефинирате във вашия аркада. прозорец подклас. Когато играчът натисне или пусне клавиш, Arcade ще изпълни съответния метод, предавайки му два аргумента: ключ и модификатори. ключ е цяло число, представляващо кода на клавиша на натиснатия или освободения клавиш. модификатори е битово поле, представляващо всички модифициращи клавиши, които играчът също е натиснал, като Shift или Control.

Ето пример за това как да реагирате на натискане на клавиш във вашата игра:

класMyGame(аркадна. прозорец):
дефon_key_press(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО:
# Преместете играча наляво
елиф ключ == arcade.key. ДЯСНО:
# Преместете играча надясно
елиф ключ == arcade.key. НАГОРЕ:
# Преместете играча нагоре
елиф ключ == arcade.key. НАДОЛУ:
# Преместете играча надолу

За да отговорите на освобождавания на ключове, можете да дефинирате on_key_release метод по същия начин:

класMyGame(аркадна. прозорец):
дефon_key_release(самостоятелно, ключ, модификатори):
ако ключ == arcade.key. НАЛЯВО:
# Спрете да местите играча наляво
елиф ключ == arcade.key. ДЯСНО:
# Спрете да местите играч надясно
елиф ключ == arcade.key. НАГОРЕ:
# Спрете да местите играча нагоре
елиф ключ == arcade.key. НАДОЛУ:
# Спрете да местите играча надолу

Важно е да се отбележи, че улавянето потребителско въвеждане в pygame изисква ръчна проверка на събития в цикъла на вашата игра. От друга страна, библиотеката Arcade автоматично извиква съответните методи, когато играчът натисне или пусне клавиш. Това означава, че не е необходимо ръчно да проверявате за ключови събития в цикъла на вашата игра, което ви спестява допълнителен код.

Персонализиране на обработката на въвеждане от клавиатурата, за да отговаря на нуждите на вашата игра

Библиотеката Arcade предоставя много начини за персонализиране на въвеждането от клавиатурата. Може да искате да промените клавишните връзки за вашата игра или да позволите на играча да персонализира своите собствени клавишни връзки.

Можете да направите това, като дефинирате речник key_map който картографира всеки ключ към съответния метод на обекта играч. За да позволите на играча да персонализира своите клавишни връзки, можете да добавите меню с настройки, което променя key_map речник въз основа на предпочитанията на играча.

Ето един пример:

класMyGame(аркадна. прозорец):
деф__в него__(себе си, ширина, височина, заглавие):
super().__init__(ширина, височина, заглавие)
self.player = Играч(100, 100)

self.key_map = {
arcade.key. НАЛЯВО: self.player.move_left,
arcade.key. ДЯСНО: self.player.move_right,
arcade.key. НАГОРЕ: self.player.move_up,
arcade.key. НАДОЛУ: self.player.move_down
}

дефon_key_press(самостоятелно, ключ, модификатори):
ако ключ в self.key_map:
self.key_map[ключ]()

дефon_key_release(самостоятелно, ключ, модификатори):
ако ключ в self.key_map:
self.key_map[ключ + 1]()

Отговаряйте на въведените от потребителя данни в реално време

Отговарянето на въведените от потребителя данни в реално време е съществен аспект от създаването на увлекателна игра. Като отделите време за правилното въвеждане на клавиатурата във вашата игра, можете да създадете по-ангажираща и поглъщащо изживяване за вашите играчи и в крайна сметка да накарате играта си да се открои в пренаселено място пазар.