moonbus: docking telemetry

This commit is contained in:
Dejvino 2024-08-09 08:54:52 +02:00
parent 160e3647e8
commit 2446f5d659

View File

@ -11,6 +11,8 @@ plr_speed={x=0.5,y=0}
plr_static=false plr_static=false
plr_engine=-1 plr_engine=-1
telem_spd={}
gravity=0.02 gravity=0.02
engine_power=0.2 engine_power=0.2
land_speed_limit=1 land_speed_limit=1
@ -59,7 +61,6 @@ function _update()
local pmaps=mget(p.x,maph-p.y) local pmaps=mget(p.x,maph-p.y)
local target=fget(pmaps,7) local target=fget(pmaps,7)
local solid=fget(pmaps,0) local solid=fget(pmaps,0)
add(debug_points,p)
if plr_win != true and target and dist(plr_speed) < land_speed_limit and p.y < pc.y then if plr_win != true and target and dist(plr_speed) < land_speed_limit and p.y < pc.y then
plr_win=true plr_win=true
plr_speed={x=0,y=0} plr_speed={x=0,y=0}
@ -81,6 +82,10 @@ function _update()
end end
end end
if plr_alive then
telem_spd=mul(plr_speed,1)
end
cam={x=plr_pos.x*8-60, y=0} cam={x=plr_pos.x*8-60, y=0}
camera(cam.x,cam.y) camera(cam.x,cam.y)
end end
@ -110,8 +115,20 @@ function _draw()
pset(px,py,8) pset(px,py,8)
end end
local p=plr_pos -- telemetry
print(p.x.." "..p.y, cam.x, cam.y) local cr=10
local cp={x=cam.x+127-cr,y=cam.y+cr}
local spd={x=limit(telem_spd.x,1),y=limit(telem_spd.y,1)}
circ(cp.x,cp.y,cr,3)
line(cp.x,cp.y,cp.x+spd.x*cr,cp.y,11)
line(cp.x,cp.y,cp.x,cp.y-spd.y*cr,11)
circ(cp.x+spd.x*cr,cp.y-spd.y*cr,1,dist(telem_spd)<land_speed_limit and 3 or 8)
if not plr_alive then
line(cp.x+(-0.3*cr),cp.y+(-0.6*cr),cp.x,cp.y,5)
line(cp.x+(-0.7*cr),cp.y+(-0.3*cr),cp.x,cp.y,5)
line(cp.x,cp.y,cp.x+0.6*cr,cp.y+0.3*cr,5)
line(cp.x+0.6*cr,cp.y+0.3*cr,cp.x+0.2*cr,cp.y+0.8*cr,5)
end
end end
function to_scrn(p) function to_scrn(p)
@ -168,6 +185,12 @@ function unit(p,u)
if p.y<0 then y=-u end if p.y<0 then y=-u end
return {x=x,y=y} return {x=x,y=y}
end end
function limit(val,lim)
if (abs(val) > lim) then
return val*lim/abs(val)
end
return val
end
__gfx__ __gfx__
000000000000000000000000000000000000aa00000000000000b000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000aa00000000000000b000000000000000000000000000000000000000000000000000000000000000000000000000
00a9a90000a9a90000a9a90000a9a90000a9000000a9a9000000b000000000000000000000000000000000000000000000000000000000000000000000000000 00a9a90000a9a90000a9a90000a9a90000a9000000a9a9000000b000000000000000000000000000000000000000000000000000000000000000000000000000
@ -215,7 +238,7 @@ __map__
1010101010101010141010101010101010101010101010101013110000111210101010101010101010101013110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1010101010101010141010101010101010101010101010101013110000111210101010101010101010101013110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1010101010101010101010101010101010101010101010101010101414101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1010101010101010101010101010101010101010101010101010101414101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__ __sfx__
000400003665038650396503965039650396503765035650316502f6502c6502965027650226501d65019650166501465012650116500e6500c6500a650076500465001650006500000000000000000000000000 000400002c2501f250132503365036650396503765035650316502f6502c650246501d6501b6501b65019650126500e65010650116500c6500d6500e6500c6500a65007650016500065000000000000000000000
010800000a4500a4500a4503d0502d0503d0502645026050264503363021630196401065003650006400063000620006100461000000000000000000000000000000000000000000000000000000000000000000 010800000a4500a4500a4503d0502d0503d0502645026050264503363021630196401065003650006400063000620006100461000000000000000000000000000000000000000000000000000000000000000000
0010002030650336502f6502a6502a6502b6502c6502e650306503165033650346502f6502b6502c6502d6502e6502a65029650296502b6502d650306502f6502d6502d6502e6502f650306502c6502e6502f650 0010002030650336502f6502a6502a6502b6502c6502e650306503165033650346502f6502b6502c6502d6502e6502a65029650296502b6502d650306502f6502d6502d6502e6502f650306502c6502e6502f650
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000