Flash场景问题

时间:2011-07-03 16:51:34

标签: flash actionscript-3

我遇到了一些Flash场景的问题。我以前从来没有真正搞过闪光灯,而且我必须为某人做一个游戏,而且我打了这个。我想要有2个场景,一个是开始菜单,另一个是实际游戏。第一个问题,那通常是怎么做的?其次,我不知道这是不是通常的场景,但是在那里2,它在两个场景之间闪烁,如果我点击进入,它会在它所在的任何场景上停止,这是一个全新的项目,因此根本没有任何代码。如果你有任何地方可以指出我,请告诉我。提前谢谢!

WWaldo

2 个答案:

答案 0 :(得分:1)

第一个问题的答案:实际上你在谈论Flash平台的简单游戏框架。我使用的是基于状态机方法。每个州代表一些游戏元素(菜单或实际游戏,在您的情况下):

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()的函数,您需要通过计时器tick事件或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游戏基本指南”。

希望这有帮助。

答案 1 :(得分:0)

是的,回答你的一个问题,Flash IDE最愚蠢的是基于帧的“电影”。可以创建场景来保存这些帧。您需要手动将stop();命令添加到每个帧的操作中。

是否正确的方式是一个选择问题。我个人觉得在场景之间切换是令人沮丧的,如果可能的话,也不会使用多个帧。添加/删除不同的MovieClip通常效率更高,并使用代码来控制其状态等。

要创建游戏,您需要了解使用类和代码框架的一些进/出,尽管可能并不多。只需从库中导出符号就可以实现很长的路要走。 AS3是每次都要走的路。

非常好的链接: http://as3gamedev.blogspot.com/