您好我使用此代码滚动我的瓷砖地图,实现视差滚动的最佳方法是什么?我找到了一种方法,但它并没有很好地发挥作用。 :(
- (void)setViewpointCenter:(CGPoint)position {
NSInteger x = MAX(position.x, self.size.width / 2);
NSInteger y = MAX(position.y, self.size.height / 2);
x = MIN(x, (self.map.mapSize.width * self.map.tileSize.width) - self.size.width / 2);
y = MIN(y, (self.map.mapSize.height * self.map.tileSize.height) - self.size.height / 2);
CGPoint actualPosition = CGPointMake(x, y);
CGPoint centerOfView = CGPointMake(self.size.width/2, self.size.height/2);
CGPoint viewPoint = CGPointSubtract(centerOfView, actualPosition);
self.map.position = viewPoint;
}
谢谢大家的帮助!
答案 0 :(得分:0)
将背景地图滚动为前景精灵的固定百分比。通常情况下,这只是在大多数运动发生的轴上完成(例如,侧向卷轴为水平,向上卷轴为垂直)。
以下伪代码,假设从地图左下角开始的侧卷轴,左下角为(0,0),向上/向右移动时轴增加
backgroundPercent = 80
background_x = foreground_x * backgroundPercent / 100
backgroup_y = foreground_y
使用上述内容,您的背景地图只需要与前景的宽度的80%