0

我已经使用纹理打包器创建了一个精灵表(青蛙跳跃),当我点击精灵时,我试图让角色向前跳跃。我创建了一个事件侦听器,当我单击精灵时,play() 方法会为精灵设置动画。但是我不能让精灵使用 applyForce 或 setLinearVelocity 方法向前跳转?这是我的代码:

require("physics")
local sprite = require "sprite"
local sheetData = require "myFrogs"  -- name of file created using texturepacker

physics.start()
physics.setGravity(0,1)
local _w = display.contentWidth/2
local _h = display.contentHeight/2

local spriteData = sheetData.getSpriteSheetData()
local spriteSheet = sprite.newSpriteSheetFromData("images/myFrogs.png", spriteData)
local spriteSet = sprite.newSpriteSet(spriteSheet, 1, 7) number of images in spritesheet
local frogSprite = sprite.newSprite(spriteSet)
frogSprite.x = _w
frogSprite.y = _h

physics.addBody(frogSprite, "static", {friction=1.0,density=1.0,bounce=0.3, radius=35})
frogSprite.isFixedRotation = true


local function frogJump(event)
if(event.phase == "ended") then  
    --frogSprite:applyForce() -- should I use this method
    --frogSprite:setLinearVelocity() -- or this method
     frogSprite:play() 

end    
end
frogSprite:addEventListener("touch", frogJump)
4

2 回答 2

1

您将青蛙的身体设置为静态 - 切换到动态,它会使用其中任何一种方法跳跃。

于 2012-11-09T23:15:56.513 回答
1

通过使青蛙身体静止,它不会受到冲动或力的影响,因此它应该是 Dynamics

Body:applyForce( xForce, yForce, bodyX, bodyY ) <- 将力应用于您的质心,即您设置的参考点。
Body:setLinearVelocity(xVelocity, yVelocity) <- 它将以每秒像素的形式提供数据速度。

于 2013-06-10T09:37:38.457 回答