- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个任意形状的非自相交多边形 SKShapeNode A。作为图形效果,我想将另一个比例为 0.7 的 SKShapeNode B 放置在 A 顶部。
我迷失在 Sprite-Kits 坐标系中。我无法让 SKShapeNode B 正确定位。这应该是一个简单的问题,但我坚持了下来。感谢所有帮助!
createdShape.name = "whiteArea"
createdShape.strokeColor = shapeBorderColor
createdShape.lineWidth = 0.0
createdShape.fillColor = shapeFillColor
createdShape.alpha = 1.0
createdShape.zPosition = shapeZPosition
createdShape.glowWidth = 3.0
let graphicAddonShape = createdShape.copy() as! SKShapeNode
graphicAddonShape.setScale(0.7)
graphicAddonShape.lineWidth = 0
graphicAddonShape.zPosition = shapeZPosition + 1
graphicAddonShape.fillColor = UIColor(red: 15/255, green: 15/255, blue: 15/255, alpha: 1.0)
graphicAddonShape.name = "blackArea"
graphicAddonShape.physicsBody = nil
graphicAddonShape.position.x = createdShape.frame.width/2 - graphicAddonShape.frame.width/2
graphicAddonShape.position.y = createdShape.frame.height/2 - graphicAddonShape.frame.height/2
createdShape.addChild(graphicAddonShape)
self.addChild(createdShape)
最佳答案
这是一个使用您的代码的完整 Xcode Playground ,加上我在顶部添加了一些代码来创建场景并为描边和填充颜色等设置一些变量。
//: Playground - noun: a place where people can play
import UIKit
import SpriteKit
import XCPlayground
let sceneView = SKView(frame: CGRect(x: 0, y: 0, width: 480, height: 320))
let scene = SKScene(size: CGSize(width: 480, height: 320))
sceneView.presentScene(scene)
XCPShowView("My Scene", view: sceneView)
var createdShape = SKShapeNode(circleOfRadius: 35)
let shapeBorderColor = SKColor.greenColor()
let shapeFillColor = SKColor.yellowColor()
let shapeZPosition: CGFloat = 1.0
scene.backgroundColor = SKColor.grayColor()
createdShape.name = "whiteArea"
createdShape.strokeColor = shapeBorderColor
createdShape.lineWidth = 0.0
createdShape.fillColor = shapeFillColor
createdShape.alpha = 1.0
createdShape.zPosition = shapeZPosition
createdShape.glowWidth = 3.0
createdShape.position = CGPoint(x: 150, y: 150)
let graphicAddonShape = createdShape.copy() as! SKShapeNode
graphicAddonShape.setScale(0.7)
graphicAddonShape.lineWidth = 0
graphicAddonShape.zPosition = shapeZPosition + 1
graphicAddonShape.fillColor = UIColor(red: 15/255, green: 15/255, blue: 15/255, alpha: 1.0)
graphicAddonShape.name = "blackArea"
graphicAddonShape.position = CGPointZero // This will be in it's parent co-ordinate system
createdShape.addChild(graphicAddonShape)
scene.addChild(createdShape)
要查看输出,您必须转到“ View ”->“助理编辑器”->“显示辅助编辑器”。
您会看到我将graphicAddonShape 的位置
设置为CGPoint(0,0)。 SKShapeNode 的 position
属性引用它的中心,因此我们将 graphicAddonShape
的中心放在其父级 (createdShape
) 的位置 (0,0) 处code>) 坐标系,即 createdShape
的中心。要查看差异,请将最后一行的第二行更改为:
createdShape.addChild(graphicAddonShape)
至
scene.addChild(graphicAddonShape)
查看黑色圆圈如何根据其父级定位。
关于ios - 将 SKShapeNode 放置在彼此之上以获得图形效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36891749/
我的应用程序中有一个轮子。我需要检索它停止的切片/楔形的值。 这段代码: print(wheelScene.atPoint(CGPoint(x: wheelScene.frame.midX,
我有一个 SKShapeNode,如果满足特定条件,它需要将它的每个角都变圆。阅读下面链接提供的答案,这似乎很容易,因为我会简单地使用 |= 来圆角需要舍入的加角(4x if 语句)。 How to
我正在尝试用图像/图案填充 SKShapeNode,但仍然不成功。 你能帮我解决这个问题或者给我一个替代方案吗? 我想创建一个可碰撞的自定义形状(来自任何 SpriteKit 类型),并填充图案图像。
我正在使用 SKShapeNodes 绘制一条线。这条线不断地“生长”,或者说总是向上移动。当用户点击屏幕时,线条应以 45 度角向右或向左改变方向。它会这样做,但是由于某种原因,当它改变方向时,线中
在我的应用程序中,我有两个凹形SKShapeNode,即nodeA和nodeB,nodeA在屏幕上固定,而nodeB可以由用户手指在屏幕上拖动。 NodeA 需要能够检测 NodeB 是否与它重叠。首
我正在尝试为要遵循的节点创建 CGPath,但是当我尝试使用 608_hd_best_practices_for_building_spritekit_games 中的操作和常量幻灯片中定义的 SKS
我有一个 SKShapeNode,它有多个 SKSpriteNode 作为其子节点,这些子节点位于其中心周围的不同位置。我还旋转了 SKShapeNode,这实际上旋转了它的所有子节点。但是,当我循环
我正在开发一个小游戏,我必须匹配一些颜色。我只使用 SKShapeNodes;但我似乎无法让这段代码工作。我只得到“不同颜色”的打印结果。 func didBegin(_ contact: S
我无法让 SKShapeNode 的子类接受初始化程序。为了解决这个问题,我尝试按照此处发布的示例 Adding Convenience Initializers in Swift Subclass
我正在尝试将渐变纹理应用于从路径创建的 SKShapeNode,以便线条从纯色变为透明。这适用于 SKSpriteNode,但我无法让它在 SKShapeNode 上工作。有谁知道这个问题的解决方案?
我想在另一个正方形里画一个正方形;但我无法以正确的方式定位第二个。根据第一个平方坐标进行定位可以做什么? var tileBackground = SKShapeNode(rectOfSize
我用来生成行的代码是这样的: func populate(num: Int) { for var i = 0; i < num; i++ { let lines = Line
如何对没有实例方法初始化器的 SKShapeNode 进行子类化?我能想到的唯一方法是: + (id)withColor:(UIColor *)aColor radius:(CGFloat)aRadi
我正在开发一个应用程序,我正在根据用户手指的触摸来绘制线条。一旦收到触摸结束事件,该行将转换为最后一条路径。当收到新的触摸开始事件时,将绘制一条名为“当前路径”节点的新线。我为具有相反接触位掩码的两条
我打开了 spritekit 应用程序示例并添加了这段代码 override func didMoveToView(view: SKView) { /* Setup your scene he
最近我一直在创建一个游戏,我在屏幕上放了圆圈。但是,我注意到这些圆形不是圆形,而是椭圆形。 y 轴被拉伸(stretch),x 轴被收缩。为了弄清楚这个问题,我现在正在尝试用一个矩形进行调试。我使矩形
我可以在一个 SkShapenode 中有一条具有多种线宽和颜色的路径吗?例如 我可以在一个节点中添加三个具有不同填充和描边大小边框的不同颜色的圆圈吗? 最佳答案 skshapenodes 真的不应该
我创建了一个名为“Character”的 SKShapeNode 子类,我尝试使用 rectOfSize 对其进行初始化,但是由于必须使用指定的初始化程序,我不能这样做。 我一直在阅读有关此机制的信息
在我的简单游戏中,我需要在下一步发生之前移除所有 SKShapeNodes。这是我的代码: for child in self.children(){ if(child==SKShapeNod
有没有办法围绕某个任意点旋转 SKShapeNode,特别是矩形? 我在 gameScene 类的开头声明了我的 SKShapeNode var bladeTouch = SKShapeNode()
我是一名优秀的程序员,十分优秀!