多媒體程式設計

ACP Animate 2022 認證考古題

繪圖篇

  • Adobe CC Animate 2020
  • 介紹繪圖常用手法
  • 進入學習>>

Action Script程式篇

  • Action Sript 3.0
  • 進入學習>>
  • 考試>>

Canvas動畫篇

翻牌配對遊戲

02直升機前進動畫

03直升機元件反向

04直升機移動程式控制

05元件產生與消失

  • 自動生成元件;加入舞台中

  • 元件消失

 

06元件中加入隨機左右擺動移動

  • SWF下載
  • Flash成果
  • 直升機的起點X座標設定在(40-280)之間
  • HelicM_mc.x=Math.random()*240+40;
  • 當直升機的Y座標超過400時刪除直升機
  • if(HelicM_mc.y>400) this.removeChild(HelicM_mc);

07-1 倒數十秒

  • SWF下載
  • Flash成果
  • 新增動態文字: timer_txt
  • 新增一個Timer(計時器): 1000為1秒觸發一次
  • var myTimer:Timer = new Timer(100);
  • myTimer.addEventListener(TimerEvent.TIMER, myTimerFunc);
  • TimerFunction.rtf

08生命值顯示

  • SWF下載
  • Flash成果
  • 新增一個Lives元件,共有6個直升機的生命
  • 每過1秒就跳一個元件影格
  • this.lives_mc.gotoAndStop(secondUsed+1);

09亂數移動

  • SWF下載
  • Flash成果
  • 將直昇機停止運作
  • this["h0"+i+"_mc"].stop();
  • 設定每三秒就啟動一台直升機
  • var total_time: int = 4 * 1000;
  • this["h0"+j+"_mc"].play();
  • 每台直升機內部決定移動方式
  • 速度為1~8之間
  • var speed:int=Math.random()*8+1;
  • 左右移動1~8之間
  • var xMoveUnit:int =Math.random()*8+1;

10對準亂數目標移動

  • SWF下載
  • Flash成果
  • 在直升機追擊這個元件內宣告一個指向目標物的X座標的變數
  • var aimX;
  • 由於向下移動速度也是隨機,所以必須計算移動幾次就會到達終點
  • var times:int=Math.floor(480/speed);
  • 每次移動逐漸逼近目標終點
  • xMoveUnit=(aimX-this.x)/times;
  • this.x+=xMoveUnit;

11 自動產生20台直升機飛向隨機選定目標,到達後自行毀滅

  • SWF下載
  • Flash成果
  • 宣告20台直升機陣列與記錄其是否毀滅陣列
  • var HeliFly:Array=new Array(20);
    var bLive:Array=new Array(20);
  • 直升機生成
  • HeliFly[i]=new HelicAim();
    this.addChild(HeliFly[i]);
  • 隨機產生起點位置
  • HeliFly[i].x=Math.random()*240+40;
  • 隨機產生終點位置
  • HeliFly[i].aimX=Math.random()*240+40;
  • 判斷直升機是否活著?若活著且已到達終點便自我毀滅
  • this.removeChild(HeliFly[i]);
    bLive[i]=false;

12 戰鬥機元件

13 顯示鍵盤碼

  • SWF下載
  • Flash成果
  • 新增鍵盤事件監聽 KEY_DOWN
  • stage.addEventListener(KeyboardEvent.KEY_DOWN, playKeyDown);
  • function playKeyDown(event:KeyboardEvent)
  • var codeK:int = event.keyCode;
  • 左(37)上(38)右(39)下(40)

14 鍵盤控制DOWN AND UP

  • SWF下載
  • Flash成果
  • 新增鍵盤事件監聽 KEY_UP
  • stage.addEventListener(KeyboardEvent.KEY_UP, playKeyUp);
  • KEY_DOWN: 元件跳至顯示紅色
  • KEY_UP: 元件跳至顯示藍色

15 鍵盤控制戰鬥機

  • SWF下載
  • Flash成果
  • 按下左鍵持續將戰鬥機位置x遞減
  • 按下右鍵持續將戰鬥機位置x遞增
  • x有效範圍(0-262)

18 戰鬥機發射子彈

  • SWF下載
  • Flash成果
  • 定義子彈共有10顆
  • const shootFire:int = 10;
  • 戰機發射子彈
  • this["fire_mc" + shootCounter].play();
  • 當子彈觸發時,就紀錄子彈使用中
  • parent["shootFlag" + num] = true;
  • 取得子彈剛開始的出發座標
  • this.x = MovieClip(parent).actor_mc.x;
    this.y = MovieClip(parent).actor_mc.y - 20;
  • 當子彈飛出螢幕時,紀錄該子彈未使用中,
  • parent["shootFlag" + num] = false;
    gotoAndStop("待命");
聲音屬性設定

19 子彈擊中敵機

  • SWF下載
  • Flash成果
  • lasershot.wav設定類別為explode_sound
  • 擊中時觸發聲音與消失動畫
  • var chanel:SoundChannel = (new explode_sound()).play();
  • 被射中的敵機,移出場外

20 遊戲三段畫面

  • SWF下載
  • Flash成果
  • 遊戲開始;遊戲中;遊戲結束
  • 遊戲結束時動作
  • actor_mc.stopDrag();
  • bg_mc.removeEventListener(Event.ENTER_FRAME, shooting);
  • 子彈發射頻率
  • 設定ENTER_FRAME
  • bg_mc.addEventListener(Event.ENTER_FRAME, shooting);
  • function shooting(event:Event)
  • 設定需要等待多少次才擊發
  • var ShootFrequency:int=12;
    var ShootDelay:int=0;
  • ShootDelay=(ShootDelay+1) % ShootFrequency;
  • 利用敵機是否在場內來判斷是否已經全部擊落
    var bAllClear:Boolean=true;
    for(i=1;i<=totalEnemy;i++)
    if(this["enemy_mc" + i].x>0)
    bAllClear=false;
    break;
    }
    }
    if(bAllClear==true)
    gotoAndStop("遊戲結束");

21 Energy Bar

  • SWF下載
  • Flash成果
  • scaleX: 縮放橫向,0~1
  • loading_mc.bar_mc.scaleX = percentage/100;
  • 結束時停止監聽
  • removeEventListener(Event.ENTER_FRAME, loading);

22 多重砲火

23 作業討論1:輪番攻擊

23 作業討論2:簡易結構

  • Flash成果
  • 敵機子彈與我方砲火的簡易結構

24 導引線製作多重路線

25 按鈕控制角色動作

遊戲開發流程專案: 無限號太空歷險

  • 參考網址
  • 遊戲玩法確認:遊戲類型
  • 角色設定: 主角機及敵機重製
  • 動作設定: 主角機的射擊模式;敵機的飛行路線與射擊模式
  • 道具設定:特殊道具
  • UI介面設計: 分數、生命值等

單元1 小算盤有限狀態機與分鏡表

單元2 小算盤之互動模擬

  • 單元1所採用的分鏡圖為動畫方式
  • 為了更準確地模擬測試各種狀況,加入按鈕輸入做測試
  • 按鈕的製作
  • 一般、滑入、按下、感應區
  • 討論:
    • 倒退鍵的製作
    • C & CE按鈕功能
    • 浮點數的運算

單元3Flash各項動畫技巧

  • 案例1: 形狀補間 + 遮色片
  • 案例2: 移動補間 + 遮色片

單元6 程式能力測驗

單元七元件產生器

實戰作業: 象棋暗棋

  • 遊戲企劃
    • 寫出傳統的遊戲規則
    • 發想商業模式,遊戲幣使用規則
    • 遊戲商城
  • 遊戲美術
    • 遊戲介面
    • 棋盤版面
    • 棋子影片片段
  • 程式
    • 隨機產生棋子
    • 甲方選牌做翻牌移動吃牌
    • 乙方選牌做翻牌移動吃牌
    • 判斷輸贏
    • 棄權按鈕
    • 重玩按鈕
    • 計分方式

單元八企劃書之文字與分鏡腳本

熾瘟公2D動畫製程

作者
  • 40648133鄭策
  • 40648127蔡祥和
  • 40648128蔡佳穎
  • 40648129蔡懷宇

2020台南畫世代動畫影展-熾瘟公

展出時間地點
  • 日期: 109年7月4日(六)
  • 地點:台南新光影城4廳