草庐IT

Spritekit

全部标签

ios - SpriteKit 中 UIImageView animationImages 的等价物是什么?

我正在试验SpriteKit,我正在构建一个人形角色,它使用多个图像文件来表达面部表情。所以我可以建立一个SKSpriteNode来使用一系列其他Sprite来描绘这个角色,即每个ARM和腿以及头部的节点,但我想对脸部使用多个节点。在标准的UIKit中,您可以将UIImageView与图像数组一起使用,它会根据您设置的持续时间自动在该数组中设置动画。NSArray*animationArray=[NSArrayarrayWithObjects:[UIImageimageNamed:@"image1.jpg"],[UIImageimageNamed:@"image2.jpg"],...,

ios - 将 UIKit 坐标转换为 SpriteKit 坐标

我正在尝试将普通的uikit坐标(左上原点,宽度和高度向右和向下)转换为SpriteKit坐标(原点在节点中心,左下为负,右上为正)。有人知道怎么做吗?不幸的是,据我所知我无法解决这个问题,因为我正在使用QuartzCore在SKNode上绘图。如果不进行转换,我就会真正脱离图纸。 最佳答案 根据文档,SKView有ConvertingBetweenViewandSceneCoordinates的方法.请记住场景本身就是一个SKNode,因此如果您需要从场景坐标到特定节点坐标系,还有ConvertingtoandfromtheNod

ios - SpriteKit 中敌人的 AI

我用spritekit制作游戏已有一段时间了。我添加了敌人,想知道如何使用AI在map上控制它们(就像在任何其他游戏中一样)。我想要的是让敌人在TMXmap周围徘徊,根据随机数转弯。我曾尝试这样做,但遇到了很多问题。有谁知道任何可以帮助我解决这个问题的文章?我做了一些研究。出现“PathFinding”和“A*”,但有关于如何操作的已知解释或示例代码。任何帮助将不胜感激。 最佳答案 欢迎来到SO。首先让我说,我目前也在寻找完全相同的东西。不幸的是,采摘有点薄弱,至少我到目前为止发现的是这样。我确实找到了一些非常有趣的读物:一篇关于g

ios - SpriteKit - 确定正方形碰撞的一侧

所以对于我正在开发的应用程序,我有两个立方体发生碰撞。我以标准方式检查这个。当它们在我的“didBeginContact”方法中发生碰撞时,该应用程序会告诉我。-(void)didBeginContact:(SKPhysicsContact*)contact{if(contact.bodyA.categoryBitMask==WALL_CATEGORY&&contact.bodyB.categoryBitMask==CHARACTER_CATEGORY){CGPointpoint=contact.contactPoint;}}所以我知道碰撞发生的位置,但因为它是两个正方形,所以它可以在

ios - SpriteKit : SKNode zRotation + Anti-Aliasing

我创建了一个只有填充颜色和大小的SKSpriteNode,然后旋转它:SKSpriteNode*myNode=[SKSpriteNodespriteNodeWithColor:[SKColorgrayColor]size:CGSizeMake(100,100)];myNode.zRotation=0.2*M_PI;如何为我的SKSpriteNode启用抗锯齿?现在,灰色方block的边缘看起来呈锯齿状。我已经发现:当我创建一个灰色的100x100像素PNG并使用spriteNodeWithImageNamed:时,边缘看起来也是锯齿状的。如果我在灰色方形PNG周围添加一个1px的透明边

ios - SpriteKit 纹理图集生成器错误 2048 x 2048

我正在尝试在我的图集文件夹(myApp.atlas)中包含一个2045x1536背景png我从TextureAtlas得到以下错误:sprikekittextureatlasgeneratorerrorcannotfitinputtextureintoamaximumsupporteddimensionsof2048x2048有人知道这是为什么吗? 最佳答案 转到build设置:搜索“纹理图集”并将纹理图集的最大尺寸更改为4096*4096 关于ios-SpriteKit纹理图集生成器错

ios - 让粒子发射器轨迹跟随 spriteKit 中的手指路径

我在Xcode中创建了一个粒子发射器,它有很长的轨迹。当我将它移动到粒子发生器内部时,它会沿着我的鼠标路径留下一条轨迹。关于我的目标的一些背景信息:在我的spriteKit游戏中,用户在屏幕上拖动他们的手指来射击移动的物体。我正在尝试创建一个“子弹时间”效果,当当前手指位置接触到对象时,对象会减慢并突出显示。当手指停止移动或弹药用完时,将触发touchesEnded方法射击所有突出显示的对象。目前,我使用SKShapeNode和CGPath将它们行进的路径显示为在屏幕上绘制的一条线,但我希望使用发射器轨迹突出显示轨迹。在touchesbegind方法中,我创建了一个圆圈SpriteNo

ios - iOS Spritekit 游戏中的肌酐水平

我正在创建一个游戏,我希望它有一个可以选择关卡的场景,然后可以玩这些关卡。我只是想知道当用户达到该级别时如何着手创建级别和保存。我想在ViewController.h中创建一个BOOL并在每个场景中调用它,即LevelCompleted=YES;然后在玩家尝试玩新关卡或重玩之前的关卡时使用该bool值或者,我是否在每个场景中都有一个BOOL,然后将每个场景的头文件导入到关卡导航场景中,并使用一个BOOL来显示关卡是否已解锁。此外,要在应用关闭时保存BOOL的值,我是否使用NSUserDefaults?我已经搜索了很多关于这方面的教程,但似乎找不到任何内容。如果需要更多信息,请告诉我。

ios - SpriteKit - 获取最近的节点

有没有办法让最近的节点到一个节点?我正要编写一个方法来迭代所有节点并计算距离等...但想知道是否有更好的方法?我有30个节点,并且需要距离这30个节点中的每一个节点最近的2个节点(如果这有意义的话)。 最佳答案 从iOS10开始,您可以使用GampelayKit的空间分区功能.在二维中GKQuadtree或GKRTree取决于您的需求。来自文档:QuadtreesandR-treeshavedifferentperformancetradeoffsfordifferenttasks:quadtreescanbefasterwheno

ios - 了解 SpriteKit : Moving Sprites

这是我的第一篇文章,我正在尝试使用Apple的SpriteKit框架。我相信我对如何使用框架移动Sprite有误解。我有一个简单的例子,我想在一个简单的UP、DOWN、LEFT中移动一个hero,RIGHT方向基于点击位置,对应于“英雄”位置。一旦英雄击中block,“英雄”应该停止。出于测试目的,我只是试图点击“英雄”上方的屏幕顶部的方block墙。然后在碰撞发生后,点击“英雄”下方。我期待“英雄”向底排的方block墙移动;然而,“英雄”似乎继续向上移动并穿过顶墙。我确信我正在犯一个根本性的缺陷,我将不胜感激任何帮助。谢谢这是我写的示例场景:staticinlineCGPointC