les autoroutes sont incroyable !!

Programmation avancée de jeux en PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

les autoroutes sont incroyable !!

Message par Backup »

je partais en vacance sur l'autoroute dans ma lotus seven !
lorsque la radio annonce q'un fou a pris l'autoroute en sens inverse !!
a ce moment , je me suis dit , ben y disent des connerie a la radio
car y'en a pas qu'un , on dirai qu'ils ont tous pris l'autoroute en sens inverse !! 8O 8O



la preuve :



; prg rèalisé par Dobro
; en pure 3.93
; le but : faire un max de points !
; un accident remet les point a zero !
;mis a jour purebasic 4.00




;-initialisations
InitEngine3D (): InitSprite (): InitMouse (): InitKeyboard (): InitSprite3D ()


Structure fou
  X.w
  Y.w
  vie.w
EndStructure
Global Dim fou.fou(1)


Structure bande
  X.w
  Y.w
EndStructure
Global Dim bande.bande(1)


Structure bordgauche
  X.w
  Y.w
EndStructure
Global Dim bordgauche.bordgauche(1)

Structure borddroit
  X.w
  Y.w
EndStructure
Global Dim borddroit.borddroit(1)

Structure nous
  X.w
  Y.w
EndStructure
Global Dim nous.nous(1)

Enumeration
   #dingues
   #dingues3D
   #bande
   #bande3D
   #bord_gauche
   #bord_droit
   #bord_gauche3D
   #bord_droit3D
   #nous
   #nous3D
EndEnumeration

x1=500
y1=202
x2=200
y2=768
ya=y1
xpos=x1
nb_bande=50
bande(0)\X=x1+44
bande(0)\Y=y1

bordgauche(0)\X=x1-14
bordgauche(0)\Y=y1

borddroit(0)\X=x1+94
borddroit(0)\Y=y1

nous(0)\Y=680
nous(0)\X=800
fou(0)\Y=y1
fou(0)\X=x1
;

;-ouvre ecran
OpenScreen (1024, 768, 32, "autoroute" )
KeyboardMode (1)


;-sprite fou
a= CreateSprite ( #dingues ,16, 16, #PB_Sprite_Texture )
StartDrawing ( SpriteOutput ( #dingues ))
Box (2, 0,12, 6, RGB ($A7,$FE,$FA)) ; parebrise
Box (0, 6,16, 10, RGB ($4E,$A5,$FC)) ; caisse
Circle (2, 12, 2 , RGB ($F7,$FF,$4A)) ; phare gauche
Circle (14, 12, 2 , RGB ($F7,$FF,$4A)) ; phare droit
Box (4,12,8, 16, RGB ($1,$74,$B1)) ; radiateur
StopDrawing ()
b= CreateSprite3D ( #dingues3D , #dingues )

;-sprite bande
c= CreateSprite ( #bande ,16, 16, #PB_Sprite_Texture )

StartDrawing ( SpriteOutput ( #bande ))
LineXY (6,0, 0, 16, RGB ($FF,$FF,$FF))
LineXY (10,0, 16, 16, RGB ($FF,$FF,$FF))
FillArea (8, 8, RGB ($FF,$FF,$FF), RGB ($FF,$FF,$FF))
StopDrawing ()
d= CreateSprite3D ( #bande3D , #bande )

;-sprite bord gauche
e= CreateSprite ( #bord_gauche ,16, 16, #PB_Sprite_Texture )
StartDrawing ( SpriteOutput ( #bord_gauche ))
LineXY (10,0, 0, 16, RGB ($FF,$FF,$FF))
LineXY (16,0, 6, 16, RGB ($FF,$FF,$FF))
FillArea (10, 1, RGB ($FF,$FF,$FF), RGB ($FF,$FF,$FF))
StopDrawing ()
f= CreateSprite3D ( #bord_gauche3D , #bord_gauche )

;-sprite bord droit
g= CreateSprite ( #bord_droit ,16, 16, #PB_Sprite_Texture )
StartDrawing ( SpriteOutput ( #bord_droit ))
LineXY (0,0, 10, 16, RGB ($FF,$FF,$FF))
LineXY (6,0,16, 16, RGB ($FF,$FF,$FF))
FillArea (2, 1, RGB ($FF,$FF,$FF), RGB ($FF,$FF,$FF))
StopDrawing ()
h= CreateSprite3D ( #bord_droit3D , #bord_droit )

;-sprite nous
j= CreateSprite ( #nous ,64, 64, #PB_Sprite_Texture )
StartDrawing ( SpriteOutput ( #nous ))
LineXY (16,0, 0, 64, RGB ($FF,$FF,$FF))
LineXY (36,0, 64, 64, RGB ($FF,$FF,$FF))
FillArea (18, 8, RGB ($FF,$FF,$FF), RGB ($FF,$FF,$FF))
Box (0, 40,64, 64, RGB ($4E,$A5,$FC)) ; caisse

Box (0, 5,10,10, RGB ($4E,$A5,$FC)) ; roue gauche
Box (45,5,10,10, RGB ($4E,$A5,$FC)) ; roue droit

Circle (4, 40, 2 , RGB ($FF,$2C,$D)) ; phare gauche
Circle (60, 40, 2 , RGB ($FF,$2C,$D)) ; phare droit

Circle (4, 50, 5 , RGB ($FF,$2C,$D)) ; phare gauche
Circle (60, 50, 5 , RGB ($FF,$2C,$D)) ; phare droit

Circle (28, 25, 10 , RGB ($FF,$2C,$D)) ; tete
Box (5,28,50,10, RGB ($4E,$A5,$FC))
StopDrawing ()
k= CreateSprite3D ( #nous3D , #nous )





;-boucle principale
Repeat
   ExamineKeyboard (): ExamineMouse ()
   StartDrawing ( ScreenOutput ())
   BackColor ( RGB (0, 0,0)) : FrontColor ( RGB (20, 155, 255))
   DrawText (300,150, "nombre de points :" + Str (point))
  
  
   ;-ligne du haut
   Line (0, 200, 1024, 0 , RGB ($8E,$FF,$4A))
   ;-ligne gauche
   LineXY (x1, y1, x2, y2 , RGB ($8E,$FF,$4A))
   ;-ligne droite
   LineXY (x1+100, y1, x2+700, y2 , RGB ($8E,$FF,$4A))
  
   StopDrawing ()
  
   Start3D ()
   DisplaySprite3D ( #bande3D ,bande(i)\X, bande(i)\Y, 255)
  ZoomSprite3D ( #bande3D , 16+zoob/2, 16+zoob)
   If bande(0)\Y>y2:bande(0)\Y=y1: ZoomSprite3D ( #bande3D , 16, 16):zoob=0: EndIf
  bande(0)\Y=bande(0)\Y+vitesse_du_centre ; vitesse de descente de la ligne discontinue
  
   DisplaySprite3D ( #bord_gauche3D ,bordgauche(0)\X, bordgauche(0)\Y, 255)
  ZoomSprite3D ( #bord_gauche3D , 16+zoobord, 16+zoobord)
  bordgauche(0)\X=bordgauche(0)\X- decalage_bord
   If bordgauche(0)\Y>y2:bordgauche(0)\Y=y1-16: ZoomSprite3D ( #bord_gauche3D , 16, 16):zoobord=0:bordgauche(0)\X=x1: EndIf
  bordgauche(0)\Y=bordgauche(0)\Y+ vitesse_des_bords ; vitesse de descente du bord gauche
  
  
   DisplaySprite3D ( #bord_droit3D ,borddroit(0)\X, borddroit(0)\Y, 255)
  ZoomSprite3D ( #bord_droit3D , 16+zoobord, 16+zoobord)
  borddroit(0)\X=borddroit(0)\X+ decalage_bord
   If borddroit(0)\Y>y2:borddroit(0)\Y=y1-16: ZoomSprite3D ( #bord_droit3D , 16, 16):zoobord=0:borddroit(0)\X=x1+85: EndIf
  borddroit(0)\Y=borddroit(0)\Y+ vitesse_des_bords ; vitesse de descente du bord droit
  
  vitesse_des_bords=18
  vitesse_du_centre=10
  decalage_bord=8
  zoob=zoob+1
  zoobord=zoobord+1
  
  
   DisplaySprite3D ( #nous3D ,nous(0)\X, nous(0)\Y, 255)
  
   If collision=2
    Angle=Angle+10
     RotateSprite3D ( #nous3D , Angle, 0)
     If Angle =360 :Angle=0:collision=0: EndIf
   EndIf
   If collision=1
    Angle=Angle-10
     RotateSprite3D ( #nous3D , Angle, 0)
     If Angle =-360 :Angle=0:collision=0: EndIf
   EndIf
  
  
  
   If x_nous<x2+160 : x_nous=x2+160: EndIf
   If x_nous>x2+500 : x_nous=x2+500: EndIf
   If KeyboardPushed ( #PB_Key_Left )
    x_nous=x_nous-8
   EndIf
   If KeyboardPushed ( #PB_Key_Right )
    x_nous=x_nous+8
   EndIf
  nous(0)\X=x_nous
  
  
   If fou(0)\vie=1
     DisplaySprite3D ( #dingues3D ,fou(0)\X, fou(0)\Y, 255)
    ZoomSprite3D ( #dingues3D , 16+xz, 16+xz)
    
   EndIf
   Stop3D ()
   If fou(0)\vie=1
    xz=xz+3 ; facteur de zoom des fous
    fou(0)\Y= fou(0)\Y+8
   EndIf
  
   If fou(0)\vie=0
    u= Random (80)
     If u=8
      fou(0)\vie=1
      depart= Random (100)
      arrivee= Random (5)
       If depart>50:sensx=-arrivee: EndIf
       If depart<=50:sensx=arrivee: EndIf
      fou(0)\X=x1+50
     EndIf
   EndIf
  
  
  
  
  
  
  
   ; ***************** routine de collision maison !! **************************
   StartDrawing ( ScreenOutput ())
  couleur = Point (nous(0)\X-2, nous(0)\Y-5)
  Couleur2 = Point (nous(0)\X+32, nous(0)\Y-5)
  Couleur3 = Point (nous(0)\X+64, nous(0)\Y-5)
   ; Plot(nous(0)\x-2, nous(0)\y-5,RGB($4F,$AF,$FF)) ; sert a verifier les points de test de collisions
   ; Plot(nous(0)\x+32, nous(0)\y-5,RGB($4F,$AF,$FF))
   ; Plot(nous(0)\x+64, nous(0)\y-5,RGB($4F,$AF,$FF))
  ref1= RGB ($4E,$A5,$FC)
  ref2= RGB ($1,$74,$B1)
   If couleur=ref1 Or couleur=ref2 Or Couleur2=ref1 Or Couleur2=ref2
    collision=1
    point=0
    couleur=0:Couleur2=0
   EndIf
   If Couleur3=ref1 Or Couleur3=ref2
    collision=2
    point=0
    Couleur3=0
   EndIf
   StopDrawing ()
   ; *********************************************
  
  
  
   If fou(0)\Y>y2-32
    fou(0)\Y=y1
    xz=0
    ZoomSprite3D ( #dingues3D , 16, 16)
    point=point+10
    fou(0)\vie=0
    
   EndIf
  
  fou(0)\X=fou(0)\X+sensx
  
  
  
  
   FlipBuffers ()
   ClearScreen ( RGB (0, 0, 0))
Until KeyboardPushed ( #PB_Key_Escape ) Or MouseButton (2)
Dernière modification par Backup le sam. 23/sept./2006 13:16, modifié 7 fois.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

C'est le père Michel qui a perdu ses constantes...
et le père Jacobus qui lui a répondu...
C'est par là qu'elle doivent être parties.

Code : Tout sélectionner

;-sprite fou 
a=CreateSprite(,16, 16,#PB_Sprite_Texture) 
StartDrawing(SpriteOutput()) 
Box(2, 0,12, 6,RGB($A7,$FE,$FA)); parebrise 
Box(0, 6,16, 10,RGB($4E,$A5,$FC)); caisse 
Circle(2, 12, 2 ,RGB($F7,$FF,$4A)) ; phare gauche 
Circle(14, 12, 2 ,RGB($F7,$FF,$4A)) ; phare droit 
Box(4,12,8, 16,RGB($1,$74,$B1)) ; radiateur 
StopDrawing() 
b=CreateSprite3D(#fou3D,) 
Le fou a mis les bouts ! :lol:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

280 points ^^

Dri :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:D :D corrigé !!
je savais pas que ma constante fou allais avoir un equivalent smiley !!

:lol: :lol:

Merci Jacobus !!

@Dr.Dri : Bravo c'est pas evident !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

le seul reproche à faire serait peut etre la perspective un peu bizarre... sinon c'est marrant ^^

Dri
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai un probème, le programme bug; il me dit que InitJoystick() doit être appelé; pourtant il l'est ?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

c'est qu'il a echoué
le probleme c'est k'il ne gere pas le
"si initjoystick a réussi, examinejoystick"

met le examinejoystick en commentaire...

Dri ;)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

oui vire le !!

je gere pas le joystick c'etait en prevision au cas ou !! :lol:

je viens de le virer du listing !...
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Oh là là, mais oui, je supprime. :lol:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Faudrait prévoir une aire de repos, c'est trop dangereux, des fois j'aimerais attendre que ça se tasse. :lol:
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

bravo Dobro
je sais pas où tu va chercher toutes ces idées
Bravo Bravo
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Tu me préteras ta Lotus Seven, Dobro ? J'l'adore comme voiture ;).
EDIT : 110.
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

il l'on refaite (Caterham) , il existe meme un importateur en france maintenant ! , c'est vrai que "numero 6" a contribué a faire connaitre cette voiture mythique ... :D

http://www.drivers.fr/images.jpg/Lotus/intLotus3.jpg
http://www.webcarcenter.com/guide/cater ... /G522.html
Marcus
Messages : 187
Inscription : jeu. 22/janv./2004 19:08
Contact :

Message par Marcus »

tres bien :)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

570 !!! donc 150-200 points en restant au milieu sans bouger, il faurdait y faire venir un peu plus de voitures :D
Sinon c'est sympa, par contre j'ai l'impression que la voiture n'est pas très simétrique
Répondre