Page 1 sur 2

les autoroutes sont incroyable !!

Publié : sam. 02/juil./2005 19:12
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)

Publié : sam. 02/juil./2005 19:19
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:

Publié : sam. 02/juil./2005 19:54
par Dr. Dri
280 points ^^

Dri :D

Publié : sam. 02/juil./2005 21:46
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 !

Publié : sam. 02/juil./2005 21:55
par Dr. Dri
le seul reproche à faire serait peut etre la perspective un peu bizarre... sinon c'est marrant ^^

Dri

Publié : sam. 02/juil./2005 21:56
par nico
J'ai un probème, le programme bug; il me dit que InitJoystick() doit être appelé; pourtant il l'est ?

Publié : sam. 02/juil./2005 22:00
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 ;)

Publié : sam. 02/juil./2005 22:06
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 !...

Publié : sam. 02/juil./2005 23:10
par nico
Oh là là, mais oui, je supprime. :lol:

Publié : sam. 02/juil./2005 23:14
par nico
Faudrait prévoir une aire de repos, c'est trop dangereux, des fois j'aimerais attendre que ça se tasse. :lol:

Publié : dim. 03/juil./2005 7:41
par bernard13
bravo Dobro
je sais pas où tu va chercher toutes ces idées
Bravo Bravo

Publié : dim. 03/juil./2005 9:25
par Heis Spiter
Tu me préteras ta Lotus Seven, Dobro ? J'l'adore comme voiture ;).
EDIT : 110.

Publié : dim. 03/juil./2005 9:49
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

Publié : dim. 03/juil./2005 22:35
par Marcus
tres bien :)

Publié : lun. 04/juil./2005 10:43
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