Sujet : snake
Aucun commentaire enregistré pour ce sujet.
1
- Voila ce que j'ai fait en partant de ton tuto :
le problème c'est que les pommes aparaissent par fois en dehors du cadre !
j'ai essayé d'arrenger ça mais ça ne marche pas...
STP Netger aide moi ! - Salut Kiwikool,
Je vais t'expliquer, ce n'est pas trés compliqué mais il faut bien suivre.
Commençons par repérer le bout de code qui gére les pommes :
[cit]
pom.onEnterFrame = function()
{
// si le serpent est sur la nourriture, il faut incrementer le score et placer une nouvelle nourriture
if (this._x == x && (this._y == y))
{
croix = ajout=true;
}
// Si croix=true, on place aléatoirement une nouvelle nourriture
if (croix)
{
croix = false;
this._x = 10*(random(36)+2);
this._y = 10*(random(36)+3);
}
[/cit]
Maintenant nous allons isoler le bout de code qui permet de placer les pommes sur la scéne :
[cit]
this._x = 10*(random(36)+2);
this._y = 10*(random(36)+3);
[/cit]
Rappel :
sur Flash le point O des axes se trouve au coin en haut à gauche.
Si tu te souviens bien (dans le tuto) le cadre qui défini mon terrain de jeu est un carré de 360px de côté.
Ce carré est placé à X=20 et Y=30.
En d'autres termes, on peut noter la formule ainsi :
this._x = 10*(random(largeur)+distance du bord X);
this._y = 10*(random(hauteur)+distance du bord Y);
Voilà je pense que c'est plus clair ainsi mais si ce n'est pas le cas, n'hésite pas à poser d'autres questions
Et en tout cas bravo pour ton travail, le tuto est trés bien adapté
Aprés tu peux aussi améliorer le script :
- différents niveaux
- choix de la difficulté (vitesse)
- placer des obstacles
- différents types de nourritures
etc...
- Non j'ai pas tout compris
c'est quoi le "36" tu dis "largeur" et "hauteur" mais de quoi ?
et le "2" et le "3" ? les bords ne sont pas à 2 ou 3 px !
- Pour le " 36 " je parle du cadre de 360px de côté : comme c'est un carré les hauteur et largeur sont les même.
Le " 2 " représente mes 20px qui séparent le bord de l'animation du bord du cadre dans l'axe des abscisses.
Le " 3 " lui représente mes 30px qui séparent le bord de l'animation du bord du cadre dans l'axe des ordonnées
J'utilise " 36, 2 et 3 " car le résultat est ensuite multiplié par 10.
On peut donc aussi l'écrire comme ça :
this._x = random(360)+20;
this._y = random(360)+30;
J'espére que c'est plus clair
- MERCI !
1
Identification requise
Vous devez être identifié pour pouvoir participer à cette discussion.



