lua - Corona SDK - Moving Player Left and Right Using Touch (Code Included) -
apologies if asked before, tried searching no avail. anyways, have sort of logic error preventing player object moving left , right when attempt move it. tips appreciated, beginner lua. thank time.
function spawnplayer() player = display.newimage('player.png') player.x = display.contentwidth * 0.5 player.y = display.contentheight - player.height player.name = 'player' physics.addbody(player) score() end function score() score = display.newtext('score: ', 1, 0, native.systemfontbold, 14) score.x = _w / 9 score.y = 0 score.text = score.text .. tostring(intscore) listeners('add') end function listeners(event) if event == 'add' --runtime:addeventlistener("accelerometer", accelplayer) --player:addeventlistener("touch", touchplayer) player:addeventlistener('touch', touchplayer) player:addeventlistener('accelerometer', accelplayer) elseif event == 'remove' runtime:removeeventlistener("accelerometer", accelplayer) player:removeeventlistener("touch", touchplayer) end end function touchplayer:touch(event) if issimulator if event.phase == "began" movex = event.x - player.x elseif event.phase == "moved" player.x = event.x - movex end if((player.x - player.width * 0.5) < 0) player.x = player.width * 0.5 elseif((player.x + player.width * 0.5) > display.contentwidth) player.x = display.contentwidth - player.width * 0.5 end end end function accelplayer:accelerometer(event) player.x = display.contentcenterx - (display.contentcenterx * (event.ygravity * 3)) if((player.x - player.width * 0.5) < 0) player.x = player.width * 0.5 elseif((player.x + player.width * 0.5) > display.contentwidth) player.x = display.contentwidth - player.width * 0.5 end end
try
print("in touch event") if issimulator if event.phase == "began" print("touch started") startx = event.x elseif event.phase == "moved" local changesincelast = event.x - startx player.x = player.x + changesincelast startx = event.x print("touch moved") end
update:
if prints nothing, have @ cause touchplayer:touch(event)
called. listeners('add')
. also, function has touchplayer
touchplayer exist when function called? try:
function listeners(event) if event == 'add' print('adding touch listener:', touchplayer) player:addeventlistener('touch', touchplayer)
Comments
Post a Comment