第八天
今天的内容有两个,上午讲了GreenShock这个轻量级的动画引擎的使用并完善了昨天的迷宫游戏。下午完善了前两天的打鸭子的游戏。
动画引擎可以设置一些让交互更加丰富的动画效果,缓动、跳跃、路径、滤镜等等,可以很方便的做出很多比较炫的效果。
示例:
//使用之前必须引入这个类或者引入com.greenshock这个包
import com.greenshock.tweenlite;
//调用TweenLite的静态方法To
TweenLite.to(object, 4, {bezier:{autoRotate:true, values:[{x:300, y:345}]}, ease:Bounce.easeOut});
下午的打鸭子的游戏,有一个关键的地方在于检测子弹和鸭子的碰撞,不知道为什么不能使用hitTestObject()方法,很让人失望,不过也可以用一个巧方法来实现,基本的原理就是计算子弹和鸭子的边框的距离来判断鸭子和子弹是否相撞,这也是一个比较原始的方法,不过管用就行。
示例:
for(var i:int=0;i<flyDuckArray.length;i++){
//取出数组中的鸭子
var fd:Duck_Fly=flyDuckArray[i];
//计算边框之间的距离的正值
var result:int=Math.sqrt(Math.pow(bu.x-fd.x,2)+Math.pow(bu.y-fd.y,2));
// trace(fd.width);
//如果他们之间的距离小于鸭子的宽度就认为打中了
if(result<fd.width){
score++;
scoreText.text="帧率:"+stage.frameRate+" 得分:"+score;
trace(score);
fd.parent.removeChild(fd);
flyDuckArray.splice(i,1);
i--;
var deathDuck:FallDuck=new FallDuck();
deathDuck.x=bu.x;
deathDuck.y=bu.y;
stage.addChild(deathDuck);
deathDuck.addEventListener(Event.ENTER_FRAME,onDeathFinish);
}
}