第八天
今天的內(nèi)容有兩個(gè)旬牲,上午講了GreenShock這個(gè)輕量級(jí)的動(dòng)畫引擎的使用并完善了昨天的迷宮游戲躺酒。下午完善了前兩天的打鴨子的游戲。
動(dòng)畫引擎可以設(shè)置一些讓交互更加豐富的動(dòng)畫效果,緩動(dòng)造成、跳躍手蝎、路徑榕莺、濾鏡等等俐芯,可以很方便的做出很多比較炫的效果棵介。
示例:
//使用之前必須引入這個(gè)類或者引入com.greenshock這個(gè)包
import com.greenshock.tweenlite;
//調(diào)用TweenLite的靜態(tài)方法To
TweenLite.to(object, 4, {bezier:{autoRotate:true, values:[{x:300, y:345}]}, ease:Bounce.easeOut});
下午的打鴨子的游戲,有一個(gè)關(guān)鍵的地方在于檢測(cè)子彈和鴨子的碰撞吧史,不知道為什么不能使用hitTestObject()方法邮辽,很讓人失望,不過(guò)也可以用一個(gè)巧方法來(lái)實(shí)現(xiàn)贸营,基本的原理就是計(jì)算子彈和鴨子的邊框的距離來(lái)判斷鴨子和子彈是否相撞吨述,這也是一個(gè)比較原始的方法,不過(guò)管用就行钞脂。
示例:
for(var i:int=0;i<flyDuckArray.length;i++){
//取出數(shù)組中的鴨子
var fd:Duck_Fly=flyDuckArray[i]揣云;
//計(jì)算邊框之間的距離的正值
var result:int=Math.sqrt(Math.pow(bu.x-fd.x,2)+Math.pow(bu.y-fd.y,2));
// trace(fd.width);
//如果他們之間的距離小于鴨子的寬度就認(rèn)為打中了
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);
}
}