Créer son site Gratuitement : Service / Outils webmaster gratuit
Mon Site Gratuit
Contactez nous
Nos partenaires
Scripts
Tutoriaux
Nos services
Forums
Accueil
ForumsMX [6] : Scripts de jeux : Jeu de tir 2 : 360 degrés
      Imprimer le sujet FAQ  M'enregistrer 
  Le monde virtuelle du flash vous réserve plein de suprise éblouissante rien que pour vous !
Animations à gogo ... Bonne visite !

MX [6] : Scripts de jeux : Jeu de tir 2 : 360 degrés

Messagede zardoz le 28 Avr 2008, 19:19



<< Voir la version 1 pour plus d'information >>


Je n'aurai donc pas à refaire les informations concernant le programme, sauf peut être sur un point important. La nouvelle fonction traite d'un sujet qui fait de ce jeu toute la différence. Étant d'origine écrit à la manière de Flash 5, nous nous retrouvons encore un fois avec un script un peu plus primitif que ne l'aurais été si l'origine du script avait été écrit à la pérode MX. Si vous analyser le script, vous voyez que les deux variables ' dx ' et ' dy ' ont reçu une valeur. La valeur affecté est l'objet souris vis à vis l'objet visuel. Voici un exemple : dx = _xmouse - baseCanon._x; << - >> dy = _ymouse - baseCanon._y;. Par le fait même nous parlons de la distance entre l'objet du socle et la souris, en ' x ' et en ' y '. Faites en vous même l'expérience en déplacant la souris à différente distance du socle des missiles et vous aurez un comportement différent lors de la rotation du socle. Plus vous centrer l'objet mouse au centre de l'objet socle des missiles, plus l'angle de tir sera largeur, à l'inverse plus vous vous éloigner, avec la souris, du socle des missiles, moins d'angles vous aurez à couvrir. Faites des testes. C'est d'ailleur le but du projet que d'apprendre des choses qui je l'espère vous apporteras un plus. Sachez simplement que ce genre peut être programmer d'une façon tout à fait différente.

À la ligne suivante, une nouvelle variable est nommé. On lui attache un objet. Il s'agit de l'objet Math avec sa méthode atan2(param1, param2);. Les deux variables ' dx ' et ' dy ', sont déclarer comme paramètre à la méthode. Mais n'oublions pas que dx et dy sont déjà porteur de valeur. La méthode prend ces deux param's comme expression et en déduit un nombre. Son retour est aussi un nombre. En fait c'est son rôle que d'évaluer une expression et de retourner un nombre comme résultat. Plus intéressant encore sera la façon d'appeler l'exécution de cette fonction, nommé pivot( );

Sur le côté gauche de la scène vous avez un clip vide, il est placer en scénario sur le calque scripts au deuxième keyframe. Sélectionner le, sur la scène et ouvrez le Action Panel. À ce stade vous voyez l'appelle de fonction pivot( ); au gestionnaire d'évènement enterFrame : onClipEvent(enterFrame) { . . . } . Il est normale que nous le placions à ce genre de gestionnaire puisque les objets figurant dans les instruction seront animés. En un mot, si votre valeur ips est la valeur par défaut, c'est à dire ips = 12, votre fonction sera exécuter 12 fois par seconde. Donc votre souris et votre objet visuel sera exécuter 12 fois par seconde en tant que évaluation. Puissez vous imaginer les ressources utilisées. C'est énorme. à toutes les fois que vous bouger votre souris, pendant x temps, votre programme évalue et retourne les résultats, 12 fois par seconde. Si vous le configurer à 35 ips, alors la même évaluation s'opère 35 fois par seconde. La programmation de jeu exige énormément de ressource machine. Enfin . . .

L'autre variable porte aussi une expression comme valeur affecté à cette variable. C'est cette partie qui traite des degrés, 360, lié à l'objet Math.PI. Vous savez comme moi qu'il y a des priorités au niveau des opérateurs. Le fait que : (2 * Math.PI); soit entre parenthèse, force le programme à évaluer, en premier lieu, ce qui se trouve entre parenthèse. Vous trouverez des informations sur le sujet des opérateurs et leurs priorités dans la plupart des livres concernant la programmation en Flash. Soyez toujours sensible aux opérateurs. Lorsque cette partie du source est évaluer nous le divisons par 360 multiplier par baseCanonRayon. Cette dernière porte toujours le résultat des objets souris et du socle des missiles. à la fin on prend l'objet visuel et nous l'affectons à la propriété prédéfini nommé : _rotation, ayant comme résultat la valeur de l'évaluation de la variable : baseCanonDegres. Résultat ? Larguer les missiles . . . et vous comprendrez.

<< Pour ceux et celles qui voudront se rapprocher un peu plus du jeu de combat >>


À la ligne 41 du script des fonctions : 2ième keyframe du calque nommé scripts, vous avez une position en ' y ' aléatoire de la cible. Voici le bout de script que vous devriez lire : _root["cible" + prochaineCible]._y = int (Math.random () * 100) + 20;. Si vous changez la valeur 100 pour 300, vous augmenter la hauteur de la zone, en ' y ', du déplacement aléatoire de l'objet cible. Je le place ici à 300 comme étant le maximum de hauteur, dû au fait que la ligne blanche, séparant la zone de jeu de la zone d'information, est situé à 375px. Ainsi, attendez vous, lors du déplacement des cibles à couvrir la totalité de la zone de jeu.

De plus vous verrez que les cibles passeront au dessus du socle des missiles. Pour remédier à cette situation, vous sélectionnez le clip baseCanon sur la scène, et vous ouvrez le Panel ActionSCript >> Voici le source à écrire : onClipEvent(enterFrame) { this._swapDepths(999999); } . Ainsi le clip baseCanon sera toujours au dessus des cibles. De même, et pourquoi pas, ajouter ce script à l'intérieur du gestionnaire onClipEvent(enterFrame), du genre : this._xscale = 50; this._yscale = 100;. Ainsi vous pourrez programmer une hauteur et une largeur différente du clip sélectionner. Vous pouvez l'expérimenter. La valeur par défaut est 100 en _xscale comme en _yscale. Vous donnez des formes nouvelles à vos objets, parce que vous leurs donnés des dimension différentes.

Ceci fait >> centrer votre clip baseCanon dans la zone de jeu, sur la scène pricipale. La zone de jeux se situe entre le haut de votre scène jusqu'à la ligne blanche. Ainsi vous vous êtes un peu rapprocher des caractères uniques qui nous rappelles les jeux de combats. Par contre, retenez que vos cibles ne sont pas pour autant des objets d'attaques et/ou défensifs. Beaucoup d'autres écritures de scripts pourront être créés pour ce genre particulier qu'est le script de combat. À vrai dire, je veux vous prouvez que l'écriture d'un script quelquonque ne sera jamais coulé dans le béton. En tout temps, un script peut subir des modifications au point de voir comme résultat une lecture complètement nouvelle. Prenez exemple de jeu de tir 1, et jeu de tir 2. Une seule fonction ajouter au jeu de tir 2, nommé pivot( ); , changera de beaucoup la manière d'utilisé le jeu en question.

<< L'objet Math et ses méthodes : cos( ); et sin( ); Trigonométrie >>.


Considérons ces deux méthodes de l'objet Math. Elle touche directement ce que nous appelons la trigonométrie. Je ne vous ferai pas un cours ici concernant la trigonométrie. Le sujet est très large en capacité et demande à lui seul un tuto. Seulement, si vous vous arrêter à la fonction qui traite du lancement des missiles >> lanceMissiles( );, vous trouverez la partie du script qui permet les lancement en angle, bref en diagonale et dans le même sens où pointe le socle des missiles. Il n'est pas rare, voire même essentielle l'utilisation des méthodes cos( ); et sin( );. Voici un exemple tiré du script du jeu :
missile._x = baseCanon._x + Math.cos (baseCanonRayon) * 20; et missile._y = baseCanon._y + Math.sin (baseCanonRayon) * 20;. Retenez seulement que la méthode cos( ); est toujours lié à la direction ' x ', et que la méthode sin( );, sera toujours lié à la direction ' y '. Ces deux méthodes, mise ensemble permettra une direction en diagonale de tous les objets étant attacher aux méthodes. Ici c'est les missiles qui seront attacher à ces méthodes.

Par contre, comprenez qu'un objet >> vaisseau, contrôler par touche clavier, permettra avec ces méthodes un réalisme saisissant. J'ai un jeu de combat qui est écrit, j'espère tout simplement le présenter en tant que tuto. La notion de trigonométrie est présente dans ce jeu. La trigonométrie permettra donc un déplacement de l'objet d'attaque pouvant se déplacer en diagonale et effectuer des ' u-turn ', pour ne pas dire des courbes, d'un profond réalisme. Nous avons vraiment avec ces deux méthode de l'objet Math un déplacement complet en matière de jeu. Il donne le sentiment d'un objet >> vaisseau, pouvant flotter dans l'espace de jeu, et effectuer des déplacements tout genre, selon la façon dont vous manipuler les touches clavier. Attardez vous, en programmation de jeu, sur le potentielle des méthodes cos( ); et sin( );. Vous ne pourrez que considérer l'essence même du jeu. Un jeu de combat sans ses méthodes souffrira d'un manque essentielle. Il n'est pas rare lors de la lecture de ce genre particulier du jeu de combat, ou de tir, de manipuler la flêche gauche ou droite, en relation avec les touches haut ou bas. Ainsi vous pourrez effectuer des déplacements d'objets et des figures de combats, d'arrêt flottant, d'accélération et de décélération. Tout dépendra de vos scripts et de vos intentions en matière de développement de jeu en Flash.
zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582


Retourner vers Flash

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités