草庐IT

Sprite-kit

全部标签

ios - 添加 Watch Kit Target : com. apple.actool.errors "No such file or directory"with Image Assets 后

我刚刚在我的iOS项目中创建了一个分支,并在其中添加了一个WatchKit应用程序的目标。当我点击构建并运行时,我得到了这个奇怪的错误::error:Failedtoreadfileattributesfor"/Users/philip.brechler/Documents/motortalk/ForumApp/ForumApp/Images.xcassets/Users/philip.brechler/Documents/motortalk/ForumApp/MOTOR-TALKWatchKitApp/Images.xcassets/Users/philip.brechler/Doc

ios - 向 SKNode 施加脉冲以在屏幕上移动并检测碰撞

我正在制作一个基本的应用程序,它可以在屏幕上推送形状并检测与SpriteKit的碰撞。我的第一次尝试是在节点上使用moveTo。我遇到的问题是碰撞,物体会围绕彼此旋转而不是弹跳。因此我发现我需要使用applyForce或applyImpulse。在这种情况下,我有一个圆圈,它在生命开始时位于屏幕外。然后我们确定一个目标导出点,并希望在该方向上“轻弹”/“插入”节点。我不知道如何将Impulse应用到我作为CGPoint的目标结束位置。我需要将其发送到CGVector,但我不确定需要做什么。我环顾四周,发现了一些Raytuts,但它们只显示applyForce或moveTo。我不确定如何

ios - 将场景大小设置为查看大小?

我正在使用SpriteKit,我希望场景的大小等于View的大小。在代码中,这很容易做到:我简单地在“viewDidLoad”中添加以下内容:scene.size=skView.bounds.size但是,我也在使用sks编辑器。有没有办法将场景大小设置为sks文件中的View大小?目前,sks文件显示我的尺寸是1024和768。 最佳答案 您可以像这样手动设置您想要的尺寸:GameScene*scene=[[GameScenealloc]initWithSize:CGSizeMake(1024,768)];scene.scaleM

ios - 将 Tiled 层导出到 1 个大 png 文件以节省内存是否明智?

我刚刚在Tiled中为我的SpriteKitmap制作了背景层。主层是绘制草地、泥土、水和地block的背景层——这是玩家角色“行走”的地方。该map由16x16的图block组成(将它们保持这么小是为了在map设计过程中更好地控制小细节)。它自己的map是100x100。所以它的尺寸相当不错。由于这些背景图block,我大约有757-778个节点。这太多了,我什至没有在第二层添加一棵树。由于我使用Tiled作为带有JSTileMap的map编辑器来显示它,我能否以某种方式将准备好的背景层从Tiled导出到.png文件并将其作为1张大图片加载到游戏中以将节点数减少到1。这不会极大地提高

android - Libgdx - 渲染许多小 Sprite VS 几个大 Sprite

我正在为我的游戏制作一种效果,我有几颗(200)颗星星从屏幕边缘出现,在逐渐消失的同时向中间移动。我想单独渲染每颗星星(因为它是自己的对象),这样星星就可以具有随机速度、淡入淡出时间、大小和位置。但是我担心它可能会极大地影响旧手机的性能,更改alpha并每帧渲染200个Sprite最多20秒(我在它们淡出时重新创建它们)。作为替代方案,我可以使用更大块的星星作为同一个Sprite(一张图片),这意味着我将不得不牺牲随机效果,星星会同时淡出,obv看起来不会那么好.我无法在旧手机上进行测试,所以我想问一下,每帧循环200个Sprite是否太多了(我在每一帧和位置改变alpha的小图像)?

ios - ' fatal error : NSCoder not supported' when using UIViewController

当我尝试运行连接到默认GameScene.swift文件的ViewController之一时出现以下错误。fatalerror:不支持NSCoder:requiredinit(coderaDecoder:NSCoder){fatalError("NSCodernotsupported")}我打算使用SpriteKit,因此系统提示我使用必需的初始化程序,但我不确定为什么这会导致问题。 最佳答案 您不应该使用requiredinit(coderaDecoder:NSCoder)进行初始化,除非您已经实现了它(这是一个wholediff

ios - 玩家坠落时 Spritekit 与平台碰撞

我正在spritekitobjectivec的帮助下制作一个spritekit平台游戏。为此,我正在使用spritekit的物理引擎,一切进展顺利,只是我还没有找到一种方法来实现玩家与平台的plaformer风格碰撞。我想要的是我的玩家应该在下落时而不是在跳跃时与平台发生碰撞。如下图所示。玩家在这里跳跃,所以他不能与平台碰撞在这张图片中,玩家正在坠落,所以他必须站在平台上。我试图在didBeginContact方法中消除平台与播放器的碰撞,但这没有帮助,因为我的平台不是动态类型。添加和移除碰撞对播放器有效,但对平台无效。任何帮助将不胜感激。编辑:这是一个示例,说明如果我在与两个相邻平台

ios - Sprite Kit 中的简单碰撞

我有两个节点。玩家和敌人。我希望Enemy节点在足够近时跟随Player节点,并且Enemy节点在与Player节点碰撞时会停止。我得到的是Enemy节点位于Player之上并且两个节点都被推送。我想过以某种方式阻止Enemy节点在与Player发生碰撞时移动,但在我看来这应该是一种更清洁的方式。(我通过在更新时改变它的位置来移动敌人节点)。这是我的GameScene.sks:-(void)didMoveToView:(SKView*)view{player=[selfchildNodeWithName:@"character"];enemy=[selfchildNodeWithNam

ios - 如何在用户与场景交互后改变 Sprite 的方向?

我有一个SKSpriteNode对象,它有一系列要永远运行的Action。这些Action很简单,可以先移到最右边,然后再回到最左边。当用户在应用中输入一些值时,我需要反转方向,即。e.如果Sprite向右移动,我需要让它向左移动,反之亦然。我怎样才能做到这一点? 最佳答案 我会这样做:(在swift中)funcmovament(){ifisMovingRight==true{runAction(SKAction.sequence([SKAction.moveByX(10,y:0,duration:0.05),SKAction.pe

ios - 如何在每增加 50 点后加速 Sprite Kit 游戏

我正在使用SpriteKit制作2D游戏,我需要添加一种方法来在每50点后加速游戏。我想出了一个方法,可以根据需要增加速度,但是我必须在更新方法中每增加50点复制、粘贴和调整一个if语句。我的解决方案的另一个问题是我必须在加速后立即增加我的分数,因为如果不是这样游戏就会完全加速,尽管我不知道为什么。到目前为止,这是我的解决方案://insidetheupdatemethod//pointsareaddedwhenanenemyisdestroyed//pointSpeedisthefloatvariablethatisusedtochangepositionsif(points==4)