现在玩家选择机器人后,可以在屏幕上或手臂上点击来移动robot’s arm了.
但是玩家选择一个机器人后没有视觉效果来表明哪个机器人被选中.玩家做了一个操作后没有视觉反馈会惹恼强迫症用户滴 ;)
这篇中我们来添加选中后的视觉效果.
打开SpriteBuilder,分别在Robot.ccb和RobotStatic.ccb中做同样的操作:
在更CCNode中添加一个粒子效果对象,位置放在机器正中,默认状态为不可见:
设置代码连结为_shine.
回到Xcode中,在Robot.h接口中添加如下新属性:
@property (nonatomic,assign) BOOL isSelected;
在Robot.m修改属性的set方法:
-(void)setIsSelected:(BOOL)isSelected{
_isSelected = isSelected;
[self applySelectedEffect];
}
添加applySelectedEffect方法如下:
-(void)applySelectedEffect{
CCColor *red = [CCColor redColor];
CCColor *white = [CCColor whiteColor];
if (_isSelected) {
_body.color = red;
_arm.color = red;
_shine.visible = YES;
}else{
_body.color = white;
_arm.color = white;
_shine.visible = NO;
}
}
最后修改touchBegan方法,在最前面添加如下一句:
self.isSelected = YES;
当机器人被选中时应用选择视觉效果,除了显示粒子效果以外,我们还将机器人手臂和身体设置为红色;如果机器人未被选中则回复原来的显示状态,实现都在以上方法中,逻辑很清楚.
现在玩家选择一个机器人,该机器背景会出现闪耀的光芒,同时机器人表面变为红色,这样醒目的提供了视觉反馈.
现在还有一个小问题,由于机器人手臂太短(Robot:怪我咯…),瞄准时的弹道轨迹看的不清楚,下一篇中我们将实现如何给机器人做一条瞄准延长线,下篇见哦 ;)