Flash製作簡單塔防遊戲(一)
首先讓我們準備一張簡陋的地圖
物體要從A點移動到B點,速率為speed(每幀移動的長度)
public class Dot {
//橫座標
public var x:int;
//縱座標
public var y:int;
// constructor code
x = xPoz;
y = yPoz;
}
}
回到game.fla,把我們畫好的地圖匯入到舞臺,對齊到(0,0),新建一個圖層,在上面直接寫下以下的程式碼,
import flash.events.Event;
//路徑資料,陣列中的每個元素代表一個點,順序是從起點到終點
var pathArr:Array = [new Dot(850, 27),
new Dot(800, 27),
new Dot(627, 20),
new Dot(444, 22),
new Dot(391, 30),
new Dot(150, 31),
new Dot(90, 50),
new Dot(73, 133),
new Dot(71, 193),
new Dot(80, 220),
new Dot(110, 260),
new Dot(162, 302),
new Dot(228, 324),
new Dot(282, 320),
new Dot(540, 233),
new Dot(590, 227),
new Dot(630, 250),
new Dot(646, 293),
new Dot(651, 543),
new Dot(643, 600)];
//建立小怪物,新增到舞臺,並設定初始位置
var monster:Monster = new Monster();
addChild(monster);
monster.x = Dot(pathArr[0]).x;
monster.y = Dot(pathArr[0]).y;
//小怪的運動速率
var speed:int = 6;
//分解到兩個方向,水平vx和豎直vy
var vx:Number;
var vy:Number;
//連點之間的距離除以速率的值
var stepNums:int;
//迴圈用變數
var stepCount:int = 0;
//當前是否經過一個關鍵點(陣列中指定的點 )
var passedDot:Boolean = true;
//當前對應的關鍵點
var currentIndex:int = 0;
//關鍵點數量
var num:int = pathArr.length;
this.addEventListener(Event.ENTER_FRAME, onEnterFm);
function onEnterFm(e:Event):void
{
//如果正好通過一個關鍵點
if(passedDot)
{
//如果還沒有到最後一個關鍵路徑點
if(currentIndex < num - 1)
{
//兩相鄰關鍵點Y座標差值
var deltaY:Number = Dot(pathArr[currentIndex+1]).y - Dot(pathArr[currentIndex]).y;
//兩相鄰關鍵點X座標差值
var deltaX:Number = Dot(pathArr[currentIndex+1]).x - Dot(pathArr[currentIndex]).x;
//計算出兩相鄰關鍵點連線的角度
var angle:Number = Math.atan2(deltaY, deltaX);
//調整小怪的角度
monster.rotation = angle * (180/Math.PI);
//計算出在這兩個關鍵點之間每幀在兩個方向上的移動距離
vx = speed*Math.cos(angle);
vy = speed*Math.sin(angle);
////計算出兩相鄰關鍵點連線的長度(勾股定理)
var dis:Number = Math.sqrt(deltaY*deltaY+deltaX*deltaX);
//距離除以速率,得到的值表示在這個值表示的幀數內不用再計算vx和vy
stepNums = int(dis/speed);
}
//
passedDot = false;
}
if(stepCount < stepNums)
{
//只要小於stepNums,怪物移動的方式如下
monster.x += vx;
monster.y += vy;
}
else
{
//沒有運動到終點
if(currentIndex < num - 1)
{
//對應關鍵點移動到下一個
currentIndex++;
//迴圈計數重置
stepCount = 0;
//通過了一個點,開始一段新路程
passedDot = true;
//將小怪定位到新起點
monster.x = Dot(pathArr[currentIndex]).x;
monster.y = Dot(pathArr[currentIndex]).y;
}
}
stepCount++;
}
按下cltr+enter執行一下,看到小怪的確是按照指定的路徑在運動,而且小怪的自轉角度也是合適的。
文章來自http://cdbym.blog.163.com/blog/static/28331498201167104013925/
相關文章
- 用 threejs 製作一款簡單的賽車遊戲JS遊戲
- Golang簡單製作一個池Golang
- 用unity製作簡單的太空遊戲(2)-簡單炮臺Unity遊戲
- 抵禦惡意http攻擊,使用redis製作一個簡單的防禦HTTPRedis
- 簡單的製作frameworkFramework
- ROM簡單製作教程
- 用 Laravel 簡單製作 SitemapLaravel
- 簡單的網頁製作網頁
- 每天學一點flash flash簡單加密講解(1)加密
- Unity3D-塔防遊戲專案主要原始碼(防禦塔指令碼)Unity3D遊戲原始碼指令碼
- 利用JavaScript製作星星金字塔JavaScript
- 氣球塔防6 for Mac(BloonsTD6 塔防闖關遊戲)Mac遊戲
- 寶塔簡單實用
- 使用Python製作一個簡單的刷微博器Python
- 友盟開放日:策略塔防類遊戲《帝國塔防2》的運營反思錄遊戲
- jQuery外掛製作簡單介紹jQuery
- 製作簡單的個人網頁教程網頁
- RoboDefense機器人塔防遊戲詳細攻略機器人遊戲
- [Cocos2d塔防遊戲開發]Cocos2dx-3.X完成塔防遊戲《王國保衛戰》--簡介+程式碼+資源遊戲開發
- 用Unity開發一款塔防遊戲(一):攻擊方設計Unity遊戲
- 製作一個超簡單的全屏外掛(基於JQuery)jQuery
- Angularjs製作簡單的路由功能簡單程式碼例項AngularJS路由
- 動作+生存+潛行+塔防……一個人花費五年開發的遊戲可以“奇特”到什麼地步?遊戲
- Dreamweaver製作簡易的拼圖遊戲教程遊戲
- Debian安裝包的簡單製作
- 而立之年的塔防遊戲,還能屹立多久?遊戲
- python 精靈模組非常簡單的讓小朋友製作遊戲和動畫Python遊戲動畫
- python手機版做小遊戲程式碼大全-python簡單小遊戲程式碼 怎麼用Python製作簡單小遊戲...Python遊戲
- CSS樣式案例(2)-製作一個簡單的登入介面CSS
- Unity《ATD》塔防RPG類3D遊戲架構設計(一)Unity3D遊戲架構
- 《變數》的策劃日誌(上):如何設計一個塔防遊戲?變數遊戲
- IOS開發 製作簡單的計算器iOS
- 利用js製作簡單的動態日曆JS
- 演算法:塔防遊戲中的路徑尋找演算法遊戲
- ps技巧:如何用ps簡單製作一張創意封面(技巧分享)
- 塔防遊戲又見黑馬——《小兵別囂張》不一樣的投放套路遊戲
- NFT 製作生成簡單入門——批量道具藏品生成
- 小遊戲的製作遊戲