草庐IT

spritekit

全部标签

ios - 以编程方式创建物理约束区域,SpriteKit

我想要两个区域,如下图所示,其中黄色区域包含Sprite。例如,我想让黄色区域的球在黄色区域的边界上弹跳和反射。如何在不使用sks文件的情况下以编程方式执行此操作? 最佳答案 您使用+bodyWithEdgeLoopFromRect:创建一个基于边的物理体overridefuncdidMoveToView(view:SKView){//Setupscene'sphysicsbody(setupthewalls)physicsBody=SKPhysicsBody(edgeLoopFromRect:frame)letyellowSpri

swift - 改变受重力影响时物体下落的速度。(SpriteKit)

我有一个物体需要在游戏开始时从场景中掉落​​。当玩家点击屏幕时,对象会移回场景顶部。为了使物体下落,我将其设置为受重力影响。这工作正常,但问题是物体从屏幕上掉下来的速度太快了。我可以将物体下落的速度设置为不同的速度吗?如果是这样,我该怎么做。 最佳答案 您可以降低物理世界的重力。另一种选择是对每个对象施加相反方向的力。如果重力在y轴上为-9.8,您可以在y轴上施加+0-9.8的力来减慢物体的速度。编辑:改变质量不会影响速度。 关于swift-改变受重力影响时物体下落的速度。(Sprite

ios - 在其他场景中显示插页式广告 - Admob、SpriteKit、Swift

我如何每x次用户死亡或每x次用户执行按钮等操作时显示来自admob的插页式广告?这就是我在GameScene上展示插页式广告并使用简单的if语句限制广告印象的方式。 最佳答案 仅当您拥有GoogleMobileAds.sdk并将googlemobileads模块导入到您的GameViewController和GameScene或GameOverScene中时,这才有效。我将向您展示跨场景广告实现和以编程方式限制广告展示。首先,在您的GameViewController中:importGoogleMobileAdsclassGameV

ios - SpriteKit : How to draw custom shapes without SKShapeNode?

从Apple的SKShapeNode类引用以及许多开发人员那里,我听说使用SKShapeNode绘制您想要经常在View上绘制的自定义形状是一个坏主意,因为它的性能很差。这是真的,一个带有一些自定义形状的简单应用程序使我的CPU占用率高达80%,并使用了大约80MB的内存(在设备上更好一些)。那么,我如何在不使用SKShapeNode的情况下绘制箭头等形状,因为我喜欢使用bezierpaths绘制的想法,因为我不需要关心显示大小。如何在不降低质量的情况下绘制带有纹理的箭头,因为当我移动我的触摸来拉伸(stretch)箭头时它会拉伸(stretch)我的图像。使用SKShapeNode执

ios - M_PI/Double.pi 有什么用,我们为什么要用它? SpriteKit

我正在使用swiftspritekit。嗨,我有几个关于M_PI的问题,这是我最近了解到的。对于我的游戏,我一直在研究旋转事物的不同方法。基本上,在我的游戏中有2架飞机围绕屏幕中心“飞行”。注意:当我尝试使用M_PI时,Xcode警告我使用double.pi,我用它来替换M_PI。这些东西是一回事吗?我试着找出如何围绕屏幕中心旋转平面。我发现最好的方法是使它成为中心节点的子节点,然后使用以下代码行旋转中心节点:letOrbitCenter=SKAction.rotate(byAngle:CGFloat(-2*Double.pi),duration:3.8)当我拿走Double.pi时,

ios - SpriteKit 粒子发射器改变颜色

我已经使用编辑器创建了粒子效果,现在我想在代码中更改particleColor。我已将particleColorSequence设置为nil(否则我的颜色将来自编辑器中的色带而不是我的代码)并且particleColorBlendFactor设置为1.0。我在update方法中为particleColor分配了一个随机颜色,希望它在每次循环中都会改变。它确实在第一次通过时选择了一种随机颜色,但之后颜色永远不会改变。有人可以解释为什么吗?全局letemitter=SKEmitterNode(fileNamed:"squares.sks")letcolors=[SKColor.red,SK

ios - SpriteKit 中的攻击按钮

我对Xcode有点陌生,一直在为我的类(class)制作一个2d游戏。一段时间以来,我一直遇到按钮问题。我刚刚找到了为什么我的跳跃按钮不起作用的解决方案,但我还有一个攻击按钮。我已将代码设置为显示在屏幕上并在按下时更改其图像。但是,我不知道要输入什么代码才能将播放器图像更改为跳跃动画。我也不知道如何为它和敌人设置碰撞,这样攻击动画才会命中。所以我的问题是,如何让按钮启动跳跃动画,以及如何设置碰撞以在被击中时摧毁敌人?到目前为止,这是我的代码:overridefuncsceneDidLoad(){//SetupstartbuttonjumpButton=SKSpriteNode(text

ios - Spritekit (Swift) 是否允许使用两个不同的相机节点?

所以我正在从事一个需要使用两个或更多不同相机节点的项目。问题是当我要求激活和使用第二个摄像头节点时,我收到信号SIGABRT错误。我想我明白为什么会出现这个错误,因为已经有一个事件的相机节点。但是,我的问题是我是否可以在一个场景中的不同时间和不同位置使用两个摄像机节点。感谢您的任何帮助! 最佳答案 是的,你可以:classGameScene:SKScene{letcam1=SKCameraNode()letcam2=SKCameraNode()overridefuncdidMove(toview:SKView){addChild(c

ios - 在 UIKit 和 SpriteKit 之间转换 CGPoints 问题 : UIViews next to SKNodes

有很多关于此的帖子,但无论出于何种原因,我似乎无法获得正确的正确转换顺序。我正在尝试让UISliders直接位于SKLabels的下方。正如您在图片中看到的那样,其中一个slider根本没有显示,而另一个slider在完全错误的位置(音量slider靠近搜索标签):这是我目前为实现这一目标所做的尝试,尽管我已经尝试了一些其他配置,但都无济于事:classGameScene:SKScene{letseekSlider=UISlider(frame:CGRect(x:0,y:0,width:200,height:15))letvolSlider=UISlider(frame:CGRect(

ios - SpriteKit SKScene size.width 说 1024 docs 说它应该是 768

我将应用程序设置为仅纵向。当我在初始SKScene上println(self.size.width)时,它会给我1024。文档说“所以,场景初始化为1024的高度和768的宽度......”这里:https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Nodes/Nodes.html.为什么我的宽度是1024?宽度是完全基于手机的旋转还是始终相同? 最佳答案 是的,宽度可以基于设备的方向,但如果您只