我遇到了一些Flash場景問題。之前我從來沒有真正搞過閃光燈,而且我必須爲某人制作一款遊戲,並且我打了這個。我想要兩個場景,一個是開始菜單,另一個是實際的遊戲。第一個問題,那通常是怎麼做的?其次,我不知道這是不是場景通常會出現的情況,但是在那裏有兩個場景,它會在兩個場景之間閃爍,如果我按下回車鍵,它會停在所有場景上,這是全新的項目,所以在那裏沒有任何代碼。如果你有任何地方可以指點我,讓我知道。提前致謝!Flash場景問題
WWaldo
我遇到了一些Flash場景問題。之前我從來沒有真正搞過閃光燈,而且我必須爲某人制作一款遊戲,並且我打了這個。我想要兩個場景,一個是開始菜單,另一個是實際的遊戲。第一個問題,那通常是怎麼做的?其次,我不知道這是不是場景通常會出現的情況,但是在那裏有兩個場景,它會在兩個場景之間閃爍,如果我按下回車鍵,它會停在所有場景上,這是全新的項目,所以在那裏沒有任何代碼。如果你有任何地方可以指點我,讓我知道。提前致謝!Flash場景問題
WWaldo
第一個問題的答案:實際上你是在談論閃存平臺簡單的遊戲框架。我使用的是基於狀態機的方法。每個州都代表了一些遊戲元素(菜單或實際遊戲中,你的情況):你需要切換遊戲狀態(從菜單到遊戲爲例)
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遊戲必備指南」。
希望這會有所幫助。
呀,回答你一個問題,Flash IDE中它是最笨的東西,讓「電影」基於幀。可以創建場景來保存這些幀。您需要手動將stop();
命令添加到每個幀的操作。
是否正確的路是一個選擇的問題。我個人發現在場景之間切換令人沮喪,如果可能的話,也不會使用多個幀。添加/刪除不同的影片剪輯通常效率更高,並使用代碼來控制其狀態等。
要創建遊戲,您需要了解一些使用類和代碼框架的輸入/輸出,儘管也許不多。只需從庫中導出符號以及不需要,您可以走很長的路。 AS3是每一次都要走的路。
一個很好的鏈接: http://as3gamedev.blogspot.com/
謝謝,我最終得到了那本書,非常有用,謝謝! – WWaldo