BASIC

Author Topic: Flammeneffekt (für kalte Winterabende)  (Read 2420 times)

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
mich interessiert, wie man ohne Sprite mehr oder minder realistische Flammeneffekte auf dem Bildschirm zaubern kann.
Das hier habe ich bei

http://www.blitzbase.de/quellcode/feuer.bb

abgekupfert, wobei ich zugeben muss, daß ich weder den Ablauf gänzlich verstehe noch mit dem Ergebnis sonderlich zufrieden bin. Aber immerhin ein Anfang.

Code: GLBasic [Select]
// --------------------------------- //
// Project: fire
// Start: Wednesday, January 02, 2008
// IDE Version: 5.110


height = 100
width = 100
startx = 270
starty = 190


DIM fire[width][height]
maxcolor = 127

FOR i = 0 TO width - 1
  fire[i][height-1] = 70
NEXT

WHILE TRUE
  Kamin()
  FOR i = 0 TO height - 2
    FOR k = 0 TO width - 1
      fire[k][i] = fire[k][i+1] - 2
      IF fire[k][i] > 0 THEN SETPIXEL startx + k, starty + i, fire[k][i]
    NEXT
  NEXT
  FOR i = 0 TO width - 1
    INC fire[i][height-1], RND(20) - 10
  NEXT
  FOR i = 1 TO width - 2
    fire[i][height-1] = (fire[i-1][height-1] + fire[i][height-1] * 3 + fire[i+1][height-1]) / 5
  NEXT
  FOR i = 0 TO width - 1
    IF fire[i][height-1] > maxcolor THEN fire[i][height-1] = maxcolor
    IF fire[i][height-1] > 0 THEN SETPIXEL startx + i, starty + height-1 * 2, fire[i][height-1]
  NEXT
  SHOWSCREEN
WEND


// ------------------------------------------------------------- //
// ---  KAMIN  ---
// ------------------------------------------------------------- //
FUNCTION Kamin:
 
  DRAWRECT 0, 0, 680, 480, RGB(255, 255, 255)
  DRAWRECT 260, 180, 120, 200, RGB(0, 0, 255)
  DRAWRECT startx, starty, width, height, RGB(0, 0, 0)

ENDFUNCTION // KAMIN

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10715
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Flammeneffekt (für kalte Winterabende)
« Reply #1 on: 2008-Jan-02 »
Minion hat mal Feuer gemacht in seinem SpaceInvaders (GLInvaders - im Showroom)

Offline Quentin

  • Prof. Inline
  • *****
  • Posts: 915
    • View Profile
Flammeneffekt (für kalte Winterabende)
« Reply #2 on: 2008-Jan-02 »
habs gesehen. Sehr schöner Effekt. Ich vermute mal ein Partikelsystem dahinter. Für größere Flammenbereiche eignet sich dieses Gepixle auch sicherlich nicht.