- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
例如,我有一个在屏幕上向左然后向右移动的圆圈。我希望圆仅在两个特定正方形(maskNodes)内时可见。我正在使用 SKCropNode 来尝试实现这一点,但 SKCropNode 掩码只允许我分配一个掩码。有没有人知道为 SKCropNode 分配两个或更多掩码的方法,或者是否有可能这样做。谢谢!
override func didMoveToView(view: SKView) {
anchorPoint = CGPointMake(0.5, 0.5)
backgroundColor = UIColor.whiteColor()
let mask1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(50, 50))
mask1.position.x = -100
let mask2 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(50, 50))
mask2.position.x = 100
let cropNode = SKCropNode()
cropNode.maskNode = mask1 // && mask2
addChild(cropNode)
let circle = SKShapeNode(circleOfRadius: 25)
circle.fillColor = UIColor.blackColor()
cropNode.addChild(circle)
// Move Circle
let moveLeft = SKAction.moveToX(-frame.size.width/2, duration: 2)
let moveRight = SKAction.moveToX(frame.size.width/2, duration: 2)
let seq = SKAction.repeatActionForever(SKAction.sequence([moveLeft, moveRight]))
circle.runAction(seq)
}
最佳答案
想通了,只需要将两个掩码添加到父级,然后将父级指定为 SKCropNode 掩码。
override func didMoveToView(view: SKView) {
anchorPoint = CGPointMake(0.5, 0.5)
backgroundColor = UIColor.whiteColor()
let maskParent = SKSpriteNode()
let mask1 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(50, 50))
mask1.position.x = -100
maskParent.addChild(mask1)
let mask2 = SKSpriteNode(color: UIColor.blackColor(), size: CGSizeMake(50, 50))
mask2.position.x = 100
maskParent.addChild(mask2)
let cropNode = SKCropNode()
cropNode.maskNode = maskParent
addChild(cropNode)
let circle = SKShapeNode(circleOfRadius: 25)
circle.fillColor = UIColor.blackColor()
cropNode.addChild(circle)
// Move Circle
let moveLeft = SKAction.moveToX(-frame.size.width/2, duration: 2)
let moveRight = SKAction.moveToX(frame.size.width/2, duration: 2)
let seq = SKAction.repeatActionForever(SKAction.sequence([moveLeft, moveRight]))
circle.runAction(seq)
}
关于swift - 为 SKCropNode 分配多个掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949258/
使用 SKCropNode 时,我希望添加到cropNode 的图像能够根据相应的蒙版像素 alpha 值调整每个单独的像素 alpha 值。 经过大量研究,我得出的结论是图像像素 alpha 值不会
我有一个我想部分 mask 的图像 (wallSprite),一个用作 mask 的图像 (wallMaskBox),以及一个容纳两者的节点 (wallCropNode)。当我简单地将两个图像添加为
我正在使用 Sprite Kit 创建我的第一个 iOS 应用程序,但我遇到了一个看似非常基本的问题。 我正在尝试为 SKCropNode (cropNode) 的内容 (fillNode) 制作动画
我对 SKCropNode 应用了一个蒙版我现在看到我需要什么但是裁剪节点具有完整图像的大小我只想访问裁剪部分而不是完整图像我可以将其放入 SKSpriteNode 吗?? 这是我的代码 SKSpri
我有一个蓝色的方形图像出现在屏幕上。此外,一个黄色的球会在这个正方形的中间生成并向左移动。黄色球在离开正方形时被切断,同时它应该向左移动(我使用 SKCropNode 的原因)。 我注意到,一旦我取消
下面的代码无法生成四分之一圆。但是,如果将结束角度更改为 .pi,代码会按预期生成一个半圆。 为什么四分之一圈会失败? // Create circle let circleSize
例如,我有一个在屏幕上向左然后向右移动的圆圈。我希望圆仅在两个特定正方形(maskNodes)内时可见。我正在使用 SKCropNode 来尝试实现这一点,但 SKCropNode 掩码只允许我分配一
我创建了一个圆形蒙版,并使用 sprite 工具包 SKCropNode 类为蒙版内的 Sprite 设置了动画。但面具的边缘看起来像素化。 有没有办法使用抗锯齿来平滑边缘? 最佳答案 如果您想使用抗
我有一个 SKCropNode 工作正常,除了一件事 - 蒙版图像中所有非黑色或白色的灰度值都设置为纯白色。 这意味着所有灰度 alpha 值都不会以透明方式呈现,而只是被设置为完全不透明。 这是我的
我在我的游戏中大量使用 SKCropNode 用于风格用途,还有一个案例是我构建了我自己的 UIScrollView 的 SpriteKit 版本。我注意到,当我收到触摸事件或手势识别器在某个点触发时
我有一个 SKNode(),它有 SKCropNode() 子节点。我能够运行各种操作来旋转和缩放我的 SKNode(),但是当我想使用任何类型的淡入淡出操作时,结果始终是 alpha 1 或 alp
当我尝试将场景中存在的子对象添加到 cropNode 时,应用程序卡住。但是,如果我将这个 child 作为图像添加到 Assets 中,它不会卡住。当我尝试加载该场景时,应用程序不响应点击。 我使用
更新:iOS 10 似乎已经解决了这个问题。我升级到 Swift 3 和 Xcode 8,一切都按预期工作。 我现在已经遇到过几次这个问题,我不知道这是 SKCropNode 中的错误还是我只是误用了
在我的 SpriteKit 游戏中,我有一个带有裁剪节点的可滚动节点,因此它在整个屏幕上是不可见的。我制作了一个黑色和非常小的 alpha 值的节点,它的效果超出了我的预期。 let rect
SKCropNode 的工作原理是从其受影响的节点中移除未被其源图像覆盖的所有内容。这是一种掩蔽,另一种是颠倒这种逻辑,并显示源图像未覆盖的所有内容。 SKCropNode 有一个 bool 开关来设
我一直在尝试使用 SKCropNode 将 mask 应用于 SKShapeNode,但到目前为止没有成功。认为这是一个 SpriteKit 错误 - 这是代码片段: SKNode* contentN
我是一名优秀的程序员,十分优秀!