【发布时间】:2014-03-24 19:14:15
【问题描述】:
抱歉,如果之前有人问过这个问题,我尝试搜索无济于事。无论如何,我有某种逻辑错误阻止我的播放器对象在我尝试移动它时左右移动。任何提示将不胜感激,因为我是 Lua 的初学者。感谢您的时间。
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' then
--Runtime:addEventListener("accelerometer", accelPlayer)
--player:addEventListener("touch", touchPlayer)
player:addEventListener('touch', touchPlayer)
player:addEventListener('accelerometer', accelPlayer)
elseif event == 'remove' then
Runtime:removeEventListener("accelerometer", accelPlayer)
player:removeEventListener("touch", touchPlayer)
end
end
function touchPlayer:touch(event)
if isSimulator then
if event.phase == "began" then
moveX = event.x - player.x
elseif event.phase == "moved" then
player.x = event.x - moveX
end
if((player.x - player.width * 0.5) < 0) then
player.x = player.width * 0.5
elseif((player.x + player.width * 0.5) > display.contentWidth)
then
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) then
player.x = player.width * 0.5
elseif((player.x + player.width * 0.5) > display.contentWidth)
then
player.x = display.contentWidth - player.width * 0.5
end
end
【问题讨论】:
-
发生了什么?什么没有发生?你期望会发生什么?你做了什么来试图找出问题?
-
很抱歉。发生的事情是,当我触摸播放器并沿屏幕滑动时,什么也没有发生。我希望角色根据我的手指移动的位置左右移动。我已经尝试在不同的地方和不同的对象上添加监听器等等。