简而言之:如何使滚动的gameScene不是无限的?
我将尝试用一个例子来解释我想要达到的目标:爬山比赛
在这个游戏中,你驾驶一辆汽车(实际上是任何一种疯狂的汽车;)爬山。
现在游戏中有一件特别的事情让我无法理解:
很明显,每个阶段的轨迹都不是随机排列的。也就是说,每次演奏时,曲目的过程总是相同的。
我想学的是:
我的游戏需要滚动两个轴(x,y)。玩家节点从游戏区域的中心开始,可以被移动。有一些障碍散布在这个地区,其中一些最初是看不见的,因为它们位于“游戏世界”的边缘。

我想最简单的解决方案是使用一个大的背景节点,但是这将如何影响游戏的内存消耗呢?
谢谢你的帮忙!
发布于 2015-05-29 12:21:44
我们在我们的SKATiledMap中构建了这样的东西。诀窍是将要跟踪的对象添加到要滚动的背景中。这也将保持背景在屏幕上。
-(void)update
{
if (self.autoFollowNode)
{
self.position = CGPointMake(-self.autoFollowNode.position.x+self.scene.size.width/2, -self.autoFollowNode.position.y+self.scene.size.height/2);
//keep map from going off screen
CGPoint position = self.position;
if (position.x > 0)
position.x = 0;
if (position.y > 0)
position.y = 0;
//self.mapHeight*self.tileWidth gives you the size of the map in points
if (position.y < -self.mapHeight*self.tileWidth+self.scene.size.height)
position.y = -self.mapHeight*self.tileWidth+self.scene.size.height;
if (position.x < -self.mapWidth*self.tileWidth+self.scene.size.width)
position.x = -self.mapWidth*self.tileWidth+self.scene.size.width;
self.position = CGPointMake((int)(position.x), (int)(position.y));
}
}在这种情况下,self是背景,autoFollowNode是参与者。您可以只使用self.size.width而不是self.mapHeight*self.tileWidth,希望这是有意义的,也是他的帮助。
https://stackoverflow.com/questions/30525452
复制相似问题