jjzjj

SpriteKit

全部标签

ios - 如何在 spriteKit 中进行相机移动

我为物理主体尺寸为0.0的相机创建了一个SKSpriteNode,以避免不必要的碰撞和一个世界节点:-(void)createSceneContents{SKNode*world=[SKNodenode];world.name=@"world";self.anchorPoint=CGPointMake(0.1,0);SKSpriteNode*camera=[SKSpriteNodespriteNodeWithColor:[UIColorredColor]size:CGSizeMake(300,300)];camera.physicsBody=[SKPhysicsBodybodyWith

ios - 我可以在 SpriteKit 中减慢或停止物理吗?

在我看来,一个旨在简化的框架应该有这样的方法,而不是像我现在所做的那样从物理核算中删除每个节点:[selfenumerateChildNodesWithName:@"live"usingBlock:^(SKNode*node,BOOL*stop){[noderemoveFromParent];}];如果这是一个菜鸟问题,我很抱歉,我刚刚开始使用SpriteKit。谢谢! 最佳答案 它有“那个方法”。如果您查看SKPhysicsWorldreference您会找到speed属性。Speed=0表示暂停。

ios - Spritekit : How to make a node "jump" and also move it left or right, 取决于节点位置和触摸长度?

这是我的第一篇文章,所以放轻松哈哈。我是“iOS”、“编码”、“Xcode”和“spritekit”的新手。如果我触摸屏幕上的任何地方,我希望使图像节点在正y轴上“跳跃”一段距离,尽管如果我触摸图像左侧或右侧的某处并保持一定时间,它会移动在各自的左或右方向上,距离分别为触摸的长度。不确定这是否很清楚,但我们将不胜感激!谢谢! 最佳答案 你可以像这样移动一个节点在touchesEnded:或touchesBegan:方法中:{node.position.y+=50;}为了让Sprite移动到某个地方,您也可以使用Action,有一系列

ios - SpriteKit `sprite.atlas` 包何时以及如何压缩/优化?

我的SpriteKit游戏中有一个sprites.atlas,这是我第一次尝试。在其他游戏库中,如cocos2d,通过创建spritesheet并使用像pvr这样的优化格式可以节省很多。所以我在构建游戏后查看了派生数据文件夹,并在编译游戏中找到了sprites.atlasc文件夹。该文件夹包含一个从我的个人.pngAssets编译的Sprite表(耶!)。我注意到编译后的表格是一个.png文件,出于好奇我决定将它上传到http://tinypng.com,发现图像可以轻松压缩77%。这向我表明,要么我没有看到最终Assets,要么我没有正确调整某些设置,要么.atlas文件仍然不如创建

ios - SpriteKit 动画意外停止

我正在尝试调试SpriteKit动画的一个非常奇怪的行为。它很容易重现:在Xcode中创建一个新的游戏项目,所有选项保持不变。打开GameScene.swift并将第23行从label.run(SKAction.fadeIn(withDuration:2.0))更改为label.run(SKAction.fadeIn(withDuration:0.2))连接手机并开始调试session,观察文本(Hello,World!)如何淡入并以全亮度显示。嗯,到目前为止,还不错。从Xcode停止该应用程序,然后在您的手机上点击它的图标重新启动它。观察文本虽然可见,但并未完全淡出。我发现这试图理解

ios - SpriteKit crossFadeWithDuration : between scenes not working as expected

我正在尝试使用以下代码在我的sprite套件项目中的场景之间执行一个简单的交叉淡入淡出过渡:SKTransition*crossFade=[SKTransitioncrossFadeWithDuration:1.0f];[self.viewpresentScene:gametransition:crossFade];来self主场景的一个方法。这是发生了什么:游戏场景立即出现在当前场景之上。游戏场景在1秒内淡出,显示底层当前场景。游戏场景立即出现在当前场景之上。这是我期望发生的事情:游戏场景淡入当前场景我也在其他项目(如thisone)中对此进行了测试,我获得了相同的行为。过渡是否按预

iOS7 SpriteKit 如何实现文字密集的HUD 元素?

我正在构建一个基于SpriteKit的游戏,并希望有一个平视显示器来显示各种单位统计信息(下面左侧的示例)。用户点击一个单元,可以调出一个悬停在屏幕上并与当前单元相关的面板。用户可以随时关闭面板并返回游戏。我查看了spritekit编程指南,发现它仅限于在SpriteKit中构建的一行标签节点。我也知道thisansweronaddingaUITextFieldwithindidMoveToView:但是,阅读文档似乎会在场景加载后调用didMoveToView:。我还看到场景转换是可能的,但我正在考虑的面板不需要全屏转换。我如何在iOS中使用UIView和SpriteKit元素实现如

ios - 使用 SpriteKit 手势同时分别拖动、旋转和缩放多个 Sprite

我创建了一个iOS应用程序,我需要能够在其中同时移动、旋转和缩放Sprite(我使用的是Apple的SpriteKit)。在大多数情况下,我有这个工作。我目前可以用一根手指触摸并移动Sprite,如果我用两根手指,我可以缩放和旋转Sprite。为此,我使用了UIPanGestureRecognizer、UIPinchGestureRecognizer和UIRotateGestureRecognizer。那很好用。我想要的是,当我用右手拖动、旋转和缩放一个Sprite时,我可以用我的左手独立于另一个Sprite拖动、旋转和缩放一个不同的Sprite。目前我正在使用iOS手势来移动、旋转和

ios - SpriteKit - 停止对象堆积

我想知道我应该添加什么代码来阻止岩石堆积在屏幕底部并在休息(不移动)时将它们移除。这是创建岩石的代码。如果您需要任何其他代码,请告诉我:)-(void)addRock{SKSpriteNode*rock=[SKSpriteNodespriteNodeWithImageNamed:@"asteroid"];rock.position=CGPointMake([selfmakeRandomXWBetween:0and:self.size.width],self.size.height);rock.name=@"rock";rock.physicsBody=[SKPhysicsBodybod

ios - `CACurrentMediaTime()` 的替代方案,用于在 SpriteKit 中安排事件

我对SpriteKit比较陌生,想知道除了使用CACurrentMediaTime()安排事件还有哪些替代方法。例如,我可能会实现一种算法,通过将玩家上次开火的时间加上一些“冷却”时间,并将其与当前媒体时间进行比较,从而防止玩家开火太多次:BOOLcanFire=self.lastFireInterval+self.coolPeriod我遇到的问题是,如果我决定改变一个节点甚至整个场景的速度,这个逻辑就会分崩离析。例如,如果我给玩家一个加速Prop,我可以减慢除玩家以外的所有其他节点,但敌人开火的时间会被打乱。对于影响节点速度的CACurrentMediaTime()还有哪些其他选择?