草庐IT

ios - Sprite Kit - 应用 Impulse 向角色发射炮弹

我正在使用Sprite-Kit(Objective-C)开发游戏。在这个游戏中,你控制一只飞翔的鸟,然后从屏幕的右/上/下侧向你射出箭和其他坏射弹。我正在使用物理学而不是SKAction来实现这一点,因为我希望它看起来尽可能逼真。所以我知道在射弹上使用applyImpulse将它射向鸟,但我想知道的是如何保证射弹将直接射向鸟,无论鸟的y定位和y定位applyImpulse之前的射弹?我在完成这项工作时遇到了非常令人沮丧的事情,因此非常感谢对此问题的任何帮助。谢谢。 最佳答案 基本步骤是计算从射弹发射器到鸟的矢量分量标准化组件(可选)

ios - 了解 SpriteKit : Moving Sprites

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

ios - Sprite Kit 中的 SKSpinLockSync 是什么以及如何修复它

我收到了一份包含以下堆栈跟踪的错误报告,但我不知道问题出在哪里。我看到有人建议这可能是由于在纹理图集中有发射器图像或在添加发射器时在同一运行循环中删除发射器引起的,但我认为这两种情况都不会发生。这是一个零星的问题,我无法重新创建它。我只在错误报告中看到它。我很乐意提供任何帮助。0libsystem_platform.dylibOSSpinLockLock+11SpriteKitSKSpinLockSync(int*,void()()block_pointer)+922SpriteKit-[SKTextureloadImageData]+3003SpriteKit-[SKTextures

ios - 项目是否必须创建为 sprite 工具包,或者可以简单地添加框架?

我正在倒退一步,学习我正在制作的2D游戏的sprite工具包,而不是使用UIKit。在我学习过的所有教程中,他们都将新项目创建为Sprite-Kit,而不是单一View。只是想知道我是否必须重新创建我的游戏,或者我是否可以简单地将spritekit框架添加到我现有的项目中?谢谢。 最佳答案 可以简单地添加框架。检查SpriteKitProgrammingGuide来自苹果。Apple正在从单View应用程序创建他们的SpriteKit示例,然后Apple正在将SpriteKit框架添加到项目中。

ios - Sprite Kit - 确定滑动手势的矢量以轻弹 Sprite

我有一个游戏,其中圆形物体从屏幕底部射出,我希望能够滑动它们以沿着我滑动的方向轻弹它们。我的问题是,我不知道如何计算滑动的矢量/方向以使圆形对象以正确的速度在正确的方向上轻弹。我使用的静态向量“(5,5)”需要通过滑动速度和滑动方向来计算。此外,我需要确保一旦我第一次接触到该物体,就不会再发生这种情况,以避免双击该物体。这是我目前正在做的事情:-(void)touchesMoved:(NSSet*)toucheswithEvent:(UIEvent*)event{for(UITouch*touchintouches){CGPointlocation=[touchlocationInNo

ios - Xcode 9.1(和 9.2)- 引用的 Sprite 不执行场景编辑器中添加的 Action

我在使用SpriteKit场景编辑器时遇到了一些意想不到的行为,想知道是否有其他人遇到同样的问题。我在场景中创建了一个Sprite,并添加了使用场景编辑器移动它的Action。当我单击编辑器上的动画按钮时,Action运行良好。我在场景编辑器中使用SKReferenceNode对象将对此场景的引用添加到主场景,并且Sprite出现在编辑器中预期的主场景中。但是,当我构建并运行该应用程序时,会出现Sprite,但不会运行任何操作。我已经在Xcode9.2beta上试过了,得到了相同的结果。如果我直接从主视图Controller加载Sprite场景,所有的Action都会按预期执行,所以这

ios - 在 Sprite Kit 中播放声音

我在myScene.h中有以下代码:#importtouchBegin方法中的这段代码:[selfrunAction:[SKActionplaySoundFileNamed:@"fire.m4a"waitForCompletion:NO]];音频文件位于主文件夹中。当我运行应用程序并触摸应用程序关闭时,出现以下错误:Terminatingappduetouncaughtexception'MissingResource',reason:'Resourcefire.m4acannontbefoundinthemainbundle'我认为这是在SpriteKit中播放音频的方式,但我一定是

ios - Sprite Kit iOS 中的慢动作

有没有人知道如何在SpriteKitforiOS中实现慢动作效果?这将使包括粒子节点在内的所有节点以1/2的速度移动,并使粒子以1/2的速度移动。我可以想到如何手动执行此操作,但我想在开始实现之前获得更多想法。 最佳答案 我相信你能做到:self.physicsWorld.speed=0.5;文档引用:speedTherateatwhichthesimulationexecutes.@property(nonatomic)CGFloatspeedDiscussionThedefaultvalueis1.0,whichmeansthe

ios - 如何在 Sprite Kit 中设置要平铺的纹理

我正在制作一个sprite套件游戏,拥有一个具有平铺纹理的大型SKSpriteNode显然比拥有多个具有平铺纹理的SKSpriteNode更有效。我的问题是,当我尝试使用制作5x5瓷砖时SKTexture*tex=[SKTexturetextureWithRect:CGRectMake(0,0,5,5)inTexture:[SKTexturetextureWithImageNamed:@"tile.png"]];SKSpriteNode*node=[SKSpriteNodespriteNodeWithTexture:texsize:CGSizeMake(100,100)];图像被适本地

ios - Sprite 套件 | swift 3 |将 SKWarpGeometry 应用于节点

我在互联网上搜索了一些关于在SKSpritenodes上实现SKWarpGeometry的教程,但没有找到。我有一个TrampolineSKSpritenode和一个球SKSpritenode。ballNode=childNode(withName:"ballNode")as?SKSpriteNodeballNode?.physicsBody=SKPhysicsBody(circleOfRadius:(ballNode?.frame.size.width)!/2)ballNode?.physicsBody?.isDynamic=trueballNode?.physicsBody?.us