0,]']>S}Wup8d%qy)6o;]AsVl3>==<<<<<<<<<=>>>>>??????????v??????????????>>>==<<;;<<==>??v>>>==<:987653333579:<>>>>>>>>>F3 ?ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]UUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww^wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww^wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww^wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww ^wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww^wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww]UUwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww -- title: mata mosca -- author: txgruppi -- desc: um jogo sobre matar moscas -- site: https://github.com/txgruppi -- license: MIT License -- version: 0.4 -- script: lua -- input: mouse -- saveid: com.txgruppi.tic80.matamoscas -- changelog -- 0.1 - initial version -- 0.2 - added annoying sound effects -- 0.3 - added sound effect if idle -- 0.4 - reduce score scale if its -- render size is larger than -- scree width local fx = math.random(0, 240) local fy = math.random(0, 136) local pfx = 0 local pfy = 0 local anim = {258,260,262,264} local ai = 1 local is_highscore = false local pwr = 60 local mpwr = pwr local snd = 0 local frame_count = 0 local vol = 15 local ovols = {{},{},{}} local score = 0 local score_scale = 20 function clamp(val, min, max) if val < min then return min end if val > max then return max end return val end function is_over_fly(mx, my, fx, fy) if mx-2 > fx+3 or mx+2 < fx then return false end if my-12 > fy+3 or my-3 < fy then return false end return true end function highscore(val) local curr = pmem(0) if val > curr then pmem(0,val) return true end return false end function get_sfx_part_vol(s,p) return peek4(0x100E4*2+4*p+66*2*s) end function save_sfx_vols() for i=0,29 do table.insert(ovols[3], get_sfx_part_vol(3,i)) end end function set_sfx_part_vol(s,p,v) poke4(0x100E4*2+4*p+66*2*s,v) end function set_vol(v) for i=0,29 do set_sfx_part_vol(3,i,clamp(ovols[3][i+1]+v,0,14)) end end function setup() save_sfx_vols() music(0,0,0,true) set_vol(15) TIC=loop end function draw_score(sc) local w = 0 while true do w = print(score,240,18,0,false,score_scale) if w < 240 then break end score_scale = score_scale - 1 end print(score,(240-w)/2+score_scale/2,(136-5*score_scale)/2,sc,false,score_scale) end function draw_pwr() rect(0,0,240,2,15) rect(0,0,240*(pwr/mpwr),2,6) end function loop() poke(0x3FFB,0) -- hide mouse cursor frame_count = frame_count + 1 if frame_count % 30 == 0 then vol = vol - 1 if vol < 0 then vol = 0 end set_vol(vol) end fx = clamp(fx + math.random(-2, 2), 0, 240-3) fy = clamp(fy + math.random(-2, 2), 0, 136-3) local fpn = 496 local dfx = math.abs(pfx-fx) local dfy = math.abs(pfy-fy) if dfx > dfy then if pfx > fx then fpn = 498 else fpn = 497 end else if pfy < fy then fpn = 499 end end pfx = fx pfy = fy local x, y, left = mouse() if is_over_fly(x,y,fx,fy) and left and pwr > 0 then fx = math.random(0, 240) fy = math.random(0, 136) score = score + 1 is_highscore = highscore(score) snd = 10 vol = 15 end local sn = 256 if left then pwr = pwr - 1 if pwr > 0 then sn = anim[ai] ai = ai + 1 if ai > #anim then ai = 1 end end else pwr = pwr + 1 end pwr = clamp(pwr,0,mpwr) local sc = 7 if is_highscore then sc = 2 end if snd > 0 then if snd % 3 == 0 then sfx(0) end snd = snd - 1 end cls(13) draw_score(sc) draw_pwr() spr(sn, x-8, y-16, 1, 1, 0, 0, 2, 4) spr(fpn, fx, fy, 1) end TIC=setup