les autoroutes sont incroyable !!
Publié : sam. 02/juil./2005 19:12
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 !!
la preuve :
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 !!


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)