问题标签 [sknode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - SKAction 在另一个动作之后没有运行
我基本上是在尝试编写一个“在杯子下找球”游戏进行练习。所以有 3 个杯子,还有一个要找到的目标。全部使用SKSpriteNode
. 目标随机是一个杯子的孩子,并且随着父母围绕SKNode
.
在每场比赛之间,程序应该通过简单地向上然后向下动画来显示目标在哪里。这里的序列码:
以及使用它的方法:
该代码工作正常,但只是第一次,之后,该方法被调用但从未通过[_target runAction ...]
。
但是,如果目标确实进入旋转/交换,它就会起作用。所以我的问题是:有什么可以让节点忽略它运行操作方法吗?NSLog(@"presentTarget()")
就像我说的那样被调用,但不是反应。
ios - 将一个 SKNode 移动到多个位置;停在每一个
我正在制作一款游戏(准确地说是 Advance Wars 的克隆版),并且我正在尝试让 Unit 移动。
这是我目前正在使用的代码。
问题是该单位甚至不移动。或者如果他们这样做,只有他们应该距离的一半左右。他们也没有在下一个被调用之前完成移动动作。
任何帮助将不胜感激!
ios - 我可以在 SpriteKit 中减慢或停止物理吗?
在我看来,一个旨在简单的框架会有这样的方法,而不是像我现在正在做的那样从物理核算中删除每个节点:
如果这是一个菜鸟问题,我很抱歉,我刚刚开始使用 SpriteKit。谢谢!
objective-c - 如何删除精灵套件中落在屏幕下方的节点?
我正在制作一个游戏,其中随机障碍物从屏幕顶部落下,玩家必须避开它们。我在实施删除屏幕下方节点(障碍物)的方法时遇到问题。虽然看起来很简单,但我产生障碍的方式却让人感到困惑。这是我如何产生障碍:
这就是我尝试(但失败)删除屏幕下方的那些:
你们会如何建议我这样做?
ps 请用代码解释...
objective-c - TouchesBegan 方法没有选择正确的节点
在我的 SKScene 的 TouchesBegan 方法中,我正在检查用户是否选择了一个节点:
我的节点都在这样的方法中初始化:
当然,除了名称和颜色属性之外,这些方法都相似。节点分为两行,一个在 y 120,另一个在 y 55,X 不同,但是当用户单击第 120 行或第 55 行中的任何节点时,记录的节点名称最多是来自该节点的名称正确的。为什么会这样?我做错了什么?
ios - 重新定义 SKNode 意味着我必须将节点重新添加为子节点?
我的代码中有一个案例,如果我重新定义它指向的内容,我似乎必须重新添加一个子节点,但我不太明白为什么。
例如:
做 1 似乎释放了我游戏中的很多节点,但我认为这没有必要,因为我将 _childNode 指向正下方的另一个节点,所以我认为我最初指向的节点(和 _childChildNode)会引用计数为 0 并且会被释放?
我也不认为我需要做 2,因为我之前已经将 _childNode 添加到 _worldNode 但是如果我不添加此行(可能来自 removeAllChildren 调用),我的游戏似乎只是空白。
你知道我是否在这里遗漏了什么吗?
ios - 在 NSThread 中花费时间后 iOS7 SpriteKit 崩溃
我目前正在编写一个包含一个或多个 AI 玩家的回合制 SpriteKit 游戏。每个 AI 一次轮到一个,并使用共享实例找到自己的解决方案solutionFinder
,但在分离线程中执行此操作,因为有时需要几秒钟......
...whereself
是当前 AI 玩家,并且scene
是 parent SKScene
,其中包含一个SKNode
以 AI 玩家为孩子的。当线程只运行几毫秒时,一切都很好,但是当线程运行几秒钟时,我很少SKScene
在's-(void)update:(CFTimeInterval)currentTime
方法中得到 EXC_BAD_ACCESS 异常。
我添加了一些引发异常的 NSLog,它正在取消引用SKNode
包含问题的 AI 播放器的 NSLog。但是,记录指针指向的地址表明它不会从有效访问变为无效访问 - 分离线程是否可能在线程完成时错误地释放 SKNode,或者是否有其他问题?
NSThread 调用的方法被包裹在一个@autorelease
.
objective-c - 如何将 SKNode 添加到 SKScene
当我输入这一行时initWithSize:Size
我检索错误Thread 1:signal SIGABRT
world
是一个 SKNode- 应该在的孩子
world
也是SKNode的
我在这里做错了什么,因为当我将 SKNode 添加到场景中时,我检索到错误
initWithSize:Size
方法:
createChunks:
方法:
创建块将块添加到world
world
在这里创建
堆栈跟踪
ios - 如何从 SKNode 中删除子 SKSpritenode?
我将解释我的代码的一部分。我有在屏幕上向下移动的 Spritenodes(图像)。
_objects
是一个SKNode
并且Square
是一个SKSpriteNode
。现在有我的代码:每一秒都有一个方块,它来自“屏幕上方”并且正在移动到底部。(屏幕上还有一个以上的正方形)。
现在我想要这个:当我触摸一个正方形时,它应该被“删除”或隐藏,但只有我触摸的那个。使用我的代码,当我触摸时,所有方块都会被删除或什么都没有。我尝试使用 removefromparent 和 removechild,但我无法解决它。
你有什么建议我该怎么做?感谢您的回答。穆罕默德
ios - 尝试从 if 语句添加 SKNode 时应用程序崩溃
我正在尝试使用 a 在静止背景上创建移动背景NSTimer
,它工作正常,直到我调用命令添加另一个孩子。这是我得到的错误。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attemped to add a SKNode which already has a parent: <SKSpriteNode> name:'(null)' texture:[<SKTexture> 'groundGrass.png' (53 x 71)] position:{159, 35} size:{808, 71}
这是我移动地面的代码:
这是其余的:
}
当 groundGrass.png 移过屏幕上应该添加另一个子节点的点时,它会崩溃...