我有一个英雄角色都设置了CCSpriteBatchNode,它具有所有动画和帧。但是我想知道,当英雄被击中时我如何显示一个框架(我已经设置了碰撞检测)。我该如何实现这一目标?我把它放在CCSpriteBatchNode中吗?它不是移动的一部分,只适用于特殊场合。
答案 0 :(得分:0)
当英雄被击中时..改变纹理..
[spr setTextureRect:CGRectMake(startX, startY, width, height)];
它需要与动画的其余部分位于同一个批处理节点中。
答案 1 :(得分:0)
你可以设置你的英雄不可见([sprite setVisible: NO]
)并在英雄的位置显示另一个精灵。
然后,你可以将这个精灵保存在你的英雄类对象中,并提供一个方法,在碰撞发生时改变可见的精灵。像这样的东西
-(void) onCollision
{
[heroMainSprite setVisible:NO];
[heroCollisionSprite setVisible:YES];
}
此类解决方案还将保留您之前完成的所有逻辑。