【问题标题】:physics.addBody() with custom shapes in Corona SDKPhysics.addBody() 与 Corona SDK 中的自定义形状
【发布时间】:2012-02-15 00:09:49
【问题描述】:

physics.addBody() 是否仅适用于圆形和矩形?或者是否可以physics.addBody() 矢量形状或精灵或带有面具或其他东西?

【问题讨论】:

    标签: vector lua collision-detection coronasdk


    【解决方案1】:

    可以使用精灵和形状,请参阅here

    local physics=require("physics")
    physics.start()
    physics.setDrawMode("hybrid")
    local obj=display.newRect(160,600,50,50)
    physics.addBody(obj,"static", {density=0.1,friction=0.1} )
    
    local obj=display.newCircle(90,500,50)
    physics.addBody(obj, "static", {density=0.1,friction=0.1,radius=50} )
    
    --equilateral triangle physics object
    local rad=30/360*2*math.pi
    local xHalfLen=80*math.sin(rad)
    local yLen=80*math.cos(rad)
    
    local obj=display.newLine(100,100, 100+xHalfLen,100+yLen)
    obj:append(100-xHalfLen,100+yLen, 100,100)
    obj.width=3
    obj:setColor(255,120,120)
    
    local triangleShape={0,0, xHalfLen,yLen, -xHalfLen,yLen}    
    --center of object is at top of triangle
    physics.addBody(obj, {density=0.1,friction=0.1,shape=triangleShape} )
    

    形状必须是凸的,并且由少于 8 条边组成。

    【讨论】:

    • 啊,我怎么会错过呢,早上6点就得停止工作了。非常感谢@cctan!你说它可能与精灵有关,这是否意味着你可以使用 png 并说所有 alpha 大于 0 的东西都是身体的一部分,你明白我的意思吗?
    • @MathiasMadsenStav 据我所知,this 是我得到的最接近的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2012-06-02
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2012-01-07
    相关资源
    最近更新 更多