### Author Topic: Star-field  (Read 6342 times)

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Star-field
« on: 11. February 2014, 19:39:06 »
Hello!
I'm looking for some code to make this: (picture)
I want to make a starfield screensaver in lua, but i'm not a genius in math :\
does someone want to help me?
« Last Edit: 11. February 2014, 19:41:04 by GEEK »

#### Cosmo

• Guest
##### Re: Star-field
« Reply #1 on: 12. February 2014, 11:31:27 »
Hi Geek,
Code: [Select]
`--'by Peter Wirbelaueropenwindow(640,480,0,"Stars")setframetimer(60)function rand(minZahl,maxZahl)   maxZahl = (maxZahl-minZahl)   return int(rnd()*maxZahl+minZahl)endlocal col=0;sx=0;sy=0;anz=5000;speed=2;xscreen=640;yscreen=480local xstern ={}local ystern ={}local zstern ={}for i=0,anz do   xstern[i] = rand(-(xscreen/2), (xscreen/2))*128   ystern[i] = rand(-(yscreen/2), (yscreen/2))*128   zstern[i] = rand(speed,255)endfunction updatestars()   local i,co   for i=0,anz do      zstern[i] = zstern[i] - speed      if zstern[i] <= speed then zstern[i] = 255; end      sx = (xstern[i] / zstern[i]) + (xscreen/2)      sy = (ystern[i] / zstern[i]) + (yscreen/2)      co = (300 -zstern[i])*.8      alphachannel(250)      color(co,co,co)      box(sx,sy,sx+2,sy+2)   endendrepeatk=getkey()cls()alphachannel(200)updatestars()redraw()until k==27closewindow()`

#### Cosmo

• Guest
##### Re: Star-field
« Reply #2 on: 12. February 2014, 12:16:16 »
another starfield.
Code: [Select]
`--'by Peter Wirbelaueropenwindow(640,480,0,"Retro-Stars")setframetimer(60)colorkey(0,0,0)function rand(minZahl,maxZahl)   maxZahl = (maxZahl-minZahl)   return int(rnd()*maxZahl+minZahl)endfunction sprite(id,x,y,w,h,fx)   drawimage(w*fx,0,w,h,x,y,id)endlocal np=500; j=0; z=0; p=0; v=0local px={}local py={}local pz={}p = loadimage("png/phoenix.png")for j=0,np do    px[j] = rand(0,639)    py[j] = rand(0,479)    pz[j] = rand(65536,16777215)endrepeatk=getkey()cls()for j=0,np do     px[j] = px[j] -1     if px[j] <0 then        px[j] = 640        py[j] = rand(0,479)     end     color(pz[j],pz[j],pz[j])     box(px[j],py[j], px[j]+2,py[j]+2)endsprite(p,(640-128)/2,(480-128)/2,128,128,z)v = v+0.2if v >=1 then   v = 0   z = z+1   if z==10 then z=0; endendredraw()until k==27closewindow() `
« Last Edit: 12. February 2014, 12:20:05 by Cosmo »

#### Cosmo

• Guest
##### Re: Star-field
« Reply #3 on: 12. February 2014, 16:56:01 »
And once again.
Code: [Select]
`--'by Peter Wirbelaueropenwindow(640,480,0,"Retro-Stars")setframetimer(60)function rand(minZahl,maxZahl)   maxZahl = (maxZahl-minZahl)   return int(rnd()*maxZahl+minZahl)endlocal rad = math.radlocal z = "HELLO AND WELCOME IN THE SUPER PROGRAMMING!"; letter=0local fok, xp, yp, i, tl, x, m = 160,0,0,0,0,0,0local x3DSterne ={}local y3DSterne ={}local z3DSterne ={}local y ={}local angle ={}tl = len(z)m=loadmusic("music/b.mod")playmusic(m,128,-1)for i=0,tl do    angle[i] = 360-i*(360/tl)    y[i] = 240endfor i=0,799 do    x3DSterne[i] = rand (1,440)    y3DSterne[i] = rand (1,380)    z3DSterne[i] = rand (1,500)endrepeatk=getkey()alphachannel(150)cls()for i=0,799 do    xp = (x3DSterne[i] * fok) / (z3DSterne[i] + fok) + 5    yp = (y3DSterne[i] * fok) / (z3DSterne[i] + fok) + 5    color(255,255,255)    box(xp,yp, 2+xp,2+yp)    xp = (-x3DSterne[i] * fok) / (z3DSterne[i] + fok) + 630    yp = (-y3DSterne[i] * fok) / (z3DSterne[i] + fok) + 470    box(xp,yp,2+xp,2+yp)    xp = (-x3DSterne[i] * fok) / (z3DSterne[i] + fok) + 630    yp = ( y3DSterne[i] * fok) / (z3DSterne[i] + fok) + 8    box(xp,yp,2+xp,2+yp)    xp = ( x3DSterne[i] * fok) / (z3DSterne[i] + fok) + 5    yp = (-y3DSterne[i] * fok) / (z3DSterne[i] + fok) + 470    box(xp,yp,2+xp,2+yp)    z3DSterne[i] = z3DSterne[i] -1    if z3DSterne[i] <=0 then       z3DSterne[i] = 500    endendalphachannel(255)for x=1,tl do   angle[x] = angle[x] +1   if angle[x] == 360 then angle[x] =0; end   letter = mid(z, x ,1)   y[x] = y[x] + sin(rad(angle[x]*4))   color(0x9C,0x5A,0xEF)   drawtext(2+x*14,y[x],letter)   y[x] = y[x] + cos(rad(angle[x]*2))   color(0,255,0)   drawtext(2+x*14,5+y[x],letter)endredraw()until k==27closewindow()`
« Last Edit: 12. February 2014, 17:13:50 by Cosmo »

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Re: Star-field
« Reply #4 on: 12. February 2014, 20:30:25 »
wow!  that's sooo coool!
thank you!

do you think you can give it the stripes effect?
that the stars like in the example are stripes?

I'm glad with this examples to! great

#### Cosmo

• Guest
##### Re: Star-field
« Reply #5 on: 12. February 2014, 20:36:50 »
Hi Geek,

stripes are possible with alphachannel, but unfortunately, Egsl alphachannel doesn't it.
« Last Edit: 13. February 2014, 00:08:08 by Cosmo »

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Re: Star-field
« Reply #6 on: 12. February 2014, 22:18:13 »
ok, thanks anyway!

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Re: Star-field
« Reply #7 on: 12. February 2014, 22:38:47 »
Ow, the documentation says that egsl has alpha to...

#### Cosmo

• Guest
##### Re: Star-field
« Reply #8 on: 13. February 2014, 00:00:51 »
Hi Geek,

Egsl has alpha, I know.
But what I meant was, that it doesn't work!  You cannot get stripes with EGSL_ALPHACHANNEL!

#### Cosmo

• Guest
##### Re: Star-field
« Reply #9 on: 13. February 2014, 00:05:09 »
If you would peek into the source code, you would see that I used alphachannel!

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Re: Star-field
« Reply #10 on: 13. February 2014, 00:13:03 »
Yes, just saw that, sry.
can i ask you why you used "alphachannel(200)" then?
if i delete it, nothing changes...

repeat
k=getkey()
cls()
alphachannel(200)
redraw()
until k==27
closewindow()

and is it possible witout alphachannel? just stripes, pure white?
« Last Edit: 13. February 2014, 00:15:51 by GEEK »

#### Cosmo

• Guest
##### Re: Star-field
« Reply #11 on: 13. February 2014, 00:28:29 »
Quote
and is it possible witout alphachannel? just stripes, pure white?

I have tried, but without success. alphachannel in the source code is a holdover, I forgot to remove.
Alphachannel (50)  gets a darker white, but not alpha.

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Re: Star-field
« Reply #12 on: 13. February 2014, 00:44:22 »
ok, going to mess a bit with that code, maybe i find a solution, thanks for the help!

#### Cosmo

• Guest
##### Re: Star-field
« Reply #13 on: 15. February 2014, 22:49:35 »
Hi Lelldorin,

Okay, you got it

#### GEEK

• Jr. Member
• Posts: 83
• want to learn c++, if you want to teach me, pm me!
##### Re: Star-field
« Reply #14 on: 16. February 2014, 02:54:47 »
Hi Lelldorin