Jeux Asteroide

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Jeux Asteroide

Message 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)

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
SPH
Messages : 4944
Inscription : mer. 09/nov./2005 9:53

Re: Jeux Asteroide

Message par SPH »

Erreur ligne 9

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Jeux Asteroide

Message 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.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Jeux Asteroide

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Jeux Asteroide

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre