2011-07-03 116 views
1

我遇到了一些Flash場景問題。之前我從來沒有真正搞過閃光燈,而且我必須爲某人制作一款遊戲,並且我打了這個。我想要兩個場景,一個是開始菜單,另一個是實際的遊戲。第一個問題,那通常是怎麼做的?其次,我不知道這是不是場景通常會出現的情況,但是在那裏有兩個場景,它會在兩個場景之間閃爍,如果我按下回車鍵,它會停在所有場景上,這是全新的項目,所以在那裏沒有任何代碼。如果你有任何地方可以指點我,讓我知道。提前致謝!Flash場景問題

WWaldo

回答

1

第一個問題的答案:實際上你是在談論閃存平臺簡單的遊戲框架。我使用的是基於狀態機的方法。每個州都代表了一些遊戲元素(菜單或實際遊戲中,你的情況):你需要切換遊戲狀態(從菜單到遊戲爲例)

public static const STATE_SCENE_1:int = 10; 
public static const STATE_SCENE_2:int = 20; 
public static const STATE_GAME_OVER:int = 30; 
public var gameState:int = 0; 

下,最好的做法是使用遊戲主循環:

public function gameLoop(e:Event):void { 
     switch(gameState) { 
     case STATE_SCENE_1 : 
      initScene1(); 
      break 
     case STATE_SCENE_2: 
      initScene2(); 
      break; 
     case STATE_GAME_OVER: 
      gameOver(); 
      break; 
     } 
    } 

注意,上面的代碼中有一個名爲gameLoop()函數,則需要由計時器滴答事件或ENTER_FRAME事件反覆調用它:

public function Game() { 
     addEventListener(Event.ENTER_FRAME, gameLoop); 
     gameState = STATE_INIT; 
} 

在此之後,所有的遊戲處理將轉移到initScene1()函數。在那裏你可以添加你的開始菜單並根據需要進行動畫處理。

在這裏initScene2()去你的遊戲邏輯。你可以創造敵人,讓他們移動和其他邏輯。

public function initScene2():void { 
    makeEnemies(); 
    moveEnemies(); 
    testCollisions(); 
    testForEnd(); 
} 

接下來,如果主遊戲邏輯決定完成比賽,你需要切換狀態STATE_GAME_OVER並顯示玩家的GAMEOVER結果()函數。 要了解關於遊戲框架的更多細節,您可以使用Jeff Fulton和Steve Fulton的「Flash遊戲必備指南」。

希望這會有所幫助。

+0

謝謝,我最終得到了那本書,非常有用,謝謝! – WWaldo

0

呀,回答你一個問題,Flash IDE中它是最笨的東西,讓「電影」基於幀。可以創建場景來保存這些幀。您需要手動將stop();命令添加到每個幀的操作。

是否正確的路是一個選擇的問題。我個人發現在場景之間切換令人沮喪,如果可能的話,也不會使用多個幀。添加/刪除不同的影片剪輯通常效率更高,並使用代碼來控制其狀態等。

要創建遊戲,您需要了解一些使用類和代碼框架的輸入/輸出,儘管也許不多。只需從庫中導出符號以及不需要,您可以走很長的路。 AS3是每一次都要走的路。

一個很好的鏈接: http://as3gamedev.blogspot.com/