我在SpriteKit游戏中遇到纹理问题:
在touchesBegan
中,我这样做:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
if ([node.name isEqualToString:@"worm"]) {
[node removeAllActions];
SKAction *change = [SKAction setTexture:[SKTexture textureWithImageNamed:@"worm2"]];
[node runAction:change];
该代码有效,但是新的纹理“ worm2”已缩放,与应有的方式相比,您会发现效果很差。
从Apple文档的https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKAction_Ref/Reference/Reference.html#//apple_ref/occ/clm/SKAction/setTexture:resize:
应该有以下方法:
setTexture:resize:
但是从您放的图片中可以看到,此方法不存在。
我想念什么?
谢谢大家
最佳答案
我认为[SKAction setTexture:resize:]
仅在iOS 7.1中可用。看一下API Differences。
如果您运行的是旧版本,则可能将Xcode更新到最新版本(5.1)。