gpt4 book ai didi

swift - 快速更改动画的建议方法是什么?

转载 作者:行者123 更新时间:2023-11-30 14:06:59 24 4
gpt4 key购买 nike

我在我的卷轴游戏中使用 swift,我的英雄有不同的动画,运行、跳跃滑动等。每个动画都打包在不同的 .atlas 文件夹中更改动画的建议方法是什么?这是场景 - 英雄正在奔跑,当用户点击英雄时跳跃。

我目前实现这一点的方法是删除正在运行的操作:

hero.removeActionForKey("RUN")

并添加jumpAction(完成后我重新初始化运行 Action )这是建议的方法吗?当我使用 removeActionForKey 时,完成方法是否得到正确清理(没有内存泄漏?)

谢谢

最佳答案

有几种方法可以做到这一点。我更喜欢这个:

// declare a property
@property (nonatomic, strong) SKAction *animation;

// set a repeating animation
self.animation = [SKAction repeatActionForever:[SKAction animateWithTextures:PLAYER_RUN timePerFrame:0.1]];

// or set a one time animation
self.animation = [SKAction animateWithTextures:PLAYER_JUMP timePerFrame:0.1];

// start the animation
[self startAnimation];

// animation method
-(void)startAnimation {

[self removeActionForKey:@"animation"];

if (![self actionForKey:@"animation"]) {

if(self.animation != nil) {
[self runAction:self.animation withKey:@"animation"];

} else {

NSLog(@"Error. Animation nil");
}
}
}

动画本身是由存储在图像资源目录中的图像组成的数组。

#define PLAYER_RUN @[ \
[SKTexture textureWithImageNamed:@"PlayerRun0"], \
[SKTexture textureWithImageNamed:@"PlayerRun1"], \
[SKTexture textureWithImageNamed:@"PlayerRun2"], \
[SKTexture textureWithImageNamed:@"PlayerRun3"], \
[SKTexture textureWithImageNamed:@"PlayerRun4"] \
]

关于swift - 快速更改动画的建议方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32247226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com