首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对碰撞对象进行动画(默认情况下是移动)和无生命(轻拍时使其静止)

如何对碰撞对象进行动画(默认情况下是移动)和无生命(轻拍时使其静止)
EN

Stack Overflow用户
提问于 2011-05-19 21:24:19
回答 1查看 337关注 0票数 0

嘿,我厌倦了这段新代码,它让物体(这里是气泡)动起来,并使用精灵使它们静止不动。代码如下:

代码语言:javascript
复制
local ui = require("ui")

local gameUI = require("gameUI")
local easingx  = require("easingx")
require "sprite"

display.setStatusBar( display.HiddenStatusBar )

local physics = require("physics")
physics.start()
physics.setScale( 60 )

local backgroundPortrait = display.newImage( "sky.png", 0, 0 )
local backgroundLandscape = display.newImage( "sky.png", 80, 80 )
backgroundLandscape.isVisible = false
local disp = backgroundLandscape

local function selectBubble( event )
    local tapped = event.target  --event.target is how Corona points to the tapped bubble
    if ( tapped.bubbleSelected == false ) then
        local vx,vy = tapped:getLinearVelocity()
        tapped.xVel = vx  --stores the current velocity into bubble's "xVel" variable
        tapped.yVel = vy  --likewise for yVel
        tapped:setLinearVelocity( 0,0 ) --set bubble's velocity to 0!
        tapped.currentFrame = (3)
        tapped.bubbleSelected = true
    elseif ( tapped.bubbleSelected == true ) then
        tapped:setLinearVelocity( tapped.xVel, tapped.yVel )  --read previous velocity and set
        tapped.bubbleSelected = false
    end
end

--BUBBLE1
local bubble1 = sprite.newSprite( spriteSet1 )
bubble1.x = 100
bubble1.y = 100
physics.addBody(bubble1, {bounce=0.04,  filter = bubbleCollisionFilter})
bubble1:setLinearVelocity( 2, 4 )
bubble1:addEventListener( "tap", selectBubble )
bubble1.bubbleSelected = false
bubble1:prepare("bubble")
bubble1:play()

--BUBBLE2
local bubble2 = sprite.newSprite( spriteSet1 )
bubble2.x = 210
bubble2.y = 20
physics.addBody(bubble2, {bounce=0.05,  filter = bubbleCollisionFilter})
bubble2:setLinearVelocity( 2, 4 )
bubble2:prepare("bubble")
bubble2:play()

--BUBBLE3
local bubble3 = sprite.newSprite( spriteSet1 )
bubble3.x = 100
bubble3.y = 17
physics.addBody(bubble3, {bounce=0.02,  filter = bubbleCollisionFilter})
bubble1:setLinearVelocity( 1, 2 )
bubble3:prepare("bubble")
bubble3:play()

--BUBBLE4
local bubble4 = sprite.newSprite( spriteSet1 )
bubble4.x = 310
bubble4.y = 20
physics.addBody(bubble4, {bounce=0.4,  filter = bubbleCollisionFilter})
bubble4:setLinearVelocity( 2, 4 )
bubble4:prepare("bubble")
bubble4:play()

问题是,首先,代码似乎不起作用。其次,尽管气泡在轻敲时会改变颜色(这种颜色对大多数人来说都是一样的)。然而,每个气泡上都有一个独特的字母。如何让它工作。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2011-05-20 22:41:40

很难知道你到底在问什么,因为你的问题很模糊( "animate“是什么意思?你说的“似乎行不通”是什么意思?解释这些术语,因为它们可以表示多个含义),但我认为您希望在tap事件侦听器中将物理实体设置为“静态”。关于我正在谈论的内容,请参考这里:

http://developer.anscamobile.com/reference/index/bodybodytype

因此,在selectBubble()函数中,您可以键入类似tapped.bodyType="static“的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6059373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档