iphone - 我如何在cocos2d中使用瓦片坐标而不是常规坐标

标签 iphone objective-c ios xcode cocos2d-iphone

我还是 cocos2d 的新手,我遇到了这个问题,当我使用 ccp 坐标时,即使我移动到下一个屏幕,它也会保持在相同的位置。我得出的结论一定是我没有使用瓷砖坐标。所以我需要一些帮助来转换。

   - (CGPoint)tileCoordForPosition:(CGPoint)position {
float x = floor(position.x / map.tileSize.width);
float levelHeightInPixels = map.mapSize.height * map.tileSize.height;
float y = floor((levelHeightInPixels - position.y) / map.tileSize.height);
return ccp(x, y);
  }

-(CGRect)tileRectFromTileCoords:(CGPoint)tileCoords {
float levelHeightInPixels = map.mapSize.height * map.tileSize.height;
CGPoint origin = ccp(tileCoords.x * map.tileSize.width, levelHeightInPixels -    ((tileCoords.y + 1) * map.tileSize.height));
return CGRectMake(origin.x, origin.y, map.tileSize.width, map.tileSize.height);
} 

这就是我用来将常规坐标转换为瓦片 map 坐标的方法。

现在我试图在特定位置(0,0)生成一个敌人

     -(void)addsaw{

CCSprite *saw = [CCSprite spriteWithFile:@"saw.png"]; 
// Determine where to spawn the target along the Y axis
CGSize winSize = [[CCDirector sharedDirector] winSize];
int minY =saw.contentSize.height/2;
int maxY = winSize.height - saw.contentSize.height/2;
int rangeY = maxY - minY;
int actualY =  ( rangeY) + minY;

//THIS IS THE PROBLEM RIGHT HERE
saw.position = ccp(0,0);
[self addChild:saw];
// Create the actions
id actionMove = [CCMoveTo actionWithDuration:actualDuration 
                                    position:ccp(-saw.contentSize.width/2, actualY)];
id actionMoveDone = [CCCallFuncN actionWithTarget:self 
                                         selector:@selector(spriteMoveFinished2:)];
[saw runAction:[CCSequence actions:actionMove, actionMoveDone, nil]];
saw.tag = 1;
[_saws addObject:saw];

   }

如何更改我的 addsaw 的 ccp 以便我可以让它在图 block (0,0) 而不是 cocos2d 常规 (0,0) 生成

最佳答案

您应该将您的 Sprite 添加到您的 cctmxtiledmap 而不是图层!

关于iphone - 我如何在cocos2d中使用瓦片坐标而不是常规坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022829/

相关文章:

ios - UIStackView - 三个排列的具有相对宽度的 subview

iphone - 如何安全地重命名 iOS 分发配置文件?

iphone - Tableview 的 Plist 搜索

iphone - 执行 segue 后,MBProgressHUD 事件指示器不显示在 viewDidAppear 中

ios - 在 RestKit 中成功查找后获取 Null 值

ios - Swizzling SKStoreProductViewController viewWillAppear 或 viewDidAppear 不工作

c++ - Xcode C++ 调试

ios - iPhone 6 和 iPhone 6 Plus 的方向问题

ios - 无效的 ipa 文件 : info. plist is missing CFBundleName error showing when upload ipa file on diawi

objective-c - 如何在 Cocoa 编程中访问不同类的对象