- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Sprite Kit 创建我的第一个 iOS 应用程序,但我遇到了一个看似非常基本的问题。
我正在尝试为 SKCropNode (cropNode
) 的内容 (fillNode
) 制作动画。下面的代码很好地设置了 SKScene(我看到插图被正确遮盖,放置在正确位置的背景图像上)...
SKSpriteNode *logoBG = [[SKSpriteNode alloc] initWithImageNamed:logoBackground];
logoBG.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild:logoBG];
SKCropNode *cropNode = [[SKCropNode alloc] init];
cropNode.maskNode = [[SKSpriteNode alloc] initWithImageNamed:logoMask];
SKSpriteNode *fillNode = [[SKSpriteNode alloc] initWithImageNamed:logoImage];
[cropNode addChild:fillNode];
fillNode.position = CGPointMake(0,300);
cropNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
self.logoContent = cropNode;
[self addChild:self.logoContent];
...但我无法访问蒙版插图来为其位置设置动画(我希望它从蒙版外开始并滑入到位):
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
SKAction *moveUp = [SKAction moveByX: 0 y: 100 duration: 5];
SKAction *moveSequence = [SKAction sequence:@[moveUp]];
[self.logoContent.target_illustration runAction: moveSequence completion:^{ // '.target_illustration' = the SKSpriteNode that I want to animate; cropNode.fillNode
SKScene *titleScreen = [[TitleScreen alloc] initWithSize:self.size];
SKTransition *fade = [SKTransition fadeWithDuration:(1)];
[self.view presentScene:titleScreen transition:fade];
}];
我只能为整个 logoContent
而不是它的子节点设置动画。
有什么地方出错了吗?
最佳答案
仅供引用,如果有人想知道如何屏蔽,这里有一个简单的片段
- (void) cropNodes
{
// the parent node i will add to screen
SKSpriteNode *picFrame = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor] size:CGSizeMake(100, 100)];
picFrame.position = CGPointMake(200, 200);
// the part I want to run action on
SKSpriteNode *pic = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
pic.name = @"PictureNode";
SKSpriteNode *mask = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(80, 50)];
SKCropNode *cropNode = [SKCropNode node];
[cropNode addChild:pic];
[cropNode setMaskNode:mask];
[picFrame addChild:cropNode];
[self addChild:picFrame];
// run action in this scope
//[pic runAction:[SKAction moveBy:CGVectorMake(30, 30) duration:10]];
// outside scope - pass its parent
[self moveTheThing:cropNode];
}
- (void) moveTheThing:(SKNode *) theParent
{
// the child i want to move
SKSpriteNode *moveThisThing = (SKSpriteNode *)[theParent childNodeWithName:@"PictureNode"];
[moveThisThing runAction:[SKAction moveBy:CGVectorMake(30, 30) duration:10]];
}
关于animation - SpriteKit (SKCropNode) 中的动画蒙版图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19257923/
使用 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
我是一名优秀的程序员,十分优秀!