Re: [問題] 新手上路─迷宮遊戲 (actionscript語法)
※ 引述《chip58 (Chip)》之銘言:
: 今天又想了一下,決定不用計時功能,呵,因為覺得迷宮夠難走了,
: 所以我取消計時功能,要改成提前放棄,也就是說如果沒走完想放棄了,
: 就按放棄,然後畫面就跑出"YOU LOSE"的字樣還有取笑的笑聲,
: 如果撐到最後到達終點,一到達終點畫面就跑出"YOU WIN"的字樣還有拍掌的背景聲
: 所以我的問題就是:
: 1.該如何寫控制被操控的圓圈走動時的上下左右的程式,
: 還有碰到"牆壁"就不能過的程式?
先學控制的部分
我的架構是迷宮裡面放有兩個影片片段
一個是 迷宮.地圖
另一個是 迷宮.玩家
下面是往上移動的程式碼
onEnterFrame=function(){ //每一影格執行一次
if (Key.isDown(Key.UP)){ //當按下↑的時候
迷宮.玩家._y -- ; //玩家往上移動
}
}
上下左右你可以自己試著寫寫看
onEnterFrame = function(){
當按下↑的時候,玩家往上移動
當按下↓的時候,玩家往下移動
當按下←的時候,玩家往左移動
當按下→的時候,玩家往右移動
}
但是這樣還不夠,因為沒有判斷撞牆的部分
先會上面的部分之後,再來作判斷撞牆的部分
//如果玩家往上移動後會碰到牆壁
if(迷宮.地圖.hitTest(迷宮.玩家._x,迷宮.玩家._y - 10,true)){
//如果玩家往上移動後不會碰到牆壁
if(迷宮.地圖.hitTest(迷宮.玩家._x,迷宮.玩家._y - 10,true) == false){
把這個加入在剛剛的程式碼裡面
onEnterFrame=function(){
當按下↑的時候,如果玩家往上移動後不會撞牆,就往上移動
if (Key.isDown(Key.UP)){
if(迷宮.地圖.hitTest(迷宮.玩家._x,迷宮.玩家._y - 10,true) == false){
迷宮.玩家._y -- ; //玩家往上移動
}
}
}
然後你會發現一個問題就是畫面並沒有跟著玩家移動,所以走一走就跑到畫面外了XD
//追蹤顯示 (如果沒記錯的話是這樣XD)
迷宮._x += (畫面中心點的X - 迷宮.玩家._x );
迷宮._y += (畫面中心點的Y - 迷宮.玩家._y );
這麼作可以維持玩家在畫面中心點的X跟Y上
其實有另一個做法是玩家不動,迷宮動
但是我為了讓迷宮可以旋轉,所以我不能作成那樣 @@"
如果你沒有要讓迷宮可以旋轉,你可以考慮移動的時候是讓迷宮作反向的移動
那樣的話就不需要追蹤顯示的部分
PS :我的做法在碰撞判斷時是很消耗效能的,迷宮越大消耗的效能越多...
PS2:其實我的變數命名是用英文不是用中文
: 2.被操控的圓圈,我在新增元件時是用新增按鈕或是圖片還是影片?
元件通常都是影片
: 3.一到終點就跳到贏家畫面的程式或者是技巧該如何用?
這個部分是最簡單的
用gotoAndStop() 或是 gotoAndPlay() 跳到結束的那頁
: 不知道有沒有寫出我的問題,呵呵,很想看看E大的迷宮,上次也有看到一個,
: 那個就是引發我做這個迷宮的啟蒙!!(說不定就是E大的)
: THX !!
順便打一下廣告-迷死人不償命的迷宮連結
http://web.ntust.edu.tw/~B9409041/swf/ETREXmaze.html
--
http://etrex.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.228.0.103
推
04/25 02:07, , 1F
04/25 02:07, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章