pythlanx
pythlanx

Reputation: 67

Getting character to jump

I've created a sprite sheet(of a frog jumping) using texture packer and I am trying to get the character to jump forward when I click on the sprite. I've created an event listener and when I click on the sprite the play() method animates the sprite. But I can't get the sprite to jump forward using the applyForce or setLinearVelocity methods? Here is my code:

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)

Upvotes: 0

Views: 540

Answers (2)

vanshika
vanshika

Reputation: 411

By making frog body static, it will not be affected by impulse or force so it should be Dynamics

Body:applyForce( xForce, yForce, bodyX, bodyY ) <- Apply Force to your center of mass i.e Reference point you have set.
Body:setLinearVelocity( xVelocity, yVelocity ) <- It will give a velocity of data to will provide in terms of pixel per second.

Upvotes: 1

Peach Pellen
Peach Pellen

Reputation: 665

You made the frog's body static - switch to dynamic and it will jump using either of those methods.

Upvotes: 1

Related Questions