Defuser
#include <futurocube>
new len = 5
new time_step = 500
new bomb
new cursor
new defuse
new icon[]=[ICON_MAGIC1, ICON_MAGIC2, 0, 0, RED, BLUE, RED, BLUE, RED, BLUE, GREEN, GREEN, GREEN,
''INSTRM2'', ''UFO'']
new missed_flag = 0
draw()
{
ClearCanvas()
if (missed_flag)
{
SetColor(RED)
DrawCube()
missed_flag--
}
SetColor(cORANGE)
DrawCross(bomb, len)
SetRgbColor(0xFF, 0xFF, 0xFF)
DrawPoint(bomb)
if (_i(bomb) == _i(cursor)) SetColor(cRED)
else SetColor(cMAGENTA)
DrawPoint(cursor)
if (GetTimer(1))
{
SetColor(cPURPLE)
DrawSquare(defuse)
}
PrintCanvas()
}
new score=0
over()
{
new i
SetRgbColor(255, 255, 255)
Play("snd1")
for (i=0; i<25; i++)
{
Delay(41)
ClearCanvas()
DrawCube()
PrintCanvas()
Delay(41)
ClearCanvas()
PrintCanvas()
}
Quiet()
Score(score)
}
main()
{
new good = 0
new missed = 0
ICON(icon)
RegMotion(TAP_GENERIC)
bomb = GetRnd(54)
SetTimer(0, time_step)
new warn=0
for(;;)
{
Sleep()
if (GetAppMsecs() > 40000) warn = 1
if (GetAppMsecs() > 50000) over()
cursor = GetCursor()
if (!GetTimer(0))
{
if (len > 0) len--
else
{
Play("kap")
missed_flag = 10
PrintCanvas()
bomb = GetRnd(54)
len = 5
if (time_step < 500) time_step += 20
good = 0
missed++
}
SetTimer(0, time_step)
}
if (warn && GetTimer(2) == 0)
{
Play("bell1");
SetTimer(2,1000);
}
if (Motion())
{
if (_i(cursor) == _i(bomb))
{
Play("vzum")
SetTimer(1, 500)
defuse = bomb
bomb = GetRnd(54)
len = 5
good++
score++
if (missed == 0 || good >= 3)
{
if (time_step > 150) time_step -= 20
good = 0
}
SetTimer(0, time_step)
}
}
AckMotion
draw()
}
}Last updated