【问题标题】:Is there a better way to create a collision between two objects?有没有更好的方法来创建两个对象之间的碰撞?
【发布时间】:2014-12-05 05:55:56
【问题描述】:

我创建的角色经常与旨在导致游戏结束的障碍重叠。角色是flyCopter,它是一组构成整个角色的png。 blockTmp 也是由 png 组合而成的障碍物。

有时角色没有足够的碰撞,你可以在没有游戏结束的情况下逃脱,但显然它不应该重叠。当他们两个瞬间碰撞时,应该游戏结束了。奇怪的是,有时它会在接触时“死亡”,而有时它确实需要重叠。

谢谢

//字符冲突

-(void)checkGameOver{
if(GAMESTART){
if(flyCopter.position.x >= CGRectGetMaxX(self.frame) - flyCopter.copterWidth/2 - 6){
  [self showOver];
}

if(flyCopter.position.x <= CGRectGetMinX(self.frame) + flyCopter.copterWidth/2 + 6){
  [self showOver];
}

[self compareCP:blockTmp1 :flyCopter];
[self compareCP:blockTmp2 :flyCopter];
if(flyCopter.position.y <= blockTmp1.position.y - 0 + blockTmp1.size.height + 0)
if(flyCopter.position.x <= blockTmp1.position.x +20 + blockTmp1.size.width + 0)

{
    [self compareCP:blockTmp3 :flyCopter];
    [self compareCP:blockTmp4 :flyCopter];
}

[self compareCP:blockTmp5 :flyCopter];
[self compareCP:blockTmp6 :flyCopter];
if(flyCopter.position.y <= blockTmp5.position.y - 0 + blockTmp5.size.height + 0)
if(flyCopter.position.x <= blockTmp5.position.x +20 + blockTmp5.size.width + 0)

{
    [self compareCP:blockTmp7 :flyCopter];
    [self compareCP:blockTmp8 :flyCopter];
}

[self compareCP:blockTmp9 :flyCopter];
[self compareCP:blockTmp10 :flyCopter];
if(flyCopter.position.y <= blockTmp9.position.y - 0 + blockTmp9.size.height + 0)
  if(flyCopter.position.x <= blockTmp9.position.x +20 + blockTmp9.size.width + 0)

{
    [self compareCP:blockTmp11 :flyCopter];
    [self compareCP:blockTmp12 :flyCopter];
  }
}
}


-(void)compareCP:(SKSpriteNode*)flyCopters : (SKSpriteNode*)blocks{
if(flyCopters){
    if ([blocks intersectsNode:flyCopters]) {
        [self showOver];
    }
}
}

【问题讨论】:

    标签: objective-c sprite-kit collision-detection


    【解决方案1】:

    使用 Box2d 获得更好的碰撞效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2019-08-08
      • 2013-03-19
      • 1970-01-01
      相关资源
      最近更新 更多