Snowflakes - Printable Version +- NaaLaa (https://www.naalaa.com/forum) +-- Forum: NaaLaa (https://www.naalaa.com/forum/forum-1.html) +--- Forum: NaaLaa 7 Code (https://www.naalaa.com/forum/forum-4.html) +--- Thread: Snowflakes (/thread-18.html) Snowflakes - Marcus - 12-09-2023 Here are some spare snowflakes, plenty of them in Sweden! Something very similar was written in n6 many years ago. Code:```' Snowflakes ' ---------- include "list.n7" #win32 constant BG_R = 16, BG_G = 24, BG_B = 64 set window "Snowflakes", 480*screenw()/screenh(), 480, true set redraw off snowflakeImage = loadimage("snowflake.png") stars = List() for i = 1 to 200  stars.Add([x: rnd()*2 - 1, y: rnd()*2 - 1, z: 0.1 + rnd()*0.9]) set color BG_R, BG_G, BG_B cls do     for i = 0 to stars.size - 1         s = stars[i]         s.z = s.z - 0.01         if s.z < 0.1             s.z = s.z + 0.9             s.x = rnd()*2 - 1             s.y = rnd()*2 - 1         endif     next     stars.Sort(function(a, b)             return b.z - a.z         endfunc)         set color BG_R, BG_G, BG_B, 96     cls     wp = width(primary)/2     hp = height(primary)/2     for i = 0 to stars.size - 1         s = stars[i]         x = wp + s.x*wp/s.z*0.75         y = hp + s.y*hp/s.z*0.75         size = 16/s.z         set color BG_R, BG_G, BG_B, s.z*255         DrawScaledImage(snowflakeImage, x - size/2, y - size/2, size, size)     next     fwait 60     redraw until keydown(KEY_ESCAPE) or mousebutton(0) function DrawScaledImage(img, x, y, w, h)     du = 1/w     u = 0     for dx = 0 to w - 1         draw vraster img, x + dx, y, y + h - 1, u, 0, u, 1         u = u + du     next endfunc``` RE: Snowflakes - johnno56 - 12-09-2023 Reminds me of a "Starfield" but with a "Christmas-y" feel... Cool... Nicely done! RE: Snowflakes - 1micha.elok - 12-21-2023 (12-09-2023, 12:00 PM)johnno56 Wrote: Reminds me of a "Starfield" but with a "Christmas-y" feel... Cool... Nicely done! Your wish is my command  Here is the source code of the Starfield Simplified ... note : Actually, it was just a modification of Marcus' Snowflakes. Thanks to Marcus  Code:```'---------------- ' INITIALIZATION '---------------- set window "Starfleet - simplified",800,600,false set redraw off stars = [] for i = 0 to 199  stars[i] = [x: rnd()*2-1, y:rnd()*2-1, z:0.1+rnd()*0.9] wp = 800/2; hp = 600/2 'center of the screen '----------------- ' MAIN PROGRAM '----------------- do     set color 0,0,0;cls 'black     for i = 0 to 199         stars[i].z = stars[i].z - 0.01         if stars[i].z < 0.1             stars[i].z = stars[i].z + 0.9         endif                 'Coordinate (x,y) is moving from center         x = wp + stars[i].x*wp/stars[i].z         y = hp + stars[i].y*hp/stars[i].z                               radius = 1/stars[i].z         set color 255,255,255 'white         draw ellipse x,y,radius,radius,1 '1=filled     next     fwait 60     redraw until keydown(KEY_ESCAPE) or mousebutton(0)``` RE: Snowflakes - johnno56 - 12-21-2023 Very nicely done! RE: Snowflakes - Marcus - 12-22-2023 Nice! Love programs that don't require any assets! Maybe I should write a snowflake version that also generates a random snowflake image, fractal.