Full code:
local player = display.newImageRect(img1, playerW, playerH)
player:setReferencePoint(display.CenterReferencePoint)
physics.addBody( player, physicsData:get(physInfo) )
player.bodyType = "kinematic"
player.isFixedRotation = true
player.xScale = playerScale
player.yScale = playerScale
player.x = 50
player.y = \_H / 2
player.name = "player"
local coin1 ={}
local coins1
coins1 = {2,2.25,2.5,2.75,3}
local rand3 = math.random (2, #coins1 )
local coin1 = movieclip.newAnim{ "images/coins/coin1@2x.png",
"images/coins/coin2@2x.png",
"images/coins/coin3@2x.png",
"images/coins/coin4@2x.png",
"images/coins/coin5@2x.png",
"images/coins/coin6@2x.png",
"images/coins/coin7@2x.png",
"images/coins/coin8@2x.png",
"images/coins/coin9@2x.png",
"images/coins/coin8@2x.png",
"images/coins/coin7@2x.png",
"images/coins/coin6@2x.png",
"images/coins/coin5@2x.png",
"images/coins/coin4@2x.png",
"images/coins/coin3@2x.png",
"images/coins/coin2@2x.png",
"images/coins/coin1@2x.png",
}
coin1.xScale = 0.5
coin1.yScale = 0.5
coin1:play()
coin1:setReferencePoint(display.CenterReferencePoint)
localGroup:insert(coin1)
physics.addBody( coin1,"kinematic", {isSensor = true, radius = 13})
coin1.name = "coin 1"
coin1.x = \_W \* 2 + \_W/2
coin1.y = \_H / rand3
local coin2 ={}
local coins2
coins2 = {2,2.25,2.5,2.75,3}
local rand4 = math.random (2, #coins2 )
local coin2 = movieclip.newAnim{ "images/coins/coin1@2x.png",
"images/coins/coin2@2x.png",
"images/coins/coin3@2x.png",
"images/coins/coin4@2x.png",
"images/coins/coin5@2x.png",
"images/coins/coin6@2x.png",
"images/coins/coin7@2x.png",
"images/coins/coin8@2x.png",
"images/coins/coin9@2x.png",
"images/coins/coin8@2x.png",
"images/coins/coin7@2x.png",
"images/coins/coin6@2x.png",
"images/coins/coin5@2x.png",
"images/coins/coin4@2x.png",
"images/coins/coin3@2x.png",
"images/coins/coin2@2x.png",
"images/coins/coin1@2x.png",
}
coin2.xScale = 0.5
coin2.yScale = 0.5
coin2:play()
coin2:setReferencePoint(display.CenterReferencePoint)
localGroup:insert(coin2)
physics.addBody( coin2,"kinematic", {isSensor = true, radius = 13})
coin2.name = "coin 2"
coin2.x = \_W \* 3 + \_W/2
coin2.y = \_H / rand4
local function onLocalCollision( self, event )
if ( event.phase == "began") then
if ( event.other.name == "coin 1" or event.other.name == "coin 2" ) then
local doCollision = function()
myCoinsNew = myCoinsNew + myCoinsVar
coinsText.text = "x "..myCoinsNew
print( self.name .. ": collision began with " .. event.other.name )
local coinAnim = movieclip.newAnim{ "images/coins/coin1@2x.png",
"images/coins/coin2@2x.png",
"images/coins/coin3@2x.png",
"images/coins/coin4@2x.png",
"images/coins/coin5@2x.png",
"images/coins/coin6@2x.png",
"images/coins/coin7@2x.png",
"images/coins/coin8@2x.png",
"images/coins/coin9@2x.png",
"images/coins/coin8@2x.png",
"images/coins/coin7@2x.png",
"images/coins/coin6@2x.png",
"images/coins/coin5@2x.png",
"images/coins/coin4@2x.png",
"images/coins/coin3@2x.png",
"images/coins/coin2@2x.png",
"images/coins/coin1@2x.png",
}
coinAnim.x = event.other.x
coinAnim.y = event.other.y
coinAnim.xScale = 0.5
coinAnim.yScale = 0.5
coinAnim:play()
coinAnim:setReferencePoint(display.CenterReferencePoint)
localGroup:insert(coinAnim)
event.other.isBodyActive = false
event.other.isVisible = false
trans1 = transition.to( coinAnim, { time=1500, x=480, y=75, alpha = 0})
end
local collisionTimer = timer.performWithDelay( 1, doCollision, 1 )
end
end
end
player.collision = onLocalCollision
player:addEventListener( "collision", player)
I want to add that although the player is kinematic to begin with, it does change to dynamic when the game starts. [import]uid: 40538 topic_id: 13795 reply_id: 51323[/import]