我在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)。

09-26 15:57