私はcocos2dを初めて使用し、タイルマップの学習に追われています。スプライトとスクロールするタイルマップレイヤーのタイルとの衝突を検出したいです。タイルマップレイヤーでは、タイルのプロパティで特定のタイル値1も設定します。問題つまり、タイルがスプライトと衝突し、スプライトが固定位置にあるときに、タイルの衝突または座標を検出するにはどうすればよいですか?
-(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];
}
}
これは私が使用しているコードです。このコードでは、タイルの座標は同じままです。