Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!


Code-Beispiel

Code-Beispiele » Grafik und Fonts

Animation mit PUT

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.MitgliedLothar Schirm 14.04.2008

Eine kleine Animation: Drei Monde umkreisen den SATURN

DIM AS ANY PTR Buffer1, Buffer2, Buffer3
DIM AS SINGLE x, y, pi, dphi1, dphi2, dphi3, phi1, phi2, phi3, r1, r2, r3, x1, _
              y1, x2, y2, x3, y3
DIM AS INTEGER i

SCREEN 12

'Satelliten speichern:

'Roter Satellit:
Buffer1 = IMAGECREATE(32, 32)
CIRCLE Buffer1, (16, 16), 15, 4,,,,F

'Blauer Satellit:
Buffer2 = IMAGECREATE(42, 42)
CIRCLE Buffer2, (21, 21), 20, 9,,,,F

'Gruener Satellit:
Buffer3 = IMAGECREATE(36, 36)
CIRCLE Buffer3, (18, 18), 17, 2,,,,F

'Bild aufbauen:

LOCATE 29, 30
PRINT "Ende: Beliebige Taste"

'Sternenhimmel zeichnen:
RANDOMIZE TIMER
FOR i = 0 TO 1000
    x = 640 * RND(1)
    y = 480 * RND(1)
    PSET (x, y)
NEXT i

'Saturn-Himmelskoerper zeichnen (gelb):
CIRCLE (320, 240), 75, 14,,,,F

'Saturn-Ringe zeichnen (braun):
pi = 3.141593
FOR i = 0 TO 10 STEP 2
  CIRCLE (320, 240), 150 + 3 * i, 6, (0.66 - .003 * i) * pi, (0.34 + .003 * i) * pi, .2
NEXT i

'Parameter fuer Satellitenbahnen:

dphi1 = 2 * pi / 500
dphi2 = .7 * dphi1
dphi3 = .3 * dphi1
r1 = 195
r2 = 210
r3 = 230
phi1 = 0
phi2 = 2 * pi / 3
phi3 = 4 * pi / 3

DO

    'Speicherinhalte (Satelliten) in Bild einfuegen:

    x1 = 320 + r1 * SIN(phi1)
    y1 = 240 + 0.6 * r1 * COS(phi1)
    PUT(x1 - 15, y1 - 15), Buffer1, XOR

    x2 = 320 + r2 * SIN(phi2)
    y2 = 240 + 0.7 * r2 * COS(phi2)
    PUT(x2 - 20, y2 - 20), Buffer2, XOR

    x3 = 320 + r3 * SIN(phi3)
    y3 = 240 + 0.8 * r3 * COS(phi3)
    PUT(x3 - 25, y3 - 17), Buffer3, XOR

    'Satelliten durch nochmaliges Einfuegen des Speicherinhaltes loeschen:
    SLEEP 5
    PUT(x1 - 15, y1 - 15), Buffer1, XOR
    PUT(x2 - 20, y2 - 20), Buffer2, XOR
    PUT(x3 - 25, y3 - 17), Buffer3, XOR

    phi1 = phi1 + dphi1
    phi2 = phi2 + dphi2
    phi3 = phi3 + dphi3

LOOP WHILE INKEY = ""

IMAGEDESTROY Buffer1
IMAGEDESTROY Buffer2
IMAGEDESTROY Buffer3


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 14.04.2008 von MitgliedLothar Schirm angelegt.
  • Die aktuellste Version wurde am 14.04.2008 von MitgliedLothar Schirm gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen