SpriteKit问题

时间:2014-04-28 16:47:48

标签: ios objective-c sprite-kit

我是Xcode和SpriteKit的新手。我有以下疑问。请有人帮帮我!

  1. 我正在尝试在Xcode上制作游戏。我有一个滚动的背景。我已经做了很长的背景,我想继续在循环中播放。当IPAD(非视网膜)的背景尺寸为768X10240时,我的代码没有显示背景。但是,当我将它减少到768X2048并在循环播放时,它确实如此。所以,我猜我的代码没有错。但为什么不是一个很长的背景工作?

  2. 有没有办法阻止"更新"运行方法,同时让一些SKActions运行?我尝试使用self.scene.view.paused停止一切。

  3. 是否有可能暂停一半SKAction?比如说,假设它将运行5秒钟,我在2秒后暂停我的场景,然后取消暂停。我希望SKAction从它停止的地方开始,但它没有发生。我试过了,self.speed = 0

  4. 是否可以在给定位置而不是在子节点上进行SKAction?

  5. 请帮忙!

    谢谢

2 个答案:

答案 0 :(得分:0)

  1. 如果没有看到您的代码,就无法说出您做错了什么。成功运行背景图像循环与图像的大小无关。但是,拥有非常大的图像是一个坏主意,因为它可能会将您的内存需求增加到不可接受的水平。考虑使用像Tiled这样的应用程序使用较小的图像或平铺图像。此外,每次都要使用纹理图集!

  2. 您无法阻止update:方法运行。更新方法使SKActions成为可能。

  3. 除非暂停是操作动作序列的一部分,否则一旦启动SKAction就无法暂停。您可以使用命令[self removeActionForKey:@"animation"];停止SKAction,其中self是精灵。根据您正在运行的动画,这可能会暂停动画。

  4. 这个问题毫无意义。

答案 1 :(得分:0)

嗨,老兄,请仔细阅读

在精灵工具包中创建任何游戏之前,

sprite kit文档。

1)对于滚动背景,您使用的是大尺寸图像,只需将图像分解为较小尺寸并将其保存在文件夹名称中,即文件夹yourfoldername.atlas sprite kit会自动将该文件夹视为纹理图集

2)你不能停止更新循环至少他们没有inbulit mehod为此但你可以为它创建自己的方法,例如

 boolean stopGame=FALSE;
 -(void)stopmyGame
{
    stopGame=TRUE;
 }

-(void)update:(CFTimeInterval)currentTime {
   if(stopGame)
  {
    return;
  }
  //your update code
 }

3)是的,可以在中途停止SKAction   

有两种方法

1)创建一个带键的SKAction

例如。       SKAction * moveTo = [SKAction moveToY:1000 duration:0.5];      [self runAction:up withKey:@" moveTo"];

 [self removeActionForKey:@"moveTo"];

2)设置object.speed = 0;      其中object是你自己的类,从sprite kit基类扩展

4)为什么你需要对某个位置采取行动......:)

5)你可以使用koboldkit在sprite kit之上创建一个框架,拥有spritekit不具备的所有东西

1)物理调试绘图

2)Super-Fast Renderer TMX Read&写

3)节点的插件代码 许多内置行为

4)音频引擎

和完全支持的koboldkit论坛