82 lines
1.7 KiB
Text
82 lines
1.7 KiB
Text
-- Lesson 3: Making Decisions
|
|
|
|
BOX_SIZE = 20
|
|
BOX_SPEED = 2
|
|
|
|
width = overlayGetWidth()
|
|
height = overlayGetHeight()
|
|
maxX = width - BOX_SIZE - 1
|
|
maxY = height - BOX_SIZE - 1
|
|
|
|
boxX = width // 2
|
|
boxY = height // 2
|
|
|
|
movingLeft = false
|
|
movingRight = false
|
|
movingUp = false
|
|
movingDown = false
|
|
|
|
|
|
function onInputPressed(what)
|
|
if what == SWITCH_LEFT then
|
|
movingLeft = true
|
|
elseif what == SWITCH_RIGHT then
|
|
movingRight = true
|
|
elseif what == SWITCH_UP then
|
|
movingUp = true
|
|
elseif what == SWITCH_DOWN then
|
|
movingDown = true
|
|
end
|
|
end
|
|
|
|
|
|
function onInputReleased(what)
|
|
if what == SWITCH_LEFT then
|
|
movingLeft = false
|
|
elseif what == SWITCH_RIGHT then
|
|
movingRight = false
|
|
elseif what == SWITCH_UP then
|
|
movingUp = false
|
|
elseif what == SWITCH_DOWN then
|
|
movingDown = false
|
|
end
|
|
end
|
|
|
|
|
|
function onOverlayUpdate()
|
|
if movingLeft and not movingRight then
|
|
boxX = boxX - BOX_SPEED
|
|
elseif movingRight and not movingLeft then
|
|
boxX = boxX + BOX_SPEED
|
|
end
|
|
|
|
if movingUp and not movingDown then
|
|
boxY = boxY - BOX_SPEED
|
|
elseif movingDown and not movingUp then
|
|
boxY = boxY + BOX_SPEED
|
|
end
|
|
|
|
if boxX < 0 then
|
|
boxX = 0
|
|
elseif boxX > maxX then
|
|
boxX = maxX
|
|
end
|
|
|
|
if boxY < 0 then
|
|
boxY = 0
|
|
elseif boxY > maxY then
|
|
boxY = maxY
|
|
end
|
|
|
|
overlayClear()
|
|
|
|
if movingLeft or movingRight or movingUp or movingDown then
|
|
colorForeground(255, 220, 0)
|
|
else
|
|
colorForeground(80, 160, 255)
|
|
end
|
|
|
|
overlayBox(boxX, boxY, boxX + BOX_SIZE, boxY + BOX_SIZE)
|
|
overlayPrint(0, 0, "x " .. boxX .. " y " .. boxY)
|
|
return OVERLAY_UPDATED
|
|
end
|