2011-07-03 5 views
1

Je rencontre un problème avec certaines scènes flash. Je n'ai jamais vraiment joué avec flash avant, et je dois faire un jeu pour quelqu'un, et j'ai frappé ça. Je voulais avoir 2 scènes, une avec le menu de départ et l'autre avec le jeu actuel. Première question, est-ce que c'est comme ça que ça se fait habituellement? Deuxièmement, je ne sais pas si c'est ce que font habituellement les scènes, mais avec le 2, il clignote entre les deux scènes, et si j'appuie sur entrée, ça s'arrête sur la scène, c'est avec un tout nouveau projet, donc il n'y a pas de code du tout là-bas. Si vous avez quelque part où vous pouvez me pointer, faites le moi savoir. Merci d'avance!Problème de scène flash

WWaldo

Répondre

1

Une réponse à la première question: en fait, vous parlez de cadre simple jeu pour la plate-forme Flash. Celui que j'ai utilisé est basé sur l'approche machine d'état. Chaque état représente un élément de jeu (menu ou jeu réel, dans votre cas):

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; 

Ensuite, vous devez changer les états de jeu (à partir du menu de jeu par exemple), la meilleure pratique consiste à utiliser la boucle de jeu principal:

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; 
     } 
    } 

Notez que le code précédent a une fonction nommée gameLoop(), vous devez appeler itérativement par un événement de timer tick ou par événement ENTER_FRAME:

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

Après cela, tous vos le traitement du jeu sera transféré à la fonction initScene1(). Là, vous pouvez ajouter votre menu de départ et l'animer selon vos besoins.

Ici, dans initScene2() va votre logique de jeu. Vous pouvez créer des ennemis, les faire bouger et d'autres logique.

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

Ensuite, si la logique principale du jeu décide de terminer le jeu, vous devez changer l'état de STATE_GAME_OVER et afficher les résultats en fonction GameOver() du joueur. Pour plus de détails sur les frameworks de jeu, vous pouvez utiliser "Le Guide Essentiel des Jeux Flash" de Jeff Fulton et Steve Fulton.

Espérons que cela aide.

+0

Merci, j'ai fini par obtenir ce livre, très utile, merci! – WWaldo

0

Oui, pour répondre à votre une question, l'IDE Flash à son plus stupide est quelque chose qui fait basé sur des cadres « films ». Des scènes peuvent être créées pour contenir ces images. Vous devrez ajouter manuellement une commande stop(); aux actions de chaque image.

Que ce soit ou non la bonne façon de procéder est une question de choix. Personnellement, je trouve frustrant de basculer entre Scenes, et si possible, n'utilisera pas plusieurs cadres non plus. Il est généralement beaucoup plus efficace d'ajouter/de supprimer différents MovieClips, et d'utiliser du code pour contrôler leurs états, etc.

Pour créer un jeu, vous devez connaître certains entrants et sortants du travail avec les classes et les frameworks de code, peut-être pas beaucoup. Vous pouvez aller loin avec juste exporter des symboles de la bibliothèque et ce n'est pas le cas. AS3 est le chemin à parcourir, à chaque fois.

un très bon lien: http://as3gamedev.blogspot.com/