gpt4 book ai didi

iphone - 当我转换为视网膜显示时,瓦片 map 的位置错误

转载 作者:可可西里 更新时间:2023-11-01 04:36:11 27 4
gpt4 key购买 nike

我遵循将瓦片 map 转换为视网膜显示的指南,方法是将宽度和高度的大小更改为对象的大小和位置的两倍。但正常显示的结果与视网膜显示不同 正常显示正确但视网膜显示不正确

这是非视网膜瓦片 map enter image description here

这是视网膜瓦片 map enter image description here

我还为视网膜 .tmx 文件添加了 -hd 后缀

有什么问题吗?

最佳答案

我也观察到与 cocos2D tile map 相同的问题,最后通过划分 CC_CONTENT_SCALE_FACTOR 解决了。在视网膜模式下,它给出 2.0。

CCTMXObjectGroup *objects = [tileMap objectGroupNamed:NN_TILE_MAP_OBJECT_LAYER];

CGSize s = [[CCDirector sharedDirector] winSize];

NSMutableDictionary *newtonPos = [objects objectNamed:NN_NEWTON_POS];

if(newtonPos)
{
float x = ([[newtonPos valueForKey:@"x"] floatValue])/CC_CONTENT_SCALE_FACTOR();
float y = [[newtonPos valueForKey:@"y"] floatValue]/CC_CONTENT_SCALE_FACTOR();

MyGameScreen *p = (MyGameScreen*)self.parentLayer;
p.gameActor.position = ccp(x, y);
}

//我用这个函数来获取和弦..

- (CGPoint)getTileCoordForPosition:(CGPoint)position
{
int maxTileCol = self.mapSize.height;

int x = ( (position.x-self.position.x)/TILE_SIZE);
int y = maxTileCol - ( ((position.y)-self.position.y)/TILE_SIZE);

if( x >= TILE_IN_ROW)
x = TILE_IN_ROW - 1;

if( y >= TILE_IN_COL)
y = TILE_IN_COL - 1;

return ccp(x, y);

}

关于iphone - 当我转换为视网膜显示时,瓦片 map 的位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12837104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com