Efektit

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Efektit

Post by CCE » Tue Jan 25, 2011 7:16 pm

Löysin tälläisen vanhan (ja raskaan) laavalamppumaisen plasman

Code: Select all

SCREEN 400,300
SCREEN 80, 60, 32, cbSizable
start=Timer()
Repeat
aika=Timer()-start
z#=1.3-((1+Sin(aika/128.0))/2.0)
For y=0 To 59
For x=0 To 79
d#=Sin((Distance( x,y,40+Sin(aika/16.0),Sin(x*2)*(7*z)+40*z+Sin(aika/30.0))*20.0*z))
c#=Max(0,((Sin(x*24*z+d*8+aika/12.0 )+Sin(y*20*z+d*20+aika/22.0 )+d*2)/4.0)*255)
Color Min(255, Abs(c*2)),c,Min(255,Abs(c*z))
Dot x,y
Next x
Next y
DrawScreen
Forever

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Efektit

Post by MaGetzUb » Tue Jan 25, 2011 9:06 pm

Erittäin nätti, hyvää työtä. :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Efektit

Post by Ilkka » Sun Feb 13, 2011 8:30 pm

Satuin vahingossa tekemään tällaisen, kun tein ja testailin peliini tulevaa räjähdystä. ;)

Code: Select all

Type RÄJÄHDYKSET
    Field x#
    Field y#
    Field oldx
    Field oldy
    Field kulma#
    Field nopeus#
    Field koko#
EndType 

Repeat
    

    'If KeyHit(28) Then
        For rr = 1 To 120
            r.RÄJÄHDYKSET = New(RÄJÄHDYKSET)
            r\x = 200
            r\y = 150
            r\nopeus = 2
            r\kulma = rr*3
            r\koko = 5
            r\oldx = 200
            r\oldy = 150
        Next rr
  '  EndIf 

    For r.RÄJÄHDYKSET = Each RÄJÄHDYKSET
    
        Color 255,255,0
        Dot r\x, r\y
      
            r\x = r\x - Cos(r\kulma) * r\nopeus
            r\y = r\y + Sin(r\kulma) * r\nopeus

        
    Next r

  DrawScreen
Forever 
Image

User avatar
Execute
Active Member
Posts: 110
Joined: Fri Feb 11, 2011 7:41 pm

Re: Efektit

Post by Execute » Wed Feb 16, 2011 7:58 pm

Noh... Kehittelin jotain kivaa aikani kuluksi ja keksin tällaisen jutun:

Joo kämy on...

Code: Select all

SCREEN 800,800

Color cbyellow

Repeat 
kohta = Rand(0,1000)
kohta2= Rand(0,1000)
If musta = 0 Then 
valkonen = valkonen+1
EndIf 
If musta = 1 Then 
mustuus = mustuus+1
EndIf 
Line kohta,kohta2,500,500
DrawScreen OFF 
If valkonen = 1000 Then 
musta = 1
valkonen = 0
Color cbblack
EndIf 
If mustuus = 1500 Then 
musta = 0
Color cbyellow
EndIf 
Forever 
Auringon nousu... Auringon pimennys... Nousu... ja eteenpäin... Kommenttia saa antaa! :mrgreen:
SpaceCraft on kokopitkä peli! Nyt ladattavissa! Tsekkaa!

User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Efektit

Post by TheDuck » Wed Feb 16, 2011 9:56 pm

Execute wrote:Noh... Kehittelin jotain kivaa aikani kuluksi ja keksin tällaisen jutun:

Joo kämy on...

Code: Select all

SCREEN 800,800

Color cbyellow

Repeat 
kohta = Rand(0,1000)
kohta2= Rand(0,1000)
If musta = 0 Then 
valkonen = valkonen+1
EndIf 
If musta = 1 Then 
mustuus = mustuus+1
EndIf 
Line kohta,kohta2,500,500
DrawScreen OFF 
If valkonen = 1000 Then 
musta = 1
valkonen = 0
Color cbblack
EndIf 
If mustuus = 1500 Then 
musta = 0
Color cbyellow
EndIf 
Forever 
Auringon nousu... Auringon pimennys... Nousu... ja eteenpäin... Kommenttia saa antaa! :mrgreen:
Miks se piti postata jos kerran on niin kämänen? Ja eipä ollut kovin hieno efekti, tosin vilkaistuani koodiin en edes odottanut mitään hienoa.
^^

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Efektit

Post by koodaaja » Wed Feb 16, 2011 11:04 pm

TheDuck: Äläs nyt, ihan peruskamaa ensiefektiksi.

Execute: Kokeile nopeuttaa efektiä piirtämällä näyttö harvemmin tai jotain, kuvittelisin sen näyttävän paremmalta.

User avatar
Execute
Active Member
Posts: 110
Joined: Fri Feb 11, 2011 7:41 pm

Re: Efektit

Post by Execute » Thu Feb 17, 2011 4:08 pm

TheDuck wrote:
Execute wrote:Noh... Kehittelin jotain kivaa aikani kuluksi ja keksin tällaisen jutun:

Joo kämy on...

Code: Select all

SCREEN 800,800

Color cbyellow

Repeat 
kohta = Rand(0,1000)
kohta2= Rand(0,1000)
If musta = 0 Then 
valkonen = valkonen+1
EndIf 
If musta = 1 Then 
mustuus = mustuus+1
EndIf 
Line kohta,kohta2,500,500
DrawScreen OFF 
If valkonen = 1000 Then 
musta = 1
valkonen = 0
Color cbblack
EndIf 
If mustuus = 1500 Then 
musta = 0
Color cbyellow
EndIf 
Forever 
Auringon nousu... Auringon pimennys... Nousu... ja eteenpäin... Kommenttia saa antaa! :mrgreen:
Miks se piti postata jos kerran on niin kämänen? Ja eipä ollut kovin hieno efekti, tosin vilkaistuani koodiin en edes odottanut mitään hienoa.
Ensiefekti... Sori... Mutta tekemällä oppii!
Jos oppii...
SpaceCraft on kokopitkä peli! Nyt ladattavissa! Tsekkaa!

MrMonday
Advanced Member
Posts: 378
Joined: Fri Oct 10, 2008 2:35 pm

Re: Efektit

Post by MrMonday » Tue Feb 22, 2011 1:48 am

Täytyy sanoa että en muista mitä alunperin yritin tehdä, mutta tällaista tuli, simppeli ruudukko-efekti :D

Code: Select all

// HYPPYVÄLI-Vakio säätää ruudukon tiheyden..
    Const HYPPYVÄLI = 50

Repeat
        For y = 0 To ScreenHeight() Step HYPPYVÄLI
                For x = 0 To ScreenWidth() Step HYPPYVÄLI
                    Color Rand(0,255),Rand(0,255),Rand(0,255)
                        Line x+Rand(-1,1), y-Rand(-1,1), x+Rand(-1,1), ScreenHeight()-Rand(-1,1)
                    Color Rand(0,255),Rand(0,255),Rand(0,255)
                        Line x-Rand(-1,1), y+Rand(-1,1), -ScreenWidth()-Rand(-1,1), y+Rand(-1,1)
                Next x
        Next y
    DrawScreen
Forever
EDIT:

Niin ja saa vapaasti muokata, jos tästä vielä jotain hienompaa saatte tehtyä ;)


User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Efektit

Post by Wingman » Fri Feb 25, 2011 3:49 pm

Teinpä tässä aikani kuluksi tämmöisen avaruusmatkan, yhdistin sitten vielä metapallot pieneen näyttöön. Oikeanpuoleiseen näyttöön en keksinyt oikein mitään, saatan heittää sinne jotain.
pitemmittä puheitta:

Code: Select all

SCREEN 800,600,0,1
SCREEN 800,600,0,2
Const sp=4
Const sx=10
Const sy=10
c=0
Type STAR
	Field x As Float
	Field y As Float 
	Field z As Float 
	Field s As Float 
	Field a As Float 
	Field e
EndType 
Type P
	Field x As Float 
	Field y As Float 
	Field kx As Float 
	Field ky As Float 
	Field s
EndType
For i=1 To 3
	b.P=New(P)
	b\x=Rand(160)
	b\y=Rand(26,120)
	b\kx=Rand(160)
	b\ky=Rand(26,120)
	b\s=10'Rand(12,25)
Next i
screen1=MakeImage(160,120)
screen2=MakeImage(160,120)
alkuz=1
maxz=200
camz#=0
camx#=0
camy#=0
For i=0 To 2000
	t.STAR=New(STAR)
	t\x=Rand(-25000,25000)
	t\y=Rand(-25000,25000)
	t\z=Rand(1,maxz)
	t\a=GetAngle(t\x,t\y,0,0)
Next i
auto=1
spe#=0
an#=0
a#=0
ca#=0
a2#=0
ShowMouse OFF 
Repeat 	
	a2-5
	camz=camz-spe
	a=CurveValue(an,a,30)
	If auto=1 Then 
		ca=ca+5
		camx=Cos(ca)*100
		camy=Sin(ca)*100
		If Timer()>ti+2000 Then 
			spe=Rand(3,8)
			an=Rand(360)
			ti=Timer()
		EndIf
		spe=CurveValue(1,spe,30)
	Else 
		spe=Int(spe+(UpKey()-DownKey()))
		camx=400-MouseX()'Cos(ca)*100
		camy=300-MouseY()'Sin(ca)*100
		an=an+(LeftKey()-RightKey())*6
	EndIf 
	If spe>10 Then spe=10
	If spe<-5 Then spe=-5
	For t.STAR=Each STAR
		dx=400+camx+(Cos(t\a)*t\e)/(t\z+camz)
		dy=300+camy+(Sin(t\a)*t\e)/(t\z+camz)
		t\a=a+GetAngle(t\x,t\y,camx,camy)
		t\e=Distance(t\x,t\y,camx,camy)
		t\s=(200-(t\z+camz))/50
		If (t\z+camz)<0 Then t\z+maxz
		If (t\z+camz)>maxz Then t\z-maxz
		If t\s<1 Then t\s=1
		r= maxz-(t\z+camz)
		g= maxz-(t\z+camz)
		b= maxz-(t\z+camz)
		'Color r,g,b
		Box dx,dy,t\s,t\s,1
		Color 176,176,0
		Box dx,dy,t\s,t\s,0
	Next t
	Gosub drawship
	Gosub updatescreens
	Text 0,0,FPS()+ " "+MouseX()+" "+MouseY()
	Dot MouseX(),MouseY()
	If MouseX()>355 And MouseX()<355+(TextWidth("Autpilot")+15) And MouseY()>485 And MouseY()<499 Then 	
		If MouseHit(1) Then 
			auto=-auto
		EndIf 
	EndIf 
	Gosub drawmouse
	DrawScreen 
Forever 
	
drawship:
	Color 1,1,1
	//alaosa 
	Box 0,390,800,210,1
	For i=0 To 20
		Line 150,390,0,375+i
		Line 650,390,800,375+i
	Next i
	//yläosa
	Box 0,0,800,10,1
	For i=0 To 40
		Line 300,10,100,50-i
		Line 700,50-i,500,10
	Next i
	Box 0,10,100,40
	Box 700,10,100,40 
	// sivupaneelit
	For i=0 To 25	
		Line 175-i,390,100-i,50
		Line 625+i,390,700+i,50
	Next i
	Color 255,255,255
	//alaosa 
	Line 175,390,625,390
	Line 150,400,0,450
	Line 150,400,650,400
	Line 150,390,0,375
	Line 650,390,800,375
	Line 650,400,800,450
	//vasen sivupaneeli
	Line 175,390,100,50
	Line 150,390,75,50
	//oikea sivupaneeli
	Line 625,390,700,50
	Line 650,390,725,50
	//yläosa
	Line 500,10,300,10
	Line 100,50,300,10
	Line 700,50,500,10
	Line 725,50,800,50
	Line 75,50,0,50
	// kulmat
	Line 150,400,100,600
	Line 650,400,700,600
	// näytöt
	Box 179,429,162,122,0
	Box 800-181-160,429,162,122,0
	DrawImage screen1,180,430
	DrawImage screen2,800-180-160,430
	// mittarit
	//vasen 
	Circle 350,430,45,0 
	Dot 350+45/2,430+45/2
	Color 0,200,0
	Line 350+45/2,430+45/2,350+45/2+Cos(WrapAngle(a))*45/2,430+45/2+Sin(WrapAngle(a))*45/2
	Line 350+45/2,430+45/2,350+45/2-Cos(WrapAngle(a))*45/2,430+45/2-Sin(WrapAngle(a))*45/2
	Color 0,100,255
	Line 350+45/2+Cos(WrapAngle(a-90))*15,430+45/2+Sin(WrapAngle(a-90))*15,350+45/2+Cos(WrapAngle(a-90))*10,430+45/2+Sin(WrapAngle(a-90))*10
	//oikea 
	Color 255,255,255
	Circle 405,430,45,0 
	Color 0,200,0
	Dot 405+45/2,430+45/2
	Line 405+45/2,430+45/2,405+45/2-Cos(WrapAngle(a2))*18,430+45/2+Sin(WrapAngle(a2))*18
	// namiskat
	Box 355,485,TextWidth("Autpilot")+15,24
	Color 0,100,0
	Box 355,485,TextWidth("Autpilot")+15,24,0
	Color 255,255,255
	Text 358,491,"Autopilot"
	If auto=1 Then 
		For i=10 To 0 Step -1
			Color 80+i*14,20+i,20+i
			Circle 440+i/2,492+i/2,10-i,0
		Next i
	Else 
		For i=10 To 0 Step -1
			Color 40+i*2,20+i,20+i
			Circle 440+i/2,492+i/2,10-i,0
		Next i
	EndIf 
Return 

updatescreens:
	DrawToImage screen1
		Color 1,1,1
		Box 0,0,160,120
		Color 255,0,0
		Box 0,0,TextWidth("Speed: ")+spe*10,14,1
		Color 255,255,255
		Box 0,0,TextWidth("Speed: ")+spe*10,14,0
		Text 0,0,"Speed: "+Int(spe)+"ly/kf"
		Text 0,-14,"Travelled: "+Int(-camz)+"ly"
		Gosub metapallot
		Color 255,255,255
		Line 0,26,160,26
	DrawToScreen 
	DrawToImage screen2
		Color 1,1,1
		Box 0,0,160,120
		For x=0 To 160 Step sp
			For y=0 To 120 Step sp
				c=Rand(1)
				Color c*255,c*255,c*255
				Box x,y,sp,sp,1
			Next y
		Next x
		Color 255,255,255
	DrawToScreen 
Return 
		
metapallot:
	For b.P=Each P
		b\x=CurveValue(b\kx,b\x,20)
		b\y=CurveValue(b\ky,b\y,20)
		If b\x>160 Then b\x=160
		If b\y>180 Then b\y=180
		If b\x<0 Then b\x=0
		If b\y<26 Then b\y=26
	Next b
	Lock 
	For x=0 To 160 Step sx
		For y=26 To 120 Step sy
			c=0
			For b.P=Each P
				c=c+255*b\s/(Distance(x,y,b\x,b\y)+1)
			Next b
			c=Min(255,c)
			For x1=x To x+sx
				For y1=y To y+sy
					PutPixel2 x1,y1,(c Shl 16 + c Shl 8)
				Next y1
			Next x1
		Next y
	Next x
	Unlock 
	If Timer()>ti2+2000 Then 
		For b.P=Each P
			b\kx=Rand(160)
			b\ky=Rand(26,120)
		Next b
		ti2=Timer()
	EndIf 
Return 

drawmouse:
	Color 1,1,1
	For i=1 To 12
		Line MouseX()+i,MouseY()+i/2,MouseX()+i/2,MouseY()+i
	Next i
	Color 255,255,255
	Line MouseX(),MouseY(),MouseX()+6,MouseY()+12
	Line MouseX(),MouseY(),MouseX()+12,MouseY()+6
	Line MouseX()+6,MouseY()+12,MouseX()+12,MouseY()+6
Return 
- - - -

User avatar
ukkeli
Active Member
Posts: 123
Joined: Thu Jan 28, 2010 10:01 pm

Re: Efektit

Post by ukkeli » Fri Feb 25, 2011 4:52 pm

Wingman wrote:Teinpä tässä aikani kuluksi tämmöisen avaruusmatkan, yhdistin sitten vielä metapallot pieneen näyttöön. Oikeanpuoleiseen näyttöön en keksinyt oikein mitään, saatan heittää sinne jotain.
pitemmittä puheitta:

Code: Select all

Mieletön koodin pätkä... 
Tosi hieno! Avaruustausta oli loistava... ...ja ilman graffaa toteutettu ohjaamo!
Tuosta sitten 3D avaruus peliä kehittämään...
...

User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: Efektit

Post by Ilmuri » Sat Feb 26, 2011 7:22 am

Kovasti pukkaa mavia ohjaamon piirryttyä.
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic

User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Efektit

Post by Wingman » Sat Feb 26, 2011 10:56 am

Kyllä tuosta jonkun pelin kehittelen, joten mavit etsin pois sieltä..
- - - -

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Efektit

Post by MaGetzUb » Sat Feb 26, 2011 7:57 pm

Mavia voi heitellä kenties PutPixel, kun yritetään laittaa pixeliä ruudun ulkopuolelle. :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
Koodari
Active Member
Posts: 201
Joined: Wed Nov 18, 2009 10:01 pm
Contact:

Re: Efektit

Post by Koodari » Sun Feb 27, 2011 1:29 am

Execute wrote:Noh... Kehittelin jotain kivaa aikani kuluksi ja keksin tällaisen jutun:

Joo kämy on...

Code: Select all

SCREEN 800,800

Color cbyellow

Repeat 
kohta = Rand(0,1000)
kohta2= Rand(0,1000)
If musta = 0 Then 
valkonen = valkonen+1
EndIf 
If musta = 1 Then 
mustuus = mustuus+1
EndIf 
Line kohta,kohta2,500,500
DrawScreen OFF 
If valkonen = 1000 Then 
musta = 1
valkonen = 0
Color cbblack
EndIf 
If mustuus = 1500 Then 
musta = 0
Color cbyellow
EndIf 
Forever 
Auringon nousu... Auringon pimennys... Nousu... ja eteenpäin... Kommenttia saa antaa! :mrgreen:
Öh.. Sisentäminen tekee koodista kummasti hienompaa ja mukavampaa luettavaa.
Alussa oli asiakas, projekti ja Koodari...

Code: Select all

[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
[/size]

User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Efektit

Post by Wingman » Sun Feb 27, 2011 11:26 pm

MaGetzUb wrote:Mavia voi heitellä kenties PutPixel, kun yritetään laittaa pixeliä ruudun ulkopuolelle. :)
hmm.. Pitänee rajoittaa ettei piirrä sinne. Onko sama ongelma piirtokomentojen kanssa?
- - - -

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Efektit

Post by axu » Mon Feb 28, 2011 4:14 pm

Wingman wrote:
MaGetzUb wrote:Mavia voi heitellä kenties PutPixel, kun yritetään laittaa pixeliä ruudun ulkopuolelle. :)
hmm.. Pitänee rajoittaa ettei piirrä sinne. Onko sama ongelma piirtokomentojen kanssa?
Ei. Ainoastaa putpixelit ja getpixelit heittää mavia jos luetaan ruudun/kuvan ulkopuolelta. Katsoin tuon efektisi ilman tuota putpixeliä(vasen näyttö oli tyhjä tämän takia?), hieno oli.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Efektit

Post by Wingman » Mon Feb 28, 2011 8:23 pm

axu wrote:
Wingman wrote:
MaGetzUb wrote:Mavia voi heitellä kenties PutPixel, kun yritetään laittaa pixeliä ruudun ulkopuolelle. :)
hmm.. Pitänee rajoittaa ettei piirrä sinne. Onko sama ongelma piirtokomentojen kanssa?
Ei. Ainoastaa putpixelit ja getpixelit heittää mavia jos luetaan ruudun/kuvan ulkopuolelta. Katsoin tuon efektisi ilman tuota putpixeliä(vasen näyttö oli tyhjä tämän takia?), hieno oli.
ok, eli metapallot ne siellä sitä mavia aiheuttavat... pitääpä tarkistaa koordit joihin se niitä pikseleitä heittää :D
Edit: pistin metapallojen koordinaatit kuvan sisälle :D oli n.20px liian paljon x-koordinaatilla tilaa

Code: Select all

SCREEN 800,600,0,1
SCREEN 800,600,0,2
Const sp=4
Const sx=10
Const sy=10
c=0
Type STAR
	Field x As Float
	Field y As Float 
	Field z As Float 
	Field s As Float 
	Field a As Float 
	Field e
EndType 
Type P
	Field x As Float 
	Field y As Float 
	Field kx As Float 
	Field ky As Float 
	Field s
EndType
For i=1 To 3
	b.P=New(P)
	b\x=Rand(160)
	b\y=Rand(26,120)
	b\kx=Rand(160)
	b\ky=Rand(26,120)
	b\s=10'Rand(12,25)
Next i
screen1=MakeImage(160,120)
screen2=MakeImage(160,120)
alkuz=1
maxz=200
camz#=0
camx#=0
camy#=0
For i=0 To 2000
	t.STAR=New(STAR)
	t\x=Rand(-25000,25000)
	t\y=Rand(-25000,25000)
	t\z=Rand(1,maxz)
	t\a=GetAngle(t\x,t\y,0,0)
Next i
auto=1
spe#=0
an#=0
a#=0
ca#=0
a2#=0
ShowMouse OFF 
Repeat 	
	a2-5
	camz=camz-spe
	a=CurveValue(an,a,30)
	If auto=1 Then 
		ca=ca+5
		camx=Cos(ca)*100
		camy=Sin(ca)*100
		If Timer()>ti+2000 Then 
			spe=Rand(3,8)
			an=Rand(360)
			ti=Timer()
		EndIf
		spe=CurveValue(1,spe,30)
	Else 
		spe=Int(spe+(UpKey()-DownKey()))
		camx=400-MouseX()'Cos(ca)*100
		camy=300-MouseY()'Sin(ca)*100
		an=an+(LeftKey()-RightKey())*6
	EndIf 
	If spe>10 Then spe=10
	If spe<-5 Then spe=-5
	For t.STAR=Each STAR
		dx=400+camx+(Cos(t\a)*t\e)/(t\z+camz)
		dy=300+camy+(Sin(t\a)*t\e)/(t\z+camz)
		t\a=a+GetAngle(t\x,t\y,camx,camy)
		t\e=Distance(t\x,t\y,camx,camy)
		t\s=(200-(t\z+camz))/50
		If (t\z+camz)<0 Then t\z+maxz
		If (t\z+camz)>maxz Then t\z-maxz
		If t\s<1 Then t\s=1
		r= maxz-(t\z+camz)
		g= maxz-(t\z+camz)
		b= maxz-(t\z+camz)
		'Color r,g,b
		Box dx,dy,t\s,t\s,1
		Color 176,176,0
		Box dx,dy,t\s,t\s,0
	Next t
	Gosub drawship
	Gosub updatescreens
	Text 0,0,FPS()+ " "+MouseX()+" "+MouseY()
	Dot MouseX(),MouseY()
	If MouseX()>355 And MouseX()<355+(TextWidth("Autpilot")+15) And MouseY()>485 And MouseY()<499 Then 	
		If MouseHit(1) Then 
			auto=-auto
		EndIf 
	EndIf 
	Gosub drawmouse
	DrawScreen 
Forever 
	
drawship:
	Color 1,1,1
	//alaosa 
	Box 0,390,800,210,1
	For i=0 To 20
		Line 150,390,0,375+i
		Line 650,390,800,375+i
	Next i
	//yläosa
	Box 0,0,800,10,1
	For i=0 To 40
		Line 300,10,100,50-i
		Line 700,50-i,500,10
	Next i
	Box 0,10,100,40
	Box 700,10,100,40 
	// sivupaneelit
	For i=0 To 25	
		Line 175-i,390,100-i,50
		Line 625+i,390,700+i,50
	Next i
	Color 255,255,255
	//alaosa 
	Line 175,390,625,390
	Line 150,400,0,450
	Line 150,400,650,400
	Line 150,390,0,375
	Line 650,390,800,375
	Line 650,400,800,450
	//vasen sivupaneeli
	Line 175,390,100,50
	Line 150,390,75,50
	//oikea sivupaneeli
	Line 625,390,700,50
	Line 650,390,725,50
	//yläosa
	Line 500,10,300,10
	Line 100,50,300,10
	Line 700,50,500,10
	Line 725,50,800,50
	Line 75,50,0,50
	// kulmat
	Line 150,400,100,600
	Line 650,400,700,600
	// näytöt
	Box 179,429,162,122,0
	Box 800-181-160,429,162,122,0
	DrawImage screen1,180,430
	DrawImage screen2,800-180-160,430
	// mittarit
	//vasen 
	Circle 350,430,45,0 
	Dot 350+45/2,430+45/2
	Color 0,200,0
	Line 350+45/2,430+45/2,350+45/2+Cos(WrapAngle(a))*45/2,430+45/2+Sin(WrapAngle(a))*45/2
	Line 350+45/2,430+45/2,350+45/2-Cos(WrapAngle(a))*45/2,430+45/2-Sin(WrapAngle(a))*45/2
	Color 0,100,255
	Line 350+45/2+Cos(WrapAngle(a-90))*15,430+45/2+Sin(WrapAngle(a-90))*15,350+45/2+Cos(WrapAngle(a-90))*10,430+45/2+Sin(WrapAngle(a-90))*10
	//oikea 
	Color 255,255,255
	Circle 405,430,45,0 
	Color 0,200,0
	Dot 405+45/2,430+45/2
	Line 405+45/2,430+45/2,405+45/2-Cos(WrapAngle(a2))*18,430+45/2+Sin(WrapAngle(a2))*18
	// namiskat
	Box 355,485,TextWidth("Autpilot")+15,24
	Color 0,100,0
	Box 355,485,TextWidth("Autpilot")+15,24,0
	Color 255,255,255
	Text 358,491,"Autopilot"
	If auto=1 Then 
		For i=10 To 0 Step -1
			Color 80+i*14,20+i,20+i
			Circle 440+i/2,492+i/2,10-i,0
		Next i
	Else 
		For i=10 To 0 Step -1
			Color 40+i*2,20+i,20+i
			Circle 440+i/2,492+i/2,10-i,0
		Next i
	EndIf 
Return 

updatescreens:
	DrawToImage screen1
		Color 1,1,1
		Box 0,0,160,120
		Color 255,0,0
		Box 0,0,TextWidth("Speed: ")+spe*10,14,1
		Color 255,255,255
		Box 0,0,TextWidth("Speed: ")+spe*10,14,0
		Text 0,0,"Speed: "+Int(spe)+"ly/kf"
		Text 0,-14,"Travelled: "+Int(-camz)+"ly"
		Gosub metapallot
		Color 255,255,255
		Line 0,26,160,26
	DrawToScreen 
	DrawToImage screen2
		Color 1,1,1
		Box 0,0,160,120
		'For x=0 To 160 Step sp
		'	For y=0 To 120 Step sp
		'		c=Rand(1)
		'		Color c*255,c*255,c*255
		'		Box x,y,sp,sp,1
		'	Next y
		'Next x
		Color 255,255,255
	DrawToScreen 
Return 
		
metapallot:
	For b.P=Each P
		b\x=CurveValue(b\kx,b\x,20)
		b\y=CurveValue(b\ky,b\y,20)
		If b\x>160 Then b\x=160
		If b\y>180 Then b\y=180
		If b\x<0 Then b\x=0
		If b\y<26 Then b\y=26
	Next b
	Lock 
	For x=1 To 159 Step sx
		For y=26 To 119 Step sy
			c=0
			For b.P=Each P
				c=c+255*b\s/(Distance(x,y,b\x,b\y)+1)
			Next b
			c=Min(255,c)
			For x1=x To x+sx
				For y1=y To y+sy
					PutPixel2 x1,y1,(c Shl 16 + c Shl 8)
				Next y1
			Next x1
		Next y
	Next x
	Unlock 
	If Timer()>ti2+2000 Then 
		For b.P=Each P
			b\kx=Rand(160)
			b\ky=Rand(26,120)
		Next b
		ti2=Timer()
	EndIf 
Return 

drawmouse:
	Color 1,1,1
	For i=1 To 12
		Line MouseX()+i,MouseY()+i/2,MouseX()+i/2,MouseY()+i
	Next i
	Color 255,255,255
	Line MouseX(),MouseY(),MouseX()+6,MouseY()+12
	Line MouseX(),MouseY(),MouseX()+12,MouseY()+6
	Line MouseX()+6,MouseY()+12,MouseX()+12,MouseY()+6
Return 
- - - -

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: Efektit

Post by Misthema » Wed Mar 09, 2011 9:03 pm

Execute wrote:Noh... Kehittelin jotain kivaa aikani kuluksi ja keksin tällaisen jutun:

Joo kämy on...

Code: Select all

...
Auringon nousu... Auringon pimennys... Nousu... ja eteenpäin... Kommenttia saa antaa! :mrgreen:
Pakkohan se oli jotain kikkailla. By the way, epileptics, be aware!

Code: Select all

SCREEN 800,800

'Kuinka monen framen välein ruutu piirretään
Const UpdateScreen=10
_update=0
_update2=0

Repeat 

    'Satunnaiset luvut 0 ja 360 väliltä
    ' viivan toiselle pisteelle.
    kohta = Rand(360)
    kohta2= Rand(360)
    
    If musta = 0 Then 
        valkonen = valkonen+1
    Else
        mustuus = mustuus+1
    EndIf 

    ' Jos muuttuja "a" ylittää 360.0 rajan,
    '  palautetaan se takaisin nollaan (0)
    If a#>360.0 Then a=0.0
    a=a+0.1 'Lisätään muuttujaan 0.1 liikkeen saamisesksi.
    
    'Piirretään viiva
    Line 500+Cos(kohta)*Rand(500),500+Sin(kohta2)*Rand(500),500+Cos(a)*100,500+Sin(a)*100
    
    'Jotain ruudunpäivityskikkailuja:
    'Wax on...
    If _update2 = UpdateScreen Then
        DrawScreen ON
        _update2=0
    EndIf
    
    'Wax off...
    If _update = UpdateScreen Then
        DrawScreen OFF
        _update=0
        _update2=_update2+1
    EndIf
    
    'Jotain kytkimiä
    If valkonen >= 100 Then 
        musta = 1
        valkonen = 0
        Color 127+Sin(a)*128,200+Sin(a)*55,127-Cos(a)*128
    EndIf 

    If mustuus >= 150 Then 
        musta = 0
        mustuus = 0
        Color 0,0,0
    EndIf

    'Wax on...off...
    _update=_update+1
Forever

User avatar
Execute
Active Member
Posts: 110
Joined: Fri Feb 11, 2011 7:41 pm

Efektit

Post by Execute » Sun Mar 20, 2011 8:09 am

Heko,heko... Mahtava vapaamuokkaus misthema... ...Tai oikeastan aika paljon parempi kuin omani.
SpaceCraft on kokopitkä peli! Nyt ladattavissa! Tsekkaa!

User avatar
Execute
Active Member
Posts: 110
Joined: Fri Feb 11, 2011 7:41 pm

Efektit

Post by Execute » Wed Mar 23, 2011 6:35 pm

Tässä teille timantti:

Code: Select all

Repeat   
colo = colo+1
colori = colori+10
holo = holo+100
Color +colo,colori,holo
Line 0,0, 263,100
Line 300,300, 263,100
Line 0,0,240,116
Line 300,300,240,116
Line 0,0,217,139
Line 300,300,217,139
Line 0,0,191,163
Line 300,300,191,163
Line 0,0,152,176
Line 300,300,152,176
Line 0,0,115,195
Line 300,300,115,195
DrawScreen
Forever 
Ja tässä liikkuva 3d ankan nokka, jonka kehittelin timantista: (aika köyhästi tehty...)

Code: Select all

koh = 300
Repeat   
Color cborange
Line +koh,0, 263,100
Line +koh,300, 263,100
Line +koh,0,240,116
Line +koh,300,240,116
Line +koh,0,217,139
Line +koh,300,217,139
Line +koh,0,191,163
Line +koh,300,191,163
Line +koh,0,152,176
Line +koh,300,152,176
Line +koh,0,115,195
Line +koh,300,115,195
Line +koh, +koh, +koh, +koh
If suunta = 0 Then 
koh = koh+1
Else 
koh = koh-1
EndIf 
If koh = 400 Then 
suunta = 1
EndIf 
If koh = 200 Then 
suunta = 0
EndIf 
DrawScreen
Forever 
SpaceCraft on kokopitkä peli! Nyt ladattavissa! Tsekkaa!

Post Reply