Hi everyone,
I write here for keyboard implementation on Lua, because I searched a lot on Visionaire forum but unfortunately the unique Lua script I found does not work properly (my version is 5.0.9). I tried different combinations of way borders (>=2 polygons) and way points (points joint as a spiderweb) but every time i run the game (editor or build) character movement is quite always different and wrong (sometimes there is no movement, other times character can walk over the border). Does it exist a working Lua script for controlling movements character by keyboard/controller? Thank you for your support

I copy Simon Lua script below:
function keyboardHandler(eventType, character, keycode, modifiers)
if eventType==eEvtKeyUp then
print('key up: ' .. keycode)
keycode = keycode % 1073741824
if keycode == 80 then -- left
charmove_x = 0
elseif keycode == 79 then -- right
charmove_x = 0
elseif keycode == 81 then -- down
charmove_y = 0
elseif keycode == 82 then -- up
charmove_y = 0
end
createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y},25)
if keycode == 113 then -- Q
startAction("Objects[Bicchiere].Actions['Low_Profile' eseguito]")
end
if keycode == 119 then -- W
startAction("Objects[Bicchiere].Actions['High_Profile' eseguito]")
end
elseif eventType==eEvtKeyDown then
print('key pressed: ' .. keycode)
keycode = keycode % 1073741824
if keycode == 80 then -- left
charmove_x = -100
elseif keycode == 79 then -- right
charmove_x = 100
elseif keycode == 81 then -- down
charmove_y = 100
elseif keycode == 82 then -- up
charmove_y = -100
end
createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y},25)
elseif eventType==eEvtControllerKeyUp then
print('controller up: ' .. keycode)
if keycode == 1000001 then --controller key A up
createEvent('eEvtMouseLeftButtonDown')
createEvent('eEvtMouseLeftButtonUp')
-- createEvent('eEvtKeyDown',{x=0,y=0},eKeyEscape,0)
end
elseif eventType==eEvtControllerKeyDown then
print('controller down: ' .. keycode)
if keycode == 1000001 then --controller key A down
end
elseif eventType==eEvtControllerAxis then
if string.match(character, 'RIGHTX') then
mouse_x = keycode
createEvent('eEvtControllerAxisMouseMove', {x=mouse_x, y=mouse_y}, 19, 9)
elseif string.match(character, 'RIGHTY') then
mouse_y = keycode
createEvent('eEvtControllerAxisMouseMove', {x=mouse_x, y=mouse_y}, 19, 9)
elseif string.match(character, 'LEFTX') then
charmove_x = keycode
createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y}, 25)
elseif string.match(character, 'LEFTY') then
charmove_y = keycode
createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y}, 25)
end
end
return false
end
registerEventHandler('keyEvent', 'keyboardHandler')