[ύ 3ί- 2έ-έ2έ-έ3έ- έ έ"ύ- #ί-έ#έ-έ"έ- έ έ #έ/ 2ύ-έ2ί-έ#έ- έ έ 2έ- 2έ/έ2ύ-έ2ί- έ έ 3έ- 3έ-έ3έ/έ3ύ- ί έ 3έ- #έ-έ#έ-έ3έ/ ύ ί 2έ- #έ-έ#έ-έ2έ- έί 2έ- #έ-έ#έ-έ2έ- έί 2έ- #έ-έ#έ-έ2έ- έί 2έ- #έ-έ#έ-έ2έ- έί 2έ- #έ-έ#έ-έ2έ- έί 2έ- #έ-έ#έ-έ2έ- έί 2έ- #έ-έ#έ-έ2έ- έ\300333303030030033003333030300300330033330303003003300333303030030033003333030300300330033330303003003300333303030030033003333030300300330033330303003003 >K!ΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜ ΐΜΜ ΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜ ΜΜΜΐ ΐΜΐ ΐΜΜ ΐΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΐ Μ ΐ ΐ ΐΜΜΜΜΐΐΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜ Μ ΐ ΐΜ Μ ΐΜΜΜΐΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜ ΐΜΜΐ ΐΜΜΐ ΐΜΜ ΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜΜέ #έ/ 2ύ-έ2ί-έ#έ- έ χ-- title: Crypto Invaders -- author: madoke.org -- desc: Crypto themed retro space shooter -- site: https://cryptoinvaders.org -- license: MIT License -- version: 0.1 -- script: lua function BOOT() score=0 rocket={x=0,y=65} bullets_fired={} end function render_hud() rect(0, 0, 240, 8, 12) local text = "Score: "..score local text_width = print(text, 0, -10) print(text, 240 - text_width - 2, 0, 0) -- x, y, color (0 = black) end function render_rocket() local start_id=0 local frame_count=7 local speed=150 local frame=((time()//speed)%frame_count) spr(start_id + frame, rocket.x, rocket.y) end function render_bullets() for _,p in ipairs(bullets_fired) do rect(p.x,p.y,2,2,10) end end function handle_move() if btn(0) then rocket.y=rocket.y-1 end if btn(1) then rocket.y=rocket.y+1 end if btn(2) then rocket.x=rocket.x-1 end if btn(3) then rocket.x=rocket.x+1 end -- keep rocket within screen if rocket.x<0 then rocket.x=0 end if rocket.x>231 then rocket.x=231 end if rocket.y<0 then rocket.y=0 end if rocket.y>127 then rocket.y=127 end end function handle_shoot() if btnp(4) then table.insert(bullets_fired, {x=rocket.x+4,y=rocket.y,dx=2,dy=0}) end end function update_bullets() for i=#bullets_fired,1,-1 do local b=bullets_fired[i] b.x=b.x+b.dx b.y=b.y+b.dy if b.x>240 then table.remove(bullets_fired,i) end end end function TIC() cls(0) handle_move() handle_shoot() update_bullets() render_bullets() render_rocket() render_hud() end