问题标签 [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 - SKNode 的位置正在改变
我有一个对象继承SKNode
了我将其位置设置为某个点的位置。我将节点添加到图层,其位置仍设置为同一点。该节点出现在(0,0)处,后来出现在其一个动作的完成块中,我看到它的位置已更改为(0,0)。
该SKNode
对象有 1 个位置为 (0,0) 的子对象(粒子发射器)。(注意粒子发射器的位置应该是(0,0),节点本身(发射器的父节点)应该在我设置的任何位置。
任何想法为什么会发生这种情况?
编辑:
我添加了
到我的班级并在那里放一个断点。当我设置位置时,断点第一次被击中,但再也没有被击中。不知何故,位置仍然是(0,0)......
编辑2:
这篇文章描述了我的确切问题。
objective-c - Xcode 5.0.2 - 尝试添加一个已经有父节点的 SKNode:
我正在尝试在 touchesBegan 方法中添加粒子效果,因此当用户触摸绘制的精灵(SKSpriteNode)时,它会绘制粒子效果。但是,我收到一个错误Attempted to add a SKNode which has a parent: SKEmitterNode。添加一些上下文...游戏是宝石/糖果迷恋风格,其中根据相邻颜色删除块(deleteNode)。在触摸事件中,我递归地迭代,检查相邻块并将它们添加到数组中以便稍后删除。在删除每个块(deleteNode)之前,我希望粒子事件发生。他们都继承自 SKNode (对吗?),所以我不明白冲突......
在初始化方法中...
在接触开始...
为了确保我没有发疯,我查看了其他论坛并看到了将粒子效果添加到场景中的相同逻辑。提前致谢。如果您需要更多信息,请告诉我。
size - 如何对 SKNode 进行子类化以将其初始化为预定大小
SKScene 是 SKNode 的子类,我们可以将其初始化为一定的大小。但 SKNode 本身缺乏这种能力,它的大小是包含孩子的最小矩形。有时我需要我的 SKNode 伸展到窗口,不管内容有多小。因此,我希望能够通过添加设置其大小的能力来自定义 SKNode 类。你知道怎么做吗?
ios - 无法点击 SKSpriteNode - 未检测到触摸 ios
我对 iOS、Objective C 和使用 Xcode 还是很陌生。我只做了一个简单的新闻类应用程序,但现在我想创建一个我在另一个平台上发布的游戏。
基本上,我有一个对象会随机出现然后淡出,目的是点击对象使其消失。
但是,即使我设置了,我似乎也无法点击该对象 mySKSpriteNode.userInteractionEnabled = YES;
这是我的touchesBegan
方法中的内容:
在我的日志中,当我点击屏幕(不是我有对象的地方)时,我得到了这个:
当我触摸 mySKSpriteNode 时,我在日志中什么也没有得到,甚至没有“某物被触摸”;
知道为什么会发生这种情况吗?
我发现的其他问题说答案是设置userInteractionEnabled = YES
....也许代码中有一个特定的点我应该设置这个?..
感谢所有帮助!
ios7 - Finding absolute position of child SKNode?
I have an SKSpriteNode that is parented to (i.e. a child of) a scrolling background. The SKSpriteNode does not move itself, it just moves along with the scrolling background. What is the best way to find the absolute position of the SKSpriteNode as the background moves.
ios7 - SKNode convertPoint toNode & fromNode 混淆?
我对SKNode
方法convertPoint:fromNode:
和convertPoint:ToNode:
工作方式有点困惑,我查看了文档,但它们的作用并不明显。例如,这个(见下图)是我使用convertPoint:fromNode:
的一个小测试黑色区域是SKScene
背景,蓝色区域是 的SKSpriteNode
父级SKScene
,红色区域是SKSpriteNode
蓝色精灵的另一个父级。两个精灵的锚点由小绿点显示。我想做的是获取红色精灵的场景位置,我使用以下代码完成了这项工作:
结果是
这是我所期望的,因为那将是场景空间中红色方块的起源。我感到困惑的是论点。据我猜测:
- SKNode_A = 要转换为的节点坐标空间 ...
- CGPoint_B =要转换的点(不知道为什么上面的[自身位置])
- SKNode_C = 要转换的节点坐标空间...
我最初的尝试是[self convertPoint:[redSprite position] fromNode:redSprite]
因为我想将红色精灵的来源转换为场景。让你的脑袋看起来有点笨拙,如果有人能对这件事和它的朋友投一点光和逻辑,convertPoint:toNode:
那将不胜感激。
scaling - SKNode 从接触点缩放
我已将 UIPinchGestureRecognizer 添加到我的 scene.view 以缩放我的内容。我实际上缩放了所有可见内容所在的父节点。但是我有缩放点的问题。问题是左下角的节点比例。这绝对不是我想要的。我是否必须编写大量代码才能从发生挤压的点进行扩展?您能否就遵循的方式提供一些提示。
objective-c - Check when SKShapeNode is clicked
So I generated an SKShapeNode, and need to know when that node is clicked. I do so by calling:
So the result I'm getting is pretty weird. Clicking the dot itself does in fact work. However, pressing anywhere on the screen that is southwest of the SKShapeNode's position will also render the above code as true.
With the SKShapeNode represented by the red dot, any UITouch in the shaded region would render my code above as true.
Here is how I am building the SKShapeNode. It may also be important to note that my application runs in landscape mode.
Thanks for any help!
xcode - SKAction 移动整个屏幕
我正在使用一个数组来跟踪我的游戏中的所有图块,并在触摸时调用此函数 -(void)moveTilesDown 它应该循环遍历所有图块并找到有空白区域的位置,然后移动图块在它之上下降一个点。在第一次触摸时一切正常,它会向下移动适当的图块,但在连续触摸时,它会向下移动整个屏幕,包括 2 个与数组无关的 SKLabelNode,不应受到任何影响。我不知道我是否以某种方式向下移动整个屏幕或单独移动每个节点。如果问题有些不清楚,我深表歉意,但我完全不知道发生了什么,因此真的不知道如何提出这个问题。任何帮助将不胜感激。
这是我的 moveTilesDown 代码:
ios - Sprite Kit 游戏:从成功的跳跃中判断自由落体死亡
我有我的第一个游戏应用程序正在开发中。在这个游戏中,用户控制的唯一角色将从一个街区跳到另一个街区。这就像马里奥(在马里奥兄弟中)从一个移动电梯跳到另一个。如果他失败了,他就会死。那么,你怎么能从成功跳跃的短暂跌落中分辨出自由落体呢?我认为我可以做的一件事是测量角色的垂直速度。所以我有以下几行代码。它与didSimulatePhysics一起使用
当游戏角色跳跃时,游戏应用程序可以记录-2022.466797的垂直速度。所以这个措施是行不通的。我还可以做些什么?设置一个不可见的条,看看游戏角色是否用intersectsNode触摸过它?那也可能失败。我以前从未开发过游戏。所以我不知道他们是怎么做到的,这让我意识到任天堂游戏开发者是多么令人印象深刻。30年过去了,我还是做不到。
感谢您的意见。
更新
我认为以下内容可以判断角色是否死于自由落体。
然而,我认为就 SKAction 而言,Apple 有一个错误需要修复。不管我怎么做,虽然角色没有摔倒,但游戏开始后大约 5 秒就会出现音频。