Page 1 sur 1

mini code de Nöel( pour super-débutants!)

Publié : mar. 18/déc./2007 5:14
par Huitbit
Hugh!

Je n'ai pas trop le temps de coder alors en attendant de me remettre à mon Pure_Vroom...
...voilà un brouillon(fait en moins d'une heure, ça veut dire que j'ai progressé :P ) de petit jeu que je vais faire avec les élèves ce vendredi avant les vacances.
(Pour les sprites, ils utiliseront leurs photos et des images de cadeaux (avec des parachutes pour respecter les lois de la physique et avoir une vitesse de chute constante :wink: ), c'est plus joli que des carrés et des disques:D )

Les objectifs principaux sont :
un minimum de lignes
un minimum de mots-clés
un minimum de déclarations
un peu de jouabilité :roll:

Code : Tout sélectionner

;"Pure_Noël" auteur Huitbit
;PureBasic 4.10
;brouillon de minijeu
;minimum de déclarations et de mots-clés
;***************************************************
Dim x_cadeau(20)
Dim y_cadeau(20)
;initialisation des positions des cadeaux
For i=0 To 20
  x_cadeau(i)=Random(768)
  y_cadeau(i)=-Random(600)
Next i
;-PROGRAMME PRINCIPAL
InitSprite()
InitKeyboard()
OpenWindow(0,0,0,800,600,"Livraison de Noël ")
OpenWindowedScreen(WindowID(0),0,0,800,600,1,0,0)
;-fond d'ecran
CreateSprite(0,800,600)
StartDrawing(SpriteOutput(0))
;fond étoilé
For  numero_etoile = 0 To 500
  Plot(1+Random(798),1+Random(567),RGB(255,255,255))
Next numero_etoile
;pelouse
Box(0,568,800,32,RGB(65, 117, 57))
StopDrawing()
;-cadeau
CreateSprite(1,32,32)
StartDrawing(SpriteOutput(1))
Box(0,0,32,32,RGB(255,255,0))
StopDrawing()
;-personnage
CreateSprite(2,32,64)
StartDrawing(SpriteOutput(2))
Circle(16,16,16,RGB(255,255,255))
Box(0,32,32,32,RGB(255,0,0))
StopDrawing()
;-BOUCLE PRINCIPALE
Repeat
  Repeat
    Event = WindowEvent()      
    If  Event = #PB_Event_CloseWindow
      End 
    EndIf
  Until Event = 0
  ;-gestion du clavier pour les mouvements du personnage
  ExamineKeyboard() 
  If KeyboardPushed(#PB_Key_Left)
    x_personnage=x_personnage-4
  ElseIf KeyboardPushed(#PB_Key_Right)
    x_personnage=x_personnage+4
  EndIf
  ;-gestion des déplacements des cadeaux
  For i=0 To 20
    y_cadeau(i)=y_cadeau(i)+2
    If y_cadeau(i)>536
      y_cadeau(i)=-Random(600)
      compteur_tombes=compteur_tombes+1
    EndIf
  Next i 
  ;-affichage
  DisplaySprite(0,0,0)
  For i=0 To 20
    DisplaySprite(1,x_cadeau(i),y_cadeau(i))
  Next i 
  DisplaySprite(2,x_personnage,504)
  ;-test de collision Père Noël_cadeau
  For i =0 To 20
    If SpritePixelCollision(1,x_cadeau(i),y_cadeau(i),2,x_personnage,504)
      y_cadeau(i)=-Random(600)
      compteur_hotte=compteur_hotte+1
    EndIf
  Next i
  ;-statistiques affichées
  cadeaux_livres=compteur_hotte+compteur_tombes
  StartDrawing(SpriteOutput(0))
  DrawText(0,568,"Livrés : "+Str(compteur_hotte+compteur_tombes)+"*****Hotte : "+Str(compteur_hotte)+"*****Tombés : "+Str(compteur_tombes))
  StopDrawing()
  Delay(10)
  FlipBuffers() 
Until cadeaux_livres>60
StartDrawing(ScreenOutput())
DrawText(0,568,"Efficacité du Père Noël :"+Str(compteur_hotte*100/cadeaux_livres)+" % >>> Livrés : "+Str(compteur_hotte+compteur_tombes)+"*****Hotte : "+Str(compteur_hotte)+"*****Tombés : "+Str(compteur_tombes))
StopDrawing()
FlipBuffers()
Delay(3000)
End
L'idée, c'est que pendant les vacances, ils améliorent le code
Si vous avez des idées de modifications !
S'il y a des super-débutants dans la salle n'hésitez pas!

Hasta la vista!

Re: mini code de Nöel( pour super-débutants!)

Publié : mar. 18/déc./2007 7:17
par Thyphoon
Huitbit a écrit : Si vous avez des idées d'amélioration!
tu pourrais rajouter quelques martinet a eviter !:o)
Voir un mode multijoueur avec le père fouetard !

Publié : mer. 19/déc./2007 0:09
par Huitbit
tu pourrais rajouter quelques martinets à eviter
Adopté : le martinet supprimera un cadeau :wink: !

Hasta la vista !

Salut l'artiste...

Publié : mer. 13/févr./2008 18:40
par Huitbit
Un petit hommage en passant à un musicien qui a su durer sans être pénible !
Pas mal de refrains traînent dans nos têtes.

Ce sacré farceur doit bien s'marrer là haut !

Juste une petite mise à jour qui traînait sur mon disque dur... à lui d'avoir des cadeaux !

Image




(image à mettre dans le même dossier que la source pb ci-dessous)
Image

Code : Tout sélectionner

;tableaux pour les cadeaux
Dim x_cadeau(20)
Dim y_cadeau(20)
Dim vitesse_cadeau(20)
;initialisation des positions des cadeaux
For i=0 To 20
  x_cadeau(i)=Random(768)
  y_cadeau(i)=-Random(600)
  vitesse_cadeau(i)=1+Random(3)
Next i
;-PROGRAMME PRINCIPAL
InitSprite()
InitKeyboard()
OpenWindow(0,0,0,800,600,"Livraison de Noël ")
OpenWindowedScreen(WindowID(0),0,0,800,600,1,0,0)
UsePNGImageDecoder()
;-fond d'ecran
CreateSprite(0,800,600)
StartDrawing(SpriteOutput(0))
;fond étoilé
For  numero_etoile = 0 To 500
  Plot(1+Random(798),1+Random(567),RGB(255,255,255))
Next numero_etoile
;pelouse
Box(0,568,800,32,RGB(65, 117, 57))
StopDrawing()
;-cadeau
CreateSprite(1,32,32)
StartDrawing(SpriteOutput(1))
Box(0,0,32,32,RGB(255,255,0)) : Box(0,14,32,4,RGB(100,100,255)) : Box(14,0,4,32,RGB(100,100,255))
StopDrawing()
;-personnage
LoadSprite(2,"henri_salvador.png")
;-BOUCLE PRINCIPALE
Repeat
  Repeat
    Event = WindowEvent()      
    If  Event = #PB_Event_CloseWindow
      End 
    EndIf
  Until Event = 0
  ;-gestion du clavier pour les mouvements du personnage
  ExamineKeyboard() 
  If KeyboardPushed(#PB_Key_Left)
    x_personnage=x_personnage-4
  ElseIf KeyboardPushed(#PB_Key_Right)
    x_personnage=x_personnage+4
  EndIf
  ;-gestion des déplacements des cadeaux
  For i=0 To 20
    y_cadeau(i)=y_cadeau(i)+vitesse_cadeau(i)
    If y_cadeau(i)>536
      y_cadeau(i)=-Random(600)
      compteur_tombes=compteur_tombes+1
    EndIf
  Next i 
  ;-affichage
  DisplaySprite(0,0,0)
  For i=0 To 20
    DisplaySprite(1,x_cadeau(i),y_cadeau(i))
  Next i 
  DisplayTransparentSprite(2,x_personnage,426)
  ;-test de collision Père Noël_cadeau
  For i =0 To 20
    If SpritePixelCollision(1,x_cadeau(i),y_cadeau(i),2,x_personnage,426)
      y_cadeau(i)=-Random(600)
      compteur_hotte=compteur_hotte+1
    EndIf
  Next i
  ;-statistiques affichées
  cadeaux_livres=compteur_hotte+compteur_tombes
  StartDrawing(SpriteOutput(0))
  DrawText(0,568,"Livrés : "+Str(compteur_hotte+compteur_tombes)+"*****Hotte : "+Str(compteur_hotte)+"*****Tombés : "+Str(compteur_tombes))
  StopDrawing()
  Delay(10)
  FlipBuffers() 
Until cadeaux_livres>60
StartDrawing(ScreenOutput())
DrawText(0,568,"Efficacité du Père Noël :"+Str(compteur_hotte*100/cadeaux_livres)+" % >>> Livrés : "+Str(compteur_hotte+compteur_tombes)+"*****Hotte : "+Str(compteur_hotte)+"*****Tombés : "+Str(compteur_tombes))
StopDrawing()
FlipBuffers()
Delay(3000)
End
Hasta la vista !