1

タイル張りの地図があります。cocos2Dを使用しています。アイソメ マップには CCLayerPanZoom があります。ズームとスクロール用。次に、押した位置にタイルを追加します。それは動作しません。間違った位置にタイルを挿入しています。

マップのスケーリング (可能なズームとスクロール) と関係がありますか?

-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event{

    touchLocation = [touch locationInView: [touch view]];   
    touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];
    touchLocation = [self convertToNodeSpace:touchLocation];



    CGPoint playerPos = _player.position;
    CGPoint diff = ccpSub(touchLocation, playerPos);
    if (abs(diff.x) > abs(diff.y)) {
        if (diff.x > 0) {
            playerPos.x += self.map.tileSize.width;
        } else {
            playerPos.x -= self.map.tileSize.width; 
        }    
    } else {
        if (diff.y > 0) {
            playerPos.y += self.map.tileSize.height;
        } else {
            playerPos.y -= self.map.tileSize.height;
        }
    }
    //player.position = playerPos; // Todo: Trymove

    if (playerPos.x <= (self.map.mapSize.width * self.map.tileSize.width) &&
        playerPos.y <= (self.map.mapSize.height * self.map.tileSize.height) &&
        playerPos.y >= 0 &&
        playerPos.x >= 0 ) {
        [self setPlayerPosition:playerPos];
    }

    if([TileMapLayer isOnTheMapMoreRestrictive:touchLocation map:self.map mapsize:self.map.mapSize.width] )
        [self plantObject:touchLocation];
    else
        CCLOG(@"Outside possition");

   [self setDotPosition: [self tilePosFromLocation:touchLocation tileMap:self.map]];

}



-(void)plantObject:(CGPoint) location{

    punkt = [CCSprite spriteWithFile:@"tree.png"];
    punkt. position = [self tilePosFromLocation:location tileMap:self.map];
    [_map  addChild:punkt z:4];
}
4

0 に答える 0