ok, eli metapallot ne siellä sitä mavia aiheuttavat... pitääpä tarkistaa koordit joihin se niitä pikseleitä heittää
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