草庐IT

Sprite-kit

全部标签

ios - 手动动画纹理时 SKSpriteNode 拉伸(stretch)

我有一个相当简单的动画,其中包含8个相同大小的图像。我没有使用内置的动画方法,因为我想手动控制动态动画的速度。我正在使用预加载的SKTexture并执行[objectsetTexture:texture];在update:currentTime方法中。问题是有时纹理会变得非常扭曲/拉伸(stretch)。经过大量调试后,我将其缩小为仅在节点静止时发生。事实上,如果我将节点移动一个像素并像这样将其移回原位,问题就不会发生:[selfsetTexture:texture];CGPointcurrentPosition=self.position;self.position=CGPointM

ios - 在 SKScene 上运行 SKTransition 会破坏原始 SKScene 吗?

在SKScene上运行SKTransition会破坏原始SKScene吗?例如:SKTransition*reveal=[SKTransitionrevealWithDirection:SKTransitionDirectionDownduration:1.0];GameConfigScene*newScene=[[GameConfigScenealloc]initWithSize:CGSizeMake(1024,768)]];//Optionally,insertcodetoconfigurethenewscene.[self.scene.viewpresentScene:newSc

ios - 如何为 SpriteKit 创建图集

如何为SpriteKit创建图集?我试图将我所有的图像传输到某个文件夹并给它扩展名。结果文件夹将称为“somefolder.atlas”。这是正确的使用方法吗? 最佳答案 听起来不错。确保您还在Xcode设置中启用了图集生成(查看关于此的officialdocumentation,以及逐步图片)。然后,假设您的图集文件夹名为“somefolder.atlas”并且它包含一个文件“1.p​​ng”,您将执行如下操作:SKTextureAtlas*atlas=[SKTextureAtlasatlasNamed:@"somefolder"

ios - Sprite Kit - 不允许节点移出屏幕

我正在创建一个我不希望玩家能够移出屏幕的游戏。该节点跟随玩家移动触摸。我的代码“正在build中”,因此玩家无法从顶部或右侧移出,但我不希望玩家能够从任何一侧移出。-(void)movementPlayer{SKAction*actionMoveX=[SKActionmoveToX:MIN(location2.x-playerPositionX,self.size.width-(_player.size.width/2))duration:0];SKAction*actionMoveY=[SKActionmoveToY:MIN(location2.y-playerPositionY,s

ios - Spritekit - 创建一个 "wall"

我想知道如何使用spritekit创建一堵墙。物体上的东西不能移动过去。我知道我可以使用这段代码:self.physicsBody=[SKPhysicsBodybodyWithEdgeLoopF​​romRect:self.frame];...但是当我使用该代码时,我基本上也得到了“地板”。我希望物体能够穿过屏幕底部但不能离开侧面。在此先感谢您的帮助!最好的问候,路易斯。 最佳答案 听起来您需要2个物理体,屏幕的每一侧各一个。尝试使用类似的东西。//LeftWallSKNode*node=[SKNodenode];node.phys

ios - 轻松/高效地检查/删除 SKScene 子画面?

使用SpriteKit开发iOS游戏。我的背景由mapblock组成(本质上是无限map,程序生成)。我们的系统旨在管理map的“block”,我们只加载玩家附近的block。由于SpriteKit要求我们添加SKSpriteNodes,因此我们无法完全控制“卸载”不再靠近玩家的block/瓦片的Sprite。我意识到SpriteKit实际上不会在屏幕外渲染东西,但如果我们不能删除不再需要的Sprite,或者检查是否已经添加了block/图block,它会降低性能。由于SKNodes不响应isEqual:,我只看到两种方法:给每个Sprite一个名字和它们的block/瓦片坐标,并在每

ios - 如何给 SpriteKit 添加背景音乐?

我试过这样做:letsoundFilePath=NSBundle.mainBundle().pathForResource("GL006_SNES_Victory_loop.aif",ofType:"GL006_SNES_Victory_loop.aif")letsoundFileURL=NSURL(fileURLWithPath:soundFilePath!)letplayer=AVAudioPlayer(contentsOfURL:soundFileURL,fileTypeHint:nil)player.numberOfLoops=-1//infiniteplayer.play()

iOS 如何在 Sprite Kit 游戏中创建音频淡入/淡出效果?

我对如何在我的SpriteKit游戏中管理背景音乐以实现淡入/淡出很感兴趣。我注意到SpriteKit有一个内置的声音播放器,但它似乎对非常短的效果更有用,比如“击中”的声音:[selfrunAction:[SKActionplaySoundFileNamed:@"music.mp3"waitForCompletion:NO]];似乎没有办法阻止这种声音。我正在使用KoboldKit,它带有可以播放声音的OALSimpleAudio库:[[OALSimpleAudiosharedInstance]preloadEffect:@"die.wav"];[[OALSimpleAudiosha

ios - 如何在 Sprite Kit 中创建边界

刚开始使用spritekit制作游戏,我需要知道的是如何设置边界以使我的角色停留在屏幕上,因为不会因重力而掉落并且不会在你足够点击屏幕。 最佳答案 为SKScene定义physicsBody:self.physicsBody=[SKPhysicsBodybodyWithEdgeLoopFromRect:self.frame];在Apple'sdocumentation中有很好的描述,list8-1 关于ios-如何在SpriteKit中创建边界,我们在StackOverflow上找到一个

ios - SKShapeNode 不适用于 IOS 7

gameOverBox=[SKShapeNodeshapeNodeWithRectOfSize:CGSizeMake(self.size.width-80,self.size.height/2-100)];gameOverBox.fillColor=[SKColoryellowColor];gameOverBox.position=CGPointMake(self.size.width/2,self.size.height/4);[selfaddChild:gameOverBox];我试图运行我在IOS8上制作的游戏,它运行时出现0个错误。但在尝试在IOS7设备、模拟器或实际设备上运行