Page 1 sur 1

Jeux Asteroide

Publié : jeu. 30/juin/2011 10:28
par microdevweb
Bonjour à tous,

Voici mon premier jeux en pure basic (je n'ai commencer à développer avec ce langage qu'il n'y à qu'une quinzaine de jours)
Les images et graphiques on été emprunté sur le net et dans des démos de pure basic (merci à leurs auteurs).

Le jeux fait 744 lignes, il est totalement jouable mais ne comprend pas de niveaux de difficulté.Soyer indulgent pour mon orthographe ce n'ai pas mon fort.

J'espère que ce petit jeux en inspirera certains ou en aidera d'autres.

Voici le lien de téléchargement:
http://www.megaupload.com/?d=7XR3HOLV

Et le code de la boucle principale du jeux:

Code : Tout sélectionner

;_____________________________________________________________________________________________________________________________
;
;-Boucle Principale
;_____________________________________________________________________________________________________________________________
Repeat
  Even=WindowEvent()
  ExamineKeyboard()
  Delay(20)
  If gPlayer(1)\nbr_vie<>0 ; Si encore des vies
    If Timer_Etoile>0
      Timer_Etoile=Timer_Etoile-1
    EndIf
    If Timer_Etoile=0
      gDecalage_Etoile=gDecalage_Etoile+1
      Timer_Etoile=2
    EndIf
    Affiche_Etoile()
    If KeyboardPushed(#PB_Key_Right)
      gPlayer(1)\Vitesse=gVitesse_de_deplacement_Player
      Affiche_Vaiseau_player("D")
    EndIf
    If KeyboardPushed(#PB_Key_Left)
      gPlayer(1)\Vitesse=-gVitesse_de_deplacement_Player
      Affiche_Vaiseau_player("G")
    EndIf
    If Not KeyboardPushed(#PB_Key_Right) And Not KeyboardPushed(#PB_Key_Left)
      gPlayer(1)\Vitesse=0
      Affiche_Vaiseau_player("C")
    EndIf
    If Timer_Asteroid>0
      Timer_Asteroid=Timer_Asteroid-1
    EndIf
    If Timer_Asteroid=0
      CreeAteroide()
      Timer_Asteroid=40
    EndIf
    If Timer_Balle_Enemi>0
      Timer_Balle_Enemi=Timer_Balle_Enemi-1
    EndIf
    If Timer_Balle_Enemi=0
      Cree_Balle_Enemi()
      Timer_Balle_Enemi=80
    EndIf 
    Affiche_Balle_Enemi()
    Affiche_Asteroide()
    Affiche_Balles()
    Detecte_Colision_Asteroide()
    Detecte_Colision_Enemi()
    Detecte_Colision_Balles_Asteroides()
    Detecte_Colisoin_balle_Enemi()
    Detecte_Balle_Enemi_sur_player()
    Supprime_Explosion() ; supprime les explosions qui son terminées
    Affiche_Explosion()
    Supprime_Asteroide()
    Affiche_Enemi()
    Supprime_Enemi()
    If KeyboardPushed(#PB_Key_Space) And gTire_Autoriser=#True And gPlayer(1)\dead<>1
      gTire_Autoriser=#False  
      Cree_Balle()
    EndIf
    If KeyboardReleased(#PB_Key_Space)
      gTire_Autoriser=#True
    EndIf  
    If Timer_Enemi>0
      Timer_Enemi=Timer_Enemi-1
    EndIf 
    If Timer_Enemi=0
      Cree_Enemi()
      Timer_Enemi=20
    EndIf 
    Affiche_Nbr_vie_restante() 
  Else
    ClearList(gAsteroid())
    ClearList(gEnemi())
    ClearList(gBalle())
    ClearList(gBalle_Enemi())
    ClearList(gExplosion())
    Affiche_Game_Over()
    Affiche_Nbr_vie_restante() 
    Delay(200)
    If KeyboardPushed(#PB_Key_Space)
      gPlayer(1)\nbr_vie=3
      gPlayer(1)\dead=0
      gScore=0
    EndIf 
  EndIf
  FlipBuffers (): ; affiche l'ecran
  ClearScreen ( RGB (0, 0, 0)) : ;efface l'ecran avec la couleur noir
Until Even=#PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)


Re: Jeux Asteroide

Publié : jeu. 30/juin/2011 14:37
par SPH
Erreur ligne 9

Re: Jeux Asteroide

Publié : jeu. 30/juin/2011 15:19
par microdevweb
Hummmm je viens de vérifier et ne détecte aucune erreur à ligne 9.
ligne 9: qui d’ailleurs une ligne tracé en commentaire


Cependant attention qu'il faut télécharger le code. Le code affiché dans le message n'est pas fonctionnel sans les procédures.

Si d'autre personnes constatent des erreurs merci de m'en faire part.

Re: Jeux Asteroide

Publié : jeu. 30/juin/2011 15:50
par djes
Pas de problème, ça fonctionne bien, et le code est clean! C'est à améliorer mais c'est un bon début :)
Et... bienvenue! :D

Re: Jeux Asteroide

Publié : jeu. 30/juin/2011 15:52
par Ar-S
Merci pour le partage de ce petit shoot em up.
Il marche très bien. (J'ai juste passé la résolution en 1680x1050 et ça tourne bien.)

C'est très sympa de ta part et beaucoup, dont moi, apprécieront.