我是Xcode和SpriteKit的新手。我有以下疑问。请有人帮帮我!
我正在尝试在Xcode上制作游戏。我有一个滚动的背景。我已经做了很长的背景,我想继续在循环中播放。当IPAD(非视网膜)的背景尺寸为768X10240时,我的代码没有显示背景。但是,当我将它减少到768X2048并在循环播放时,它确实如此。所以,我猜我的代码没有错。但为什么不是一个很长的背景工作?
有没有办法阻止"更新"运行方法,同时让一些SKActions运行?我尝试使用self.scene.view.paused停止一切。
是否有可能暂停一半SKAction?比如说,假设它将运行5秒钟,我在2秒后暂停我的场景,然后取消暂停。我希望SKAction从它停止的地方开始,但它没有发生。我试过了,self.speed = 0
是否可以在给定位置而不是在子节点上进行SKAction?
请帮忙!
谢谢
答案 0 :(得分:0)
如果没有看到您的代码,就无法说出您做错了什么。成功运行背景图像循环与图像的大小无关。但是,拥有非常大的图像是一个坏主意,因为它可能会将您的内存需求增加到不可接受的水平。考虑使用像Tiled这样的应用程序使用较小的图像或平铺图像。此外,每次都要使用纹理图集!
您无法阻止update:
方法运行。更新方法使SKActions成为可能。
除非暂停是操作动作序列的一部分,否则一旦启动SKAction就无法暂停。您可以使用命令[self removeActionForKey:@"animation"];
停止SKAction,其中self是精灵。根据您正在运行的动画,这可能会暂停动画。
这个问题毫无意义。
答案 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论坛