Page 1 sur 1

Je lui apprend le casse brique..

Publié : ven. 19/juin/2009 17:50
par chikun
:lol: vous vous en foutez du vers de mon ex topic, ben je l'ai dompté, il joue avec moi maintenant . :lol:

Messieurs, accordez vous un peu de détenteet de patiente , il est un peu têtue ..

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


Re: Je lui apprend le casse brique..

Publié : ven. 19/juin/2009 22:08
par beauregard
c'est rigolo, je pense que tu peux le mettre sur le forum Jeux :)

Publié : mer. 01/juil./2009 10:18
par kerkael
Super marrant ! Et original, un boule soumise à la pesanteur, ça change des autres casse-briques.
Il y a même des comportements paranormaux avec la boule qui ne redescend pas faisant une courbe parabolique ouverte en haut ... assez bizarre.
J'aime et je vote : POUR