jeux de rôle online = POO obligatoire. Arrête tout de suite le procédural, tu vas devoir jeter ton code dès que les fonctionnalités vont s'ajouter.
fait une classe Map, qui étend une classe TileMap, contenant des tas d'objets instanciés depuis une classe Tile.
l'interface de ta classe TileMap peut ressembler à ça (classe MapData = <structure de données parsée depuis le XML> ) :
- TileMap.setTiles(pMapData:MapData);
- TileMap.updateTiles(pMapData:MapData);
la classe Map qui étendrait TileMap (classe Vector indispensable de toute façon, à créer) :
- Map.moveTo(pDest:Vector);
- Map.rotateTo(pDest:Vector);
- Map.zoom(pFactor:Number);
- Map.unzoom(pFactor:Number);
Pour recevoir les données, utilises une classe pour ça (MapData par ex.), design-pattern du DataObject.
mc.rollOver = function() { ... } c'est crade, tu déclare la fonction au milieu du code, utilise une référence à fonction. Si tu suis une conception OO propre, tu finiras même avec un Delegate dessus.
_root à bannir totalement, utilise un adressage relatif à la place.
les méthodes du type this.attachMovie(), this.createEmptyMovieClip() renvoient un handler vers ce qu'elles viennent de créer, qu'il est de bon ton d'utiliser:
var mc:MovieClip = this.attachMovie('mc' , 'mc' + i , this.getNextHighestDepth());
regarde les bouquins de développement de jeux dans d'autres langages. ceux pour Flash ne sont pas terribles, c'est souvent une copilation de scripts procéduraux foireux. intéresse-toi plutôt à l'architecture logicielle en elle-même maintenant que tu as acquis la syntaxe. les architectures sont identiques dès que le langage est OO, que ce soit du C++, du Java ou de l'AS.
si tu veux faire un jeu de rôle online en AS, tu passeras forcément par l'étape architecture logicielle/conception objet/UML, ça n'est pas "plus facile en Flash". La syntaxe et l'idiosyncrasie du langage le rende plus accessible, mais un développement reste un développement.
Message édité par craps_youpla le 19-07-2006 à 20:07:44