bja*_*neS 3 uitouch ios sprite-kit skspritenode
有一个英雄可以通过点击屏幕来控制.我希望每次触摸屏幕时英雄看起来都有点不同.
我所做的是设置两个略有不同的图像.我希望在有触摸事件时更改英雄的形象.
到目前为止,我设置了一个数组来保存信息,但它有点无法解决:
NSMutableArray *heroFrames = [NSMutableArray array];
NSString* textureName = nil;
if (UITouchPhaseBegan) {
textureName = @"hero1.gif";
}
else {
textureName = @"hero2.gif";
}
SKTexture* texture = [SKTexture textureWithImageNamed:textureName];
[heroFrames addObject:texture];
[self setHeroFrames:HeroFrames];
self.hero = [SKSpriteNode spriteNodeWithTexture:[_heroFrames objectAtIndex:1]];
Run Code Online (Sandbox Code Playgroud)
我在运行时遇到异常..还有其他想法如何实现我的问题?
多谢你们!
欢迎来到SO.
试试这段代码:
#import "MyScene.h"
@implementation MyScene
{
BOOL myBool;
SKSpriteNode *hero;
SKTexture *texture1;
SKTexture *texture2;
}
-(id)initWithSize:(CGSize)size
{
if (self = [super initWithSize:size])
{
myBool = false;
texture1 = [SKTexture textureWithImageNamed:@"hero1.gif"];
texture2 = [SKTexture textureWithImageNamed:@"hero2.gif"];
hero = [SKSpriteNode spriteNodeWithTexture:texture1];
hero.position = CGPointMake(200, 150);
[self addChild:hero];
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if(myBool == true)
{
hero.texture = texture1;
myBool = false;
} else
{
hero.texture = texture2;
myBool = true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4447 次 |
| 最近记录: |