FAIRE UN PONG

Introduction:
Jeux mythique, Pong n'est pas néanmoins le plus simple à réaliser. Avec une intelligence artificielle pour l'adversaire, et une trajectoire de la balle fonction de la collision avec la raquette pour les plus évolués.

Voir (2 ko)
Le source (4 ko)
   

Description:
Pour réaliser ce jeu, nous allons avoir besoins de plusieurs éléments. 2 raquettes, une balle, et 2 zones de texte pour l'affichage du score.

Commençons d'abord par définir les propriétés du film. presser les touche <crtl + m>, et entrer les meme valeurs que sur l'image.
Puis nous allons créer les differents éléments.

Les éléments:
Les raquettes:
-On va d'abord créer les raquettes sous forme de movieclip. Presser les touches <ctrl + F8>, puis tracer un rectangle en position verticale. Le point chaud du rectangle doit etre en son centre.(Mes valeurs: hauteur=40, largeur=10). Une fois terminé, il faut lui donner un nom d'instance: raquette1 (bouton droit sur le movieclip puis panels et instance).
-Faire de meme pour la deuxième raquette avec un nom d'instance différent: raquette2.
La Balle:
- Presser les touches <ctrl + F8>, pour créer unnouveau movieclip. Tracer un cercle, avec le point chaud au centre du cercle. (Mes valeur: hauteur=10, largeur=10).Une fois terminé, il faut lui donner un nom d'instance: balle.
 

La programation:
La raquette 1:
 
-La raquette 1 est la raquette qui va etre placée le plus à gauche de l'aire de jeu, et celle gérée par le joueur. c'est pour cela que l'on récupère les coordonnées de la souris sur la scéne (_root._ymouse).
Placer le code ci-dessous dans la zone action du movieclip raquette1.
onClipEvent (load) {
  // positionement de la raquette lors du chargement du movieclip
  _x = 300;
  _y = 100;
}

onClipEvent (enterFrame) {
  // deplace le movie en fonction de la postion
  // verticale de la sourie

  _y = _root._ymouse;

  // limite la position de la raquette dans l'aire de jeux
  if (_y<20) {
    _y = 20;
  }
  if (_y>180) {
    _y = 180;
  }
}

La raquette 2:
 
-La raquette 2 est la raquette qui va etre placée le plus à droite de l'aire de jeu, et celle gérée par l'ordinateur. Pour Facilité le debut de la programation, nous allons aussi la controller avec la souris.
Placer le code ci-dessous dans la zone action du movieclip raquette2.
onClipEvent (load) {
  // positionement de la raquette lors du chargement du movieclip
  _x = 300;
  _y = 100;
}

onClipEvent (enterFrame) {
  // deplace le movie en fonction de la postion
  // verticale de la sourie

  _y = _root._ymouse;

  // limite la position de la raquette dans l'aire de jeux
  if (_y<20) {
    _y = 20;
  }
  if (_y>180) {
    _y = 180;
  }
}

La balle:
 
- Pour commencer nous allons créer une balle avec une vitesse en X et Y. La collision avec les raquettes ne modifie que la vitesse en X, mais pas celle en Y.
Placer le code ci-dessous dans la zone action du movieclip balle.
onClipEvent (load) {
   // positionement de la balle lors du chargement du movieclip
  // au centre de l'aire de jeu

  _x = 160;
  _y = 100;
  // on defini la vitesse en X et en Y
  vitx = 5;
  vity = 5;
}
onClipEvent (enterFrame) {
  // deplacement de la balle
  _x += vitx;
  _y += vity;
  // collision avec les bords de l'aire de jeu
  // en Y

  if(_y<=5 or _y>=195){
    // on inverse la vitesse en Y
    vity=-vity;
  }
  // en X
  if(_x<=5 or _x>=315){
    // on inverse la vitesse en X
    vitx=-vitx;
  }
  // collision avec les raquettes
  // raquette 1
  // test si la balle rentre dans la zone X da la raquette 1
  // on ne fait le test que si vitx<0

  if(_x>=20 and _x<=30 and vitx<0){
    // test si la balle rentre dans la zone y de la raquette 1
    if(_y>(_root.raquette1._y)-20 and _y<(_root.raquette1._y)+20){
      // si oui inverse la vitesse en X
      vitx=-vitx;
    }
  }
  // raquette 2
  // test si la balle rentre dans la zone X da la raquette 1
  // on ne fait le test que si vitx>0

  if(_x>=290 and _x<=300 and vitx>0){
    // test si la balle rentre dans la zone y de la raquette 1
    if(_y>(_root.raquette2._y)-20 and _y<(_root.raquette2._y)+20){
      // si oui inverse la vitesse en X
      vitx=-vitx;
    }
  }
}
Conclusion:
Voila, votre premier pong en Flash. bien sur il n'est pas très evolué, mais il fonctionne.
- à partir du modèle, vous pouvez, rajouter la gestion du score, une trajectoire définie par la collision avec la raquette, une force pour la balle.

Bonus:
Pong 2 :
Voir (2 ko)
Le source (4 ko)
- Pour continuer dans la lancer, il a été ajouté la gestion du score pour chaque raquette, plus une variation de la trajectoire en fonction de la collision avec la raquette. Mais il manque toujour une raquette intelligente.
- Toutes les modifications ont été aportées dans le code de la balle.
Pong 3:
Voir (2 ko)
Le source (4 ko)
- La cerise sur le gateau. Une raquette intelligente, qui suis la balle toute seule. Dans cette version le niveau est assez difficile, mais rien ne nous empeche de le faire évoluer au court d'une partie.