【flash】 水果忍者
界面展示
源代碼鏈接
鏈接:https://pan.baidu.com/s/1Fm4lnxKlMNYWg8JFngHeTg
提取碼:4u6p
主要內(nèi)容
需要幾個類
1.刀刃類
2.水果類
3.水果殘骸類
游戲主循環(huán)
類的功能
Blade 刀刃類 進行刀刃繪制 和 水果的碰撞檢測
Fruits 水果類 里面包含了水果和炸彈
FruitsWaste 水果殘骸 水果死亡后產(chǎn)生的東西
GlobalInput 全局輸入類 輸入的東西會儲存在這里
Sound_module 聲音模塊 一開始的那個調(diào)整聲音大小用的
Tool 工具類 進行各種計算,或者常用的函數(shù)
主函數(shù)
除去界面的主函數(shù)
1.水果生成
2.升級檢測
3.Tick方法運行
4.刀刃 和 水果進行碰撞檢測
5.死亡處理
6.改變界面的文字
7.死亡處理
刀刃類
tick函數(shù) 每幀執(zhí)行函數(shù)
SampleGet 獲得采樣數(shù)組函數(shù)
onDraw 繪制函數(shù)
tick函數(shù)相當于 游戲的主函數(shù)
1.進行位置采樣
2.繪制直線
3.播放聲音
刀刃
刀刃是一個 點的稀疏的數(shù)組。
鼠標移動的時候?qū)ζ浣?jīng)過的點進行記錄采樣,用采樣后的點進行各種操作。
采樣點 用隊列保存,每時間片采樣 就會剔除最先進來的那個,然后對其繪制 造成了一個延遲效果。
和水果碰撞檢測的時候,會吧稀疏的點數(shù)組 擴展成一個 密集的數(shù)組。
1.進行位置采樣
判斷鼠標按下
如果按下 {
如果采樣數(shù)組 點的數(shù)量大于9
隊列出列,以及在隊列的末尾添加新的鼠標點
否則
就直接直接添加}
否則
采樣數(shù)組變?yōu)榭?/p>
接下來是將采樣數(shù)組進行擴充。
根據(jù) 第i個點 和 第i+1 個點求得一個單位向量。用這個單位向量 進行擴展。
2.繪制刀刃
function onDraw(){//繪制刀刃var i,list1 = this.SampleListthis.contain.graphics.clear()if (list1.length>=1){for (i=1;i<list1.length;i++){this.contain.graphics.lineStyle(10,0xff00ff)this.contain.graphics.moveTo(list1[i-1][0],list1[i-1][1])this.contain.graphics.lineTo(list1[i][0],list1[i][1])}}}3 碰撞檢測
在第10幀 吧刀刃的擴展后點數(shù)組 和所有水果進行碰撞檢測。
水果類 和 水果死亡類
Fruits FruitsWaste
根據(jù)傳入來的 type生成對應(yīng)的圖片。
tick函數(shù) 沒幀執(zhí)行函數(shù) 。
move 函數(shù) 處理移動 和旋轉(zhuǎn)
getImage 函數(shù) 根據(jù)type或者圖片
hitCheck 碰撞檢測。用當前的水果對象 和傳進來的刀刃點數(shù)組進行碰撞
destroy 調(diào)用 destroySpawn 用來產(chǎn)生new出來 FruitsWaste 產(chǎn)生水果死亡特效
FruitsWaste
根據(jù)傳入的type 產(chǎn)生對應(yīng)的特效
和讓他下落
一些全局類 GlobalInput Tool
GlobalInput
Tool
static public function randint(min,max):int{ //取得一定范圍內(nèi)的隨機數(shù)return Math.round(Math.random()*(max-min))+min}static public function randfloat(min,max):Number{ return Math.random()*(max-min)+min} //向量模static public function getVectorLenght(v){return Math.sqrt(v[0]*v[0]+v[1]*v[1]) //如果是二維數(shù)組定義,怎么可以直接乘} //向量單位化static public function UnitaryVector(v){var len = Tool.getVectorLenght(v)return [v[0]/len,v[1]/len]}總結(jié)
以上是生活随笔為你收集整理的【flash】 水果忍者的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DLP 3D打印技术有什么优点
- 下一篇: ffmpeg 视频转码