傳播藝術 品味生活 您的位置: 首頁
 關鍵詞推薦
 瀏覽中國網欄目
Flash 遊戲製作:搶手棋
藝術中國 | 時間: 2006-02-14 11:10:52 | 文章來源: 天極設計線上

    大家還記得童年時代玩的搶手棋嗎?通過擲兩顆骰子,來決定我們在棋盤上走的步數,先到終點者為勝利,它伴隨我們渡過了美好的童年時代,現在回味起來也感到非常有趣,那麼我們不妨用flash來做一個類似的搶手棋,一起回憶快樂的童年,同時也鍛鍊一下自己的flash製作能力。文章末尾提供fla源文件下載。

  整個遊戲最終完成後,主界面如圖1所示:

圖1

  棋盤由一些標有數字的方塊組成,數字代表走棋的順序,左下角是我們遊戲的兩個主角,他們兩個要爭奪到達終點的第一名,本遊戲的重點設置在標識著28的方塊,您也可以擴大遊戲規模,製作方法是完全一樣的。在數字27的旁邊我們可以看到一個小方框,它是遊戲中的骰子,用滑鼠點擊它就可以擲骰子開始玩了,棋盤上有幾個方塊比較特殊,上面沒有標識數字,而是標識了一些説明性的文字,代表了如果主角跳到了此方塊,將要執行的一些動作,這樣可以給遊戲增強一些趣味性,下面我們就開始遊戲的製作。

  佈置棋盤:

  首先在主場景中將默認的圖層layer1更名為”背景”,然後我們按照如圖2所示佈置好我們的棋盤:

圖2

  角色製作:

  此步要來製作我們遊戲中的兩位主角,藍臉和紅臉,他們將爭奪誰第一個到達終點。

  1.  選取newàsymbol功能表命令新建一個graphic組件,命名為”紅臉”,在組件編輯狀態下從外部導如一幅紅臉的圖片,並按ctrl+f8將其打散,如圖3所示:

  2.  接下來製作紅臉在運動中的伸縮動畫。選取new->symbol新建一個grapgic組件,命名為”活動的紅臉”,在”組件編輯狀態下,將組件”紅臉”拖到編輯區中,然後在圖層layer1的第7幀和第13幀分別插入兩個關鍵幀,回到第7幀關鍵幀,使用縮放工具將紅臉對象在垂直方向上進行適當的縮小,如圖4所示:

  3.  然後分別在第1幀和第7幀,第8幀和第13幀之間建立motion運動過渡,時間線如圖5所示:

圖5

  4.  再新建一個movieclip組件,命名為”紅臉主角”,將組件”活動的紅臉”放到編輯區中,這個mc的主要作用是模擬在整個棋盤上的運動,也就是順著棋盤上的數字方塊走一圈,用幾個motion就可以實現,從圖1的棋盤中我們可以看出,要順方塊走一圈,需要拐6個彎,所以分別在第100幀,第185幀,第270幀,第326幀,第375幀,第420幀插入六個關鍵幀,從第1幀開始,直到最後一幀,分別對對象做相應的motion運動過渡,運動方向可以參考圖1中的棋盤佈局。

  5.  新建一個圖層,在第一關鍵幀加as:stop();然後每隔15幀插入一個關鍵幀,每個關鍵幀加as: /:u = Number(/:u)+1;,異地是變數值遞增1.

  6.  按照1—5步驟的方法,製作組件”藍臉”,‘活動的藍臉“,“藍臉主角”,如圖6所示:

  7.  主角做好後,回到主場景中,新建兩個圖層,分別重命名為紅臉和藍臉,並將組件”紅臉主角”和”藍臉主角”分別放到相應的圖層中,如圖7所示:

圖7

  8.  在properties面板中分別給對象”紅臉”和”藍臉”起instance名為hong和lang.
骰子製作:

  此步我們來製作遊戲中決定主角每次所走步數的骰子。

  1.  新建一個graphic組件並命名為主體,然後在編輯區中用矩形工具畫一個填充色為白色,邊框為黑色的正方形,作為擲骰子前骰子的狀態,如圖8所示:

  2.  在建立一個graphic組件,並命名為點,也就是作為骰子上的點,用橢圓工具畫一個黑色的正圓,如圖9所示:

  3.  新建一個movie clip組件,命名為“合成的點”,在這個mc裏來製作從一點到六點的不同狀態。將圖層layer1的第1到第6幀全部設置為關鍵幀,然後分別將組件”點”拖到編輯區中,第一幀放一個,第二幀放兩個,依此類推,第六幀放六個,然後用align工具排列好,如圖所示:

  4.  再新建一個圖層layer2,在第1幀加as: /:dianzhi = 1;, 在第2幀加as: /:dianzhi = 2;, 在第3幀加as: /:dianzhi = 3;, 在第4幀加as: /:dianzhi = 4;, 在第5幀加as: /:dianzhi = 5;, 在第6幀加as: /:dianzhi = 6;, 在第7幀加如下as:

  if (Number(/:red) == 1) {
    tellTarget ("/re") {
        gotoAndStop(1);
    }
    /:red = 0;
  } else {
    tellTarget ("/re") {
        gotoAndPlay(2);
    }
   /:red = 1;
  }
 //通過變數red的不同值,觸發不同的動作,並對red進行不同的設置

  5.  因為我們的骰子需要通過滑鼠點擊來觸發,所以需要用到按鈕,確切的説是用一個隱形按鈕配合前面的主體對象,就可以實現。所以我們新建一個button組件,並命名為觸發器,只在hit幀插入關鍵幀,然後畫一個矩形,大小和前面的主體組件差不多就可以,如圖16所示:

圖16

  6.  下面我們就用前面準備好的組件來製作骰子控制器。新建一個movie clip組件,命名為” 合成的控制器”,進入組件編輯狀態後,建立三個圖層,分別命名為layer1,layer2和layer3.

  7.  將組件”主體”拖放到layer1的第1幀中,然後將組件”觸發器”拖放到圖層layer3的第1幀中,並調整位置和主體重疊,然後加入as:stop();,如圖17所示:

圖17

  8、在圖層layer1的第15幀插入一個關鍵幀,做一個主體對象從右到左的旋轉移動motion,幀範圍是1—15幀之間,然後將按f5將幀延續到30幀,在圖層layer2的第15幀也插入一個關鍵幀,將組件”合成的點”拖動到主體的上面,然後在properties面板上命名為”dian”,並也同樣延續到30幀,如圖18所示:

圖18

  8.  回到圖層layer3,在第15幀加入as:

  tellTarget ("dian") {
    gotoAndStop(random(7));
  }
 //控制骰子的隨機跳轉,以決定顯示幾點

  在第30幀加入as:

  if (Number(/:red) == 1) {
    tellTarget ("/kong") {
        gotoAndStop(4);
    }
  } else {
    tellTarget ("/kong") {
        gotoAndStop(2);
    }
  }
 //根據變數red的值的不同,跳轉到組件kong的不同幀

  在第43幀加入as: stop();

  最後的時間線如圖19所示:

圖19

  9.  回到主場景,新建一個圖層”隨機”,將組件”合成的控制器”放到27號方塊的右邊,在properties面板中命名為”re”,如圖20和圖21所示:

圖20

圖21

  情節組件製作:

  1.建六個movie clip組件,分別命名為情節1到情節6.

  2.情節1加as:

  tellTarget ("/lang") {
    gotoAndStop("h1");
  }
  stop();

  給情節2加as:

  tellTarget ("/lang") {
    gotoAndStop("h2");
  }
  stop();

  給情節3加as:

  tellTarget ("/lang")
  stop();
  //調用不同的情節,實現角色的跳轉

  3.情節4加as:

  tellTarget ("/hong") {
    gotoAndStop("h1");
   }
  stop();

  給情節5加as:

  tellTarget ("/hong") {
    gotoAndStop("h2");
   }
  stop();

  給情節6加as:

  tellTarget ("/hong") {
    gotoAndStop("h3");
   }
   stop();

  //調用不同的情節,實現角色的跳轉

  遊戲控制器的製作:

  到此步為止,遊戲的所有前期工作都完成了,最後的任務是給遊戲加控制器了,這也是遊戲的核心部分,擔負著控制遊戲順利進行的任務。

  1.  新建一個movie clip組件,命名為”控制紅臉”,給組件添加如下as:

  if (Number(/:dianzhi) == Number(/:u)) {
  tellTarget ("/kong") {
      gotoAndStop(3);
  }
  /:red = 1;
  /:u = 0;
} else {
  tellTarget ("/hong") {
      nextFrame();
  }
}
//根據全局變數red和u的值,對角色紅臉進行控制

  2.  再新建一個movie clip組件,命名為”控制藍臉”,給組件添加如下as:

  if (Number(/:dianzhi) == Number(/:u)) {
  tellTarget ("/kong") {
      gotoAndStop(3);
  }
  /:red = 1;
  /:u = 0;
} else {
  tellTarget ("/hong") {
      nextFrame();
  }
}
//根據全局變數red和u的值,對角色藍臉進行控制

  3.  最後再次建一個movie clip組件,命名為”主控制器”,進入組件編輯狀態後,在圖層layer1上添加5個關鍵幀,在第1個關鍵幀上添加as:stop();.

  4.  在第2個關鍵幀上將組件”控制紅臉”拖到編輯區中,同樣再第4關鍵幀中將組件”控制白臉”也拖到編輯區中。

  5.  給第三關鍵幀加as:

  tellTarget ("/re") {
    gotoAndPlay(2);
  }

  6.給第5關鍵幀加as:

  tellTarget ("/re") {
     gotoAndPlay(1);
   }

  7.最後時間線如圖22所示:

圖22

  8.  最後回到主場景中,新建一個圖層” 控制中樞”,將組件”主控制器”拖到主場景中,最後的時間線如圖23所示:


圖23

  到此為止遊戲就製作完成了,您可以開始回憶一下童年時代的遊戲了,本遊戲製作過程雖然有點複雜,但是用到的action並不多,關鍵是如何組織遊戲和進行遊戲的設計及構思,這才是最關鍵的。

列印文章    收 藏    歡迎訪問藝術中國論壇 >>
發表評論
昵 稱 匿名

 

相關文章

藝術中國 | 廣告服務 | 招聘資訊 | 聯繫我們 | 合作夥伴
版權所有 中國網際網路新聞中心 電子郵件: artchina@china.org.cn 電話: 86-10-88828128
Copyright © China Internet Information Center. All Rights Reserved