A tous g pas envie dle terminer car ça engendre d'autres idées
utiliser la sourie, un code genere au hasard un angle au depart, LAISSEZ TOMBER LA BALLE POUR VOIR D'AUTRE ANGLE MARANT
Code : Tout sélectionner
;@ Chikun ; Casbrik!
ecranx = GetSystemMetrics_(#SM_CXSCREEN) ;1280
ecrany = GetSystemMetrics_(#SM_CYSCREEN) ;800
InitSprite() : InitKeyboard() : InitMouse()
OpenScreen (ecranx, ecrany, 32, "casbrik")
Structure objet
x.f
y.f
coul.l
ang.f
dt.f
gravite.f
vitesse.f
vectx.f
vecty.f
EndStructure
Structure target
x.w
y.w
EndStructure
Enumeration
#fond
#racket
#balle
#target
EndEnumeration
Dim objet.objet(4)
CreateSprite(#fond,EcranX,EcranY)
StartDrawing(SpriteOutput(#fond))
Box(0,0,EcranX,EcranY,RGB(0,0,0))
StopDrawing()
CreateSprite(#racket,100,2)
StartDrawing(SpriteOutput(#racket))
Box(0,0,100,2,RGB(255,255,255))
StopDrawing()
objet(#balle)\coul=RGB(10,157,32)
CreateSprite( #balle,32,32)
StartDrawing(SpriteOutput(#balle))
Circle(16, 16, 16, objet(#balle)\coul)
StopDrawing()
objet(#target)\coul=RGB(3,1,250)
CreateSprite( #target,32,32)
StartDrawing(SpriteOutput(#target))
Box(0,0,16, 16, objet(#target)\coul)
StopDrawing()
Dim target.target(150)
deb:
objet(#balle)\x=ecranx/2
objet(#balle)\y=ecrany/2
objet(#balle)\vitesse=99
objet(#balle)\ang=Random(360)+45*#PI/180
objet(#balle)\dt=0.2
objet(#balle)\gravite=9.8
objet(#balle)\vectx=objet(#balle)\vitesse*Cos(objet(#balle)\ang)
objet(#balle)\vecty=-objet(#balle)\vitesse*Sin(objet(#balle)\ang)
objet(#racket)\y=750
rec:
For i=1 To 150
target(i)\x=Random(ecranx-100)
target(i)\y=Random(ecrany-(16*40))
For j=1 To i-1
If target(i)\x=target(i-j) : Goto rec
EndIf
Next j
Next i
;*******************
Repeat
ExamineKeyboard()
ExamineMouse()
objet(#racket)\x=MouseX()
If objet(#racket)\x>1180 : objet(#racket)\x=1180 : EndIf
If objet(#racket)\x<0 : objet(#racket)\x=0 : EndIf
objet(#balle)\vecty=objet(#balle)\vecty+objet(#balle)\gravite*objet(#balle)\dt
objet(#balle)\x=objet(#balle)\x+objet(#balle)\vectx*objet(#balle)\dt
objet(#balle)\y=objet(#balle)\y+objet(#balle)\vecty*objet(#balle)\dt
If objet(#balle)\x> EcranX-34 Or objet(#balle)\x<0
objet(#balle)\vectx=-objet(#balle)\vectx : objet(#balle)\gravite=-objet(#balle)\gravite
EndIf
If objet(#balle)\y<0
objet(#balle)\vecty=-objet(#balle)\vecty
EndIf
If SpritePixelCollision(#balle,objet(#balle)\x,objet(#balle)\y,#racket,objet(#racket)\x,objet(#racket)\y)
objet(#balle)\vecty=-objet(#balle)\vecty :
EndIf
If objet(#balle)\y>750 : Delay(1000) : Goto deb
EndIf
StartDrawing(ScreenOutput())
DrawText(0,0,"@ Chikun",RGB(125,90,30),RGB(0,0,0))
Line(objet(#racket)\x,objet(#racket)\y,100,00,objet(#racket)\coul)
StopDrawing()
DisplayTransparentSprite(#balle,objet(#balle)\x,objet(#balle)\y)
For i=1 To 150
If SpritePixelCollision(#target,target(i)\x,target(i)\y,#balle,objet(#balle)\x,objet(#balle)\y)
objet(#balle)\vectx=-objet(#balle)\vectx : objet(#balle)\vecty=-objet(#balle)\vecty
target(i)\x=ecranx+32 : target(i)\y=ecrany+32
EndIf
DisplayTransparentSprite(#target,target(i)\x,target(i)\y)
Next i
DisplayTransparentSprite(#racket,objet(#racket)\x,objet(#racket)\y)
FlipBuffers()
DisplaySprite(#fond,0,0)
;Delay(1)
Until KeyboardPushed(#PB_Key_Escape)
End