Forums Développement Multimédia

Aller au contenu

Space Invaders à l'horizontal

CODE

3 réponses à ce sujet

#1 Bluelightnetwork

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 27 September 2012 - 15:58 PM

Bonjour, débutante en AS3. Je suis en train de refaire un Space invaders à l'horizontal.
J'ai réussie à mettre les vaisseaux à l'horizontal sauf que mes ennemis devraient arriver à gauche et non du haut.
Je vous laisse mon fichier zippé, merci de votre aide.
Fichier joint  space_invaders.zip   29.32 Ko   13 téléchargement(s)

#2 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 27 September 2012 - 16:22 PM

salut Bluelightwork, bienvenue ici :)

Tu ne nous en dis pas assez ;)
Il est sans doute inutile de charger ton fichier si tu nous dis (et montre) ce que tu as essayé en décrivant vite fait ce que tu attendais, en quoi ça n'a pas marché, etc.

Je ne sais pas du tout comment tu t'y es prise. Quand tu dis "refaire", je pense comprendre que c'est à partir d'un tuto ou depuis des sources pêchées quelque part. Tu dois avoir une fonction déplacement (en anglais tres probablement) et aussi une fonction ajouter (addShip ?) là il y a des y sans doute… ;) as-tu essayé de comprendre et de transposer sur l'horizontal ? (x) ;)

++ :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#3 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 27 September 2012 - 17:28 PM

Bonjour je déplace le sujet sans la section "jeux vidéos".

Sinon comme le dit Nath, nous n'en savons pas assez sur ton problème.

#4 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 28 September 2012 - 12:20 PM

Bonjour,

Par curiosité je viens de jeter un oeil à ton projet.
Le code n'est pas de toi, c'est un moteur récupéré quelque part que tu essayes de modifier à ta sauce, je me trompe ?
Si c'est le cas merci de citer tes sources si tu poste le moteur complet, par respect du travail des auteurs de ce tuto ;-)

Ensuite, tout dépend de ce que tu veux apprendre, si c'est faire de la POO et de l'AS3 pourquoi pas, mais si c'est comprendre les bases pour créer un jeu je ne suis pas sur que commencer avec des classes soit la solution la plus rapide, avant d'en arriver là il y a plein d'autres choses à saisir et ça peut tout à fait se faire en procédural (qui est bien plus facile à prendre en main au départ).

Certains vont te recommander de commencer direct en POO (chacun sa méthode, moi je préfères apprendre à marcher avant d'apprendre à courir mais c'est sans doute discutable, surtout quand on parle de jeux) en tout cas personnellement je trouve que ça complique pas mal l'apprentissage, c'est pourquoi je pose ces questions.

Pour répondre à ta question à présent, tes ennemis sont créés à partir de la classe "stinger.as" et stockés dans un tableau.
En jetant un oeil à cette classe on vois que les mouvements des ennemis sont calés sur l'axe Y et non X.
Or toi ce que tu veux c'est justement des déplacements sur X et non sur Y.

La tambouille interne à la classe lance une boucle (événement ENTER_FRAME qui caste la fonction "loop") pour déplacer les ennemis.
Dans cette fonction le programme utilise :


vy += ay;
y += vy;
 

Où "vy" est la position du vaisseau ennemi et "ay" sa vitesse de déplacement.

Sachant que là on travaille sur l'axe Y et que toi tu veux travailler sur l'axe X il te suffit de modifier les paramètres en conséquence ;-)

Attention, lors de la création d'un ennemi, on le positionne (toujours dans la même classe) :

x = Math.random() * stageRef.stageWidth;
y = 3;

Là aussi il faut intervertir les valeurs, toi ce que tu veux c'est que l'ennemi se positionne aléatoirement sur la hauteur du stage et à 3 pixels du bord gauche du stage.

Bref, ce serait quand même plus simple pour toi si tu débute de commencer du début en procédural avec un code que tu maîtrise avant de t'attaquer à la POO et aux classes dont tu ne va pas comprendre le tiers du fonctionnement, mais c'est un avis perso, comme je le disais plus haut d'autres te donneront sans doute le conseil inverse.

Dans tous les cas bon courage.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)