【问题标题】:How to Detect collision between tile and sprite during scrolling tile map?如何在滚动瓷砖地图期间检测瓷砖和精灵之间的碰撞?
【发布时间】:2012-06-26 11:51:39
【问题描述】:

我是 cocos2d 的新手,现在有一天我陷入了平铺地图学习中。我想检测精灵和滚动平铺地图层的平铺之间的碰撞。在平铺地图层中,我还在平铺地图层中设置了特定的平铺值 1 properties.problem 是,当我的精灵与精灵碰撞并且我的精灵处于固定位置时,我如何检测瓷砖的碰撞或坐标?

-(void)Collision:(ccTime)delta{

CGPoint playerPosition=player.position;
CGPoint tileCoordPos = [self tileCoordForPosition:playerPosition]; 
bool isTouchOnWater = NO;


int tileGID = [FloorLayer tileGIDAt:tileCoordPos];

if (tileGID != 0)
{
    NSDictionary* properties = [tileMap propertiesForGID:tileGID];
    if (properties)
    {
        CCLOG(@"NSDictionary 'properties' contains:\n%@", properties);
        NSString* isWaterProperty = [properties valueForKey:@"isWater"];
        isTouchOnWater = ([isWaterProperty boolValue] == YES);
    }
}

if (isTouchOnWater)
{
    [[SimpleAudioEngine sharedEngine] playEffect:@"alien-sfx.caf"];
    [FloorLayer removeTileAt:tileCoordPos];
}

}

这是我正在使用的代码。在此代码中,瓷砖的坐标保持不变。

【问题讨论】:

    标签: iphone objective-c ios cocos2d-iphone


    【解决方案1】:

    我通过滚动整个地图并制作两张地图来解决这个问题,一张用于地面层,一张用于物体,然后检测碰撞......它对我来说非常适合

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多