@ мннЭмннЭРнн мЭРнн мЭмЭм РЭР @DD433CDD3C4C3C4CDC43CC43CD@DDююрэноэоэооэююноэоэнэоэнэрюю@DDD4333DD434C434CD343D343CD433CDDD333C333C333CD33DC33DC33CC43DЙЋЙЋ ™ЙЋЊ™ЙЋЊ™ЙЋЊЙЋ ЙЋА ююЮЬ.""ь.џ/ь.//т."/т."/т.""тююююDDD@3334ѓџџ4џDD4ODD4OCC4OCC4O3CDDD333џџ?CDDџCDDєC43єC44єC4CєC333УCCCУCC3УCDCУCCCУ333УCDDФ333У@DD@@@DD@@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4CDD33DD4CDDDDDDDDDTUUEeffVUUfVeVfVeVUVefVVefVUTUUEDD3A1111311313A433C433D43C443C343434C334433@DDD34CD4CDCD33CC33C3D3C3C4C33DDDDDмннЭмннЭмннЭмннЭмннЭмннЭмннЭмннЭЬЬЬЬlffЦЬЬЬЬlЦlЦlЦlЦlffЦlffЦЬЬЬЬ4OCC4OCC4OCC4ODD4ODD4ѓџџ@333DDD44єC44єC44єCDDєCDDџCџџ?C333DDDCD0CD3CDD3CDD3CDD0CDCD@"""""" """"" "   """" " `ff```ff```ff```ff``ff`ff`````ff`ff`````f``ff`````ff`ff```ff``ff`ff```ff```ff````f``ff`f```f```f``ff````ff``````````````````f`````ff````````ff`ff```````````ff`````ff````ff```````ff`ff```ff```ff```ff```ff```ff`ff`ff```ff`f``ff```````````ff```````ff`````````````ff`ff```ffff````ff```````````ff``````ff``````ff`ffffffff```f``ff`ff`ff`ff````ff`ff``f``ff`ff```ff`ffffffff`ff```ff``ff`ff```ff`````````````````````````````ff`ff``ff````````````ff``ff`ff```ff`ff`рюююонннююоноэоноэюнонюнонэюоннэюююнннэнннэнннэнннюнннюнннэнннюоннэоннюонэоонэнонннонннооннрюююннэюоэюэюннээннэнюнэнэоэннююююю]   >```````` `` `` `` `````` `` `@ @@ @  @@@@ Р@@ @@Р @@@ @@ @@ @ @Р @@@ @@ @@  @@ @ @`€ Рр˜/Р?UUUUPUPUUPPUPUPUPUPU`fff`f`ff``f`fPUPPPPPPPPUPUPUPUPUPf``ff``ff`UPPPPPPUUUUUUf``ff`ffffPUPPPPPUPPUUUUUf``````ffPUUUPPPUUPPUPUPUPUPUfff```ff``f`fрююЬ р""ТЬ Ь3333000303330303ЬЬЬ Ь ЬЬ ЬЬЬ Ь Ь ЬЬЬЬ РЬрђџТР ЬР ЬРЬ0000000303033030ЬЬЬ ЬЬЬР ЬР ЬРЬРР ЬЬрђђ"Ь РЬРЬ0300000333333ЬЬЬЬ ЬЬЬРЬРРЬРЬ РЬЬЬЬЬр"ђ"Ь Р РЬ00000330033033ЬЬРЬЬЬЬР РР РЬРЬР Ь р"ђ"Р ЬЬ РЬ 3330003300303330303ЬЬ ЬЬ ЬЬ ЬЬ ЬЬ Ь РЬ ЬЬ ЬЬРЬр"""рюююЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬЬ""""""""""""""""""""""""""""""""""""""""""""""""""""""""""мЭннн,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""мЭннн,""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""мЭнннLDDD""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Тннн<333$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Тннн<333$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""Тннн<333$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ТнЬннн= 500 then sfx(2, 120, 10) elseif item.v >= 250 then sfx(0, 144, 8) else sfx(1, 96, 10) end state = "pull" break end end end function drawBackground() rect(0, 24, 240, 40, 15) rect(0, 64, 240, 40, 1) rect(0, 104, 240, 32, 0) end function drawItems() for _, item in ipairs(items) do if caught == item then item.x = startX + math.cos(angle) * length item.y = startY + math.sin(angle) * length end if item.x > 0 then spr(item.id, item.x - (item.w*4), item.y - (item.h*4), 0, 1, 0, 0, item.w, item.h) end end end function drawRope(sx, sy, ang, len) if len > 0 then for i = 1, len, 6 do local px = sx + math.cos(ang) * i local py = sy + math.sin(ang) * i spr(22, px - 4, py - 4, 0) end end local tipX, tipY = sx + math.cos(ang) * len, sy + math.sin(ang) * len -- SADECE KLAVYE KONTROLU (UP TUSU) local is_bombing = btn(0) if state == "pull" and is_bombing and bombs > 0 then spr(7, tipX - 4, tipY - 4, 0) else spr(1, tipX - 4, tipY - 4, 0) end end function drawHUD() rect(0, 0, 240, 24, 0) line(0, 24, 240, 24, 12) drawMetin("PUAN: "..pad(score, 5), 5, 5) drawMetin("HEDEF: "..pad(target_score, 5), 140, 5) drawMetin("BoLuM: "..pad(level, 3).."/256", 5, 15) drawMetin("SuRE: "..pad(math.ceil(time), 2), 172, 15) spr(7, 128, 15, 0) drawMetin(pad(bombs, 3), 138, 15) -- PAUSE DУœФžMESФА (SPR 15) - GUNCEL KONUM spr(15, 110, 5, 0) if score >= target_score and (state == "swing" or state == "pull") then if (t // 60) %2 == 0 then rect(150, 28, 80, 12, 12) drawMetin("X: SONRAKi", 150, 30) end if btnp(5) then state = "endstate"; state_timer = 0 end end end -- ============================================ -- 4. STATE FONKSIYONLARI -- ============================================ function intro() cls(0) spr(8, 58, 42, 0, 3) spr(9, 80, 42, 0, 3) spr(24, 58, 65, 0, 3) spr(25, 80, 65, 0, 3) drawMetin("HEXABEE", 108, 50) drawMetin("RETRO", 108, 70) drawMetin("FROM KAYSERi/TURKiYE", 45, 95) drawMetin("WWW.HEXABEE.COM.TR/RETRO", 20, 128) local perde_genisligi = math.max(0, 8 - (state_timer / 20)) if perde_genisligi > 0 then for y = 0, 136, 8 do rect(0, y, 240, perde_genisligi, 0) end end if btnp(4) or state_timer > 210 then if state_timer > 30 then state = "menu" state_timer = 0 end end state_timer = state_timer + 1 end function menu() cls(0) map(0) spr(28, 98, 120) spr(29, 106, 120) spr(30, 114, 120) spr(31, 122, 120) drawMetin("REKOR: "..pad(enYuksekSkor, 5), 125, 0) drawMetin("PUAN: "..pad(score, 5), 10, 0) drawMetin("2026 - HEXABEE RETRO", 40, 128) if (t // 30) % 2 == 0 then drawMetin("Z: BAsLAT", 40, 110) end drawMetin("X: YARDIM", 120, 110) calMuzik(0) if btnp(4) and state_timer > 30 then state = "swing" state_timer = 0 resetGame() music(-1) end if btnp(5) and state_timer > 30 then state = "help"; state_timer = 0 end state_timer = state_timer + 1 end function help() cls(0) drawMetin("NASIL OYNANIR?", 60, 20) spr(1, 40, 40, 0) drawMetin("Z: KANCAYI AT", 60, 40) spr(7, 40, 60, 0) drawMetin("UP: BOMBA KULLAN", 60, 60) drawMetin("256. SEViYEDE KAZAN!", 50, 80) drawMetin("X: ANA MENu!", 50, 100) if btnp(5) and state_timer > 30 then state = "menu"; state_timer = 0 end state_timer = state_timer + 1 end function swing() calMuzik(1) angle = base_angle + math.sin(t * swing_speed) * 1.2 length = 12 time = time - 1/60 if btnp(4) then state = "shoot" end drawBackground() drawItems() drawRope(startX, startY, angle, length) drawHUD() if time <= 0 then state = "endstate"; state_timer = 0 end end function shoot() time = time - 2/60 if not caught then length = length + 2.5 end checkCollision() if length > 220 then state = "pull" end drawBackground() drawItems() drawRope(startX, startY, angle, length) drawHUD() end function pull() time = time - 2/60 local p_weight = caught and caught.weight or 1 length = length - (2.2 / p_weight) -- SADECE KLAVYE KONTROLU (UP TUSU) local bomb_pressed = btnp(0) if bomb_pressed and bombs > 0 and caught then bombs = bombs - 1 sfx(3, 36, 15) caught.x = -50 caught = nil end if length <= 12 then if caught then score = score + caught.v if score > enYuksekSkor then enYuksekSkor = score pmem(0, enYuksekSkor) end caught.x = -50 end caught = nil state = "swing" end drawBackground() drawItems() drawRope(startX, startY, angle, length) drawHUD() end function endstate() if state_timer == 0 then if score < target_score then music(2, -1) su_an_calan = 2 else su_an_calan = -1 end end rectb(0, 40, 240, 60, 12) if score >= target_score then if level >= 256 then if score > enYuksekSkor then enYuksekSkor = score pmem(0, enYuksekSkor) end drawMetin("TEBRiKLER!", 80, 50) drawMetin("MADENCiLER ARASINDA GucLuSuN.", 5, 70) drawMetin("PUANIN: "..pad(enYuksekSkor, 5), 70, 60) -- EKLENME: FINAL EKRANINDA TAKILMAMAK ICIN KLAVYE KONTROLU if (btnp(4) or btnp(5)) and state_timer > 60 then resetGame(); state = "menu" end state_timer = state_timer + 1 return end drawMetin("SEViYE TAMAMLANDI!", 50, 50) drawMetin("Z/X: YENi BoLuM", 60, 65) drawMetin("+1 BOMBA KAZANDINIZ!",45, 80) if (btnp(4) or btnp(5)) and state_timer > 60 then level, bombs = level + 1, bombs + 1 target_score = level * 1000 time = 60 initItems() state, state_timer = "swing", 0 end else if score > enYuksekSkor then enYuksekSkor = score pmem(0, enYuksekSkor) end drawMetin("OYUN SONU!", 80, 50) drawMetin("Z/X: ANA MENu", 70, 80) if (btnp(4) or btnp(5)) and state_timer > 60 then resetGame() state, state_timer = "menu", 0 end end state_timer = state_timer + 1 end -- ============================================ -- 5. ANA TIC DONGUSU -- ============================================ function TIC() cls(0) -- Fare girdilerini al (MasaУМstУМ iУЇin gУМvenli tФБklama algФБlama) local mx, my, ms = mouse() local mouseTiklandi = (ms == 1 and not oncekiMouseSol) oncekiMouseSol = (ms == 1) if state == "swing" or state == "shoot" or state == "pull" then -- P tuХŸu VEYA Yeni konumdaki SPR 15 (110, 5) butonuna fare tФБklamasФБ local pauseBasildi = keyp(16) or (mouseTiklandi and mx >= 110 and mx <= 118 and my >= 5 and my <= 13) if pauseBasildi then oyunDurdu = not oyunDurdu end end if oyunDurdu then rect(50, 55, 140, 25, 0) rectb(50, 55, 140, 25, 7) drawMetin("MOLA ZAMANI", 80, 64) drawMetin("P TUsUNA BAS", 72, 85) else if _G[state] then _G[state]() end t = t + 1 end end