3e planète après le soleil
Publié : jeu. 30/déc./2004 16:21
je m'ennuyait alors voila un petit code...
Dri ^^
Code : Tout sélectionner
#PI_180 = 0.017453
Structure point2D
d.l ;distance (en pixels)
a.l ;angle (en degrés)
r.l ;epaisseur du point
;rayon en pixels
g.l ;Centre de gravité
;pointeur vers 'point2D'
x.l ;à utiliser si g est nul
y.l ;à utiliser si g est nul
c.l ;couleur
EndStructure
Procedure mod(a.l, b.l)
If b <> 0
a % b
If a < 0 : a + Abs(b) : EndIf
EndIf
ProcedureReturn a
EndProcedure
Procedure afficherPoint2D(*p.Point2D)
r.l = *p\r
g.l = *p\g
If g <> #NULL
rad.f = *p\a * #PI_180
x.l = Cos(rad) * *p\d
y.l = Sin(rad) * *p\d
While g <> #NULL
CopyMemory( g, p.Point2D, SizeOf(Point2D) )
rad = p\a * #PI_180
xx = Cos(rad) * p\d
yy = Sin(rad) * p\d
x + xx
y + yy
g = p\g
Wend
x + p\x
y + p\y
Else
x = *p\x
y = *p\y
EndIf
x - r
y - r
Circle(x, y, r << 1, *p\c)
EndProcedure
Soleil.Point2D
Soleil\r = 8
Soleil\g = #NULL
Soleil\x = 400
Soleil\y = 300
Soleil\c = RGB(255, 255, 0)
Mercure.point2D
Mercure\d = 60
Mercure\a = 0
Mercure\r = 2
Mercure\g = @Soleil
Mercure\c = RGB(150, 150, 150)
Venus.point2D
Venus\d = 150
Venus\a = 0
Venus\r = 3
Venus\g = @Soleil
Venus\c = RGB(250, 150, 50)
Terre.point2D
Terre\d = 200
Terre\a = 0
Terre\r = 4
Terre\g = @Soleil
Terre\c = RGB(0, 0, 255)
Lune.point2D
Lune\d = 20
Lune\a = 0
Lune\r = 2
Lune\g = @Terre
Lune\c = RGB(250, 200, 100)
InitSprite()
InitKeyboard()
OpenScreen(800, 600, 32, "")
Repeat
ExamineKeyboard()
ClearScreen(0, 0, 0)
If StartDrawing( ScreenOutput() )
afficherPoint2D(Soleil)
afficherPoint2D(Mercure)
afficherPoint2D(Venus)
afficherPoint2D(Terre)
afficherPoint2D(Lune)
StopDrawing()
EndIf
Mercure\a + 3
Venus\a + 2
Terre\a + 1
Lune\a + 5
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)