【发布时间】:2023-03-10 12:56:01
【问题描述】:
好的,我有这个代码:
SKSpriteNode *flagTile = [((BGSKView *) self.skView).tileSprites[@"flag"] copy];
flagTile.anchorPoint = CGPointZero;
flagTile.size = touchedNode.size;
flagTile.name = @"flag";
[touchedNode addChild:flagTile];
当用户点击一个字段(一个 SKSpriteNode)时,它会向其子节点添加一个精灵 - 标志节点。 touchNode 纹理大小为 80x80,旗帜纹理为 80x80……它们完全相等,主要区别在于旗帜纹理具有透明边框。
这里:
但奇怪的事情发生了:标志节点 always 的 real(我们称之为“可点击”)区域小于touchedNode,它的位置有点奇怪.
像这样:
我的所有层的结构是这样的:compoundNode 包含两层 - A 和 B。当需要调整整个树的大小时,设置了 xScale 和 yScale (compoundNode)。没有其他与尺寸有关的操作。
我做错了什么?
我真正需要的是让我的flagTile 可点击区域与touchedNode 一样大。还有一个:如果我更换:
SKSpriteNode *flagTile = [((BGSKView *) self.skView).tileSprites[@"flag"] copy];
用这个:
SKSpriteNode *flagTile = [SKSpriteNode spriteWithColor:[UIColor clearColor] size:touchedNode.size];
效果很好。
在创建 clearColor sprite 后,我什至尝试更改纹理属性 - 没有任何效果。
谢谢。
【问题讨论】: