如何让 SKSpriteNode 不旋转纹理

Posted

技术标签:

【中文标题】如何让 SKSpriteNode 不旋转纹理【英文标题】:How to let SKSpriteNode don't rotation texture 【发布时间】:2015-01-20 05:38:02 【问题描述】:

我想在屏幕上创建一个金属球,我已经完成了材质和运行动画。但是当球滚动时,我希望纹理不应该旋转。因为那让滚球看起来不像金属球……

反正有还是没有?我可以让 SKSpriteNode 不旋转球。

SKSpriteNode *node = [self spriteNodeWithImageNamed:@"ball.png"];
node.name = @"ball";
node.size = CGSizeMake(sideSize, sideSize);
node.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius: sideSize/2];
node.physicsBody.restitution = 0.2;
node.physicsBody.friction = 0.01;
node.physicsBody.angularDamping = 0.5;
node.physicsBody.categoryBitMask = GMCategoryBall;
node.position = CGPointMake(wood.position.x,wood..position.y +wood..size.height);
node.physicsBody.contactTestBitMask =.....
node.physicsBody.collisionBitMask =.....

【问题讨论】:

【参考方案1】:

以下是一些建议:

添加另一个SKSpriteNode,但不带physicsBody,这只是为了外观。始终以球为中心。 添加另一个 SKSpriteNode 作为球的子节点,并将其旋转设置为与球的旋转相反。 添加另一个SKSpriteNode,将其physicsBody 设置为不会与场景中的任何其他内容交互的位掩码值(0 是一个不错的选择)并设置一个关节以使其锁定在球上。关闭该 Sprite 的旋转。

【讨论】:

以上是关于如何让 SKSpriteNode 不旋转纹理的主要内容,如果未能解决你的问题,请参考以下文章

SKSpriteNode 多个纹理

如何在转到角度之前将 SKSpriteNode 旋转 360°

使用纹理旋转 SKShapeNode

如何围绕节点的 Y 轴旋转 SKSpriteNode?

找到旋转的 SKSpriteNode 的精确帧

是否可以告诉 Xcode 不要在生成的纹理图集中旋转纹理?