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