Python в игростроении/Blender/GameLogic/Keyboard sensor: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
 
Нет описания правки
Строка 1:
#Позднее прокомментирую скрипт
Здесь будет помещён скрипт, описывающий работу с клавиатурой
 
import GameLogic
import GameKeys
 
 
 
co = GameLogic.getCurrentController()
 
klavishi = co.getSensor('klavishi')
 
dvizh=co.getActuator('dvizh')
 
GameLogic.addActiveActuator(dvizh,True)
 
 
 
#Функции обработки тоько что нажатых клавиш
def pered():
dvizh.setDLoc(0,0.1,0,0)
def nazad():
dvizh.setDLoc(0,-0.1,0,0)
def vlevo():
dvizh.setDLoc(-0.1,0,0,0)
def vpravo():
dvizh.setDLoc(0.1,0,0,0)
 
#Функции обработки только что отпущенных клавиш
def pered_stop():
dvizh.setDLoc(0,0,0,0)
def nazad_stop():
dvizh.setDLoc(0,0,0,0)
def vlevo_stop():
dvizh.setDLoc(0,0,0,0)
def vpravo_stop():
dvizh.setDLoc(0,0,0,0)
 
# status: these should be added to a module somewhere
#Переменные для модуля GameKeys
KX_NO_INPUTSTATUS = 0
 
KX_JUSTACTIVATED = 1
 
KX_ACTIVE = 2
 
KX_JUSTRELEASED = 3
 
#Получаем список нажатых клавиш
keylist = klavishi.getPressedKeys()
for key in keylist:
# key[0] == GameKeys.keycode, key[1] = status
#Процедура проверки только что нажатых клавиш
if key[1] == KX_JUSTACTIVATED:
if key[0] == GameKeys.WKEY:
pered()
if key[0] == GameKeys.SKEY:
nazad()
if key[0] == GameKeys.AKEY:
vlevo()
if key[0] == GameKeys.DKEY:
vpravo()
 
#Процедура проверки только что отпущенных клавиш
if key[1] == KX_JUSTRELEASED:
if key[0] == GameKeys.WKEY:
pered_stop()
if key[0] == GameKeys.SKEY:
nazad_stop()
if key[0] == GameKeys.AKEY:
vlevo_stop()
if key[0] == GameKeys.DKEY:
vpravo_stop()
 
 
картинка необходима для правильного понимания скрипта