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.
// --------------------------------- //
// 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
Minion hat mal Feuer gemacht in seinem SpaceInvaders (GLInvaders - im Showroom)
habs gesehen. Sehr schöner Effekt. Ich vermute mal ein Partikelsystem dahinter. Für größere Flammenbereiche eignet sich dieses Gepixle auch sicherlich nicht.