Одговарање на унос је од виталног значаја за сваку игру и добро је подржати тастатуру за кориснике који је више воле. Сазнајте како са Питхон-овом аркадном библиотеком.

Унос са тастатуре је суштински део развоја игара и кључно је да се њиме ефикасно рукује како бисте пружили одлично корисничко искуство. Библиотека Арцаде пружа једноставан и ефикасан начин за руковање уносом са тастатуре у вашим Питхон играма.

Прављење једноставне игре са играчем

Комплетан код можете пронаћи у овај ГитХуб репо.

Пре него што се упустите у руковање уносима са тастатуре, уверите се да јесте пип инсталиран на вашем уређају. Користите ову команду да инсталирате библиотеку аркада:

пип инсталл арцаде

Након тога направите костур једноставне игре:

увоз арцаде

СЦРЕЕН_ВИДТХ = 640
СЦРЕЕН_ХЕИГХТ = 480

класаМиГаме(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина, "Моја игра")
арцаде.сет_бацкгроунд_цолор (арцаде.цолор. БЕО)

дефон_драв(сам):
арцаде.старт_рендер()

дефажурирање(селф, делта_тиме):
проћи

Моја игра (СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ)
арцаде.рун()

instagram viewer

Ово ствара прозор са белом позадином. Затим додајте играча у своју игру:

класаПлаиер:
деф__у томе__(сам, к, и):
селф.к = к
селф.и = и
селф.спеед = 5
селф.радиус = 20

дефцртати(сам):
арцаде.драв_цирцле_филлед (селф.к, селф.и, селф.радиус, арцаде.цолор. ПЛАВИ)

дефпомери се лево(сам):
селф.к -= селф.спеед

дефмове_ригхт(сам):
селф.к += селф.спеед

дефнапредовати(сам):
селф.и += селф.спеед

дефпомери се доле(сам):
селф.и -= селф.спеед

Ово ствара једноставан играч са плавим кругом. Можете додати овог играча у своју игру модификацијом МиГаме класа:

увоз арцаде

СЦРЕЕН_ВИДТХ = 640
СЦРЕЕН_ХЕИГХТ = 480

класаМиГаме(аркада. прозор):
деф__у томе__(само, ширина, висина):
супер().__инит__(ширина, висина, "Моја игра")
арцаде.сет_бацкгроунд_цолор (арцаде.цолор. БЕО)
селф.плаиер = Плаиер (СЦРЕЕН_ВИДТХ // 2, СЦРЕЕН_ХЕИГХТ // 2)

дефон_драв(сам):
арцаде.старт_рендер()
селф.плаиер.драв()

дефажурирање(селф, делта_тиме):
проћи

дефглавни():
Моја игра (СЦРЕЕН_ВИДТХ, СЦРЕЕН_ХЕИГХТ)
арцаде.рун()

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

Сада у игри имате играча којег можете цртати на екрану.

Реаговање на притискање и отпуштање тастера

Да бисте одговорили на кориснички унос у игри, морате да управљате притиском и отпуштањем тастера. Библиотека Арцаде нуди две методе за руковање овим догађајима: он_кеи_пресс и он_кеи_релеасе.

Да бисте користили ове методе, морате их дефинисати у свом арцаде. Прозор поткласа. Када играч притисне или пусти тастер, арцаде ће покренути одговарајући метод, преносећи му два аргумента: тастер и модификаторе. кључ је цео број који представља шифру тастера притиснутог или отпуштеног тастера. модификатори је бит поље које представља све модификаторске тастере које је играч такође притиснуо, попут Схифт или Цонтрол.

Ево примера како да одговорите на притисак на тастер у игри:

класаМиГаме(аркада. прозор):
дефон_кеи_пресс(селф, кључ, модификатори):
ако кључ == арцаде.кеи. ЛИЈЕВО:
# Помери играча лево
елиф кључ == арцаде.кеи. ЈЕЛ ТАКО:
# Помери играча удесно
елиф кључ == арцаде.кеи. ГОРЕ:
# Помери играча горе
елиф кључ == арцаде.кеи. ДОЉЕ:
# Померите играча надоле

Да бисте одговорили на кључна издања, можете дефинисати он_кеи_релеасе метод на исти начин:

класаМиГаме(аркада. прозор):
дефон_кеи_релеасе(селф, кључ, модификатори):
ако кључ == арцаде.кеи. ЛИЈЕВО:
# Престани да помераш играча лево
елиф кључ == арцаде.кеи. ЈЕЛ ТАКО:
# Престани да помераш играча удесно
елиф кључ == арцаде.кеи. ГОРЕ:
# Престани да помераш играча горе
елиф кључ == арцаде.кеи. ДОЉЕ:
# Престани да помераш играча надоле

Важно је напоменути да хватање кориснички унос у пигаме захтева ручну проверу догађаја у оквиру ваше петље игре. С друге стране, библиотека Арцаде аутоматски позива релевантне методе када играч притисне или отпусти тастер. То значи да не морате ручно да проверавате кључне догађаје у вашој петљи игре, чиме се штедите на додатном коду.

Прилагођавање руковања уносом са тастатуре како би одговарало потребама ваше игре

Арцаде библиотека пружа много начина за прилагођавање уноса са тастатуре. Можда ћете желети да промените везе тастера за своју игру или да дозволите играчу да прилагоди сопствене везе тастера.

То можете учинити дефинисањем речника кеи_мап који пресликава сваки кључ на одговарајући метод објекта играча. Да бисте омогућили играчу да прилагоди своје везе тастера, можете додати мени подешавања који мења кеи_мап речник на основу преференција играча.

Ево примера:

класаМиГаме(аркада. прозор):
деф__у томе__(сам, ширина, висина, наслов):
супер().__инит__(ширина, висина, наслов)
селф.плаиер = Плаиер(100, 100)

селф.кеи_мап = {
арцаде.кеи. ЛЕВО: селф.плаиер.мове_лефт,
арцаде.кеи. ДЕСНО: селф.плаиер.мове_ригхт,
арцаде.кеи. ГОРЕ: селф.плаиер.мове_уп,
арцаде.кеи. ДОЛЕ: селф.плаиер.мове_довн
}

дефон_кеи_пресс(селф, кључ, модификатори):
ако кључ ин селф.кеи_мап:
селф.кеи_мап[кључ]()

дефон_кеи_релеасе(селф, кључ, модификатори):
ако кључ ин селф.кеи_мап:
селф.кеи_мап[кључ + 1]()

Одговарајте на корисничке уносе у реалном времену

Одговарање на унос корисника у реалном времену је суштински аспект креирања занимљиве игре. Ако одвојите време за правилно руковање уносом са тастатуре у својој игри, можете да креирате занимљивије и импресивно искуство за ваше играче и на крају учините да се ваша игра истакне у гужви маркетплаце.