81 lines
2 KiB
Text
81 lines
2 KiB
Text
-- Lesson 29: Shipping It. The finished script, exactly as the lesson ends.
|
|
|
|
dofile("Singe/Framework.singe")
|
|
|
|
local GAME_NAME = "Rock Dodger"
|
|
local GAME_VERSION = "1.0.2"
|
|
|
|
local CREDITS = {
|
|
"Written and drawn by <your name here>",
|
|
"",
|
|
"Music \"Night Drive\" by A. Composer",
|
|
" Creative Commons BY 4.0",
|
|
" example.org/night-drive",
|
|
"",
|
|
"Explosion freesound.org user \"thud\"",
|
|
" Creative Commons CC0",
|
|
"",
|
|
"Font FreeSansBold",
|
|
" GPL with the font exception",
|
|
"",
|
|
"Engine Singe " .. SINGE_VERSION_STRING,
|
|
" GPL version 3",
|
|
" See Singe/LICENSES for the",
|
|
" libraries Singe is built on.",
|
|
"",
|
|
"Thank you for playing.",
|
|
}
|
|
|
|
local FIRST_ROW = 4
|
|
local ROWS = 10
|
|
|
|
local scroll = 0
|
|
|
|
|
|
local function scrollBy(lines)
|
|
local most = #CREDITS - ROWS
|
|
|
|
if most < 0 then
|
|
most = 0
|
|
end
|
|
scroll = scroll + lines
|
|
if scroll < 0 then
|
|
scroll = 0
|
|
end
|
|
if scroll > most then
|
|
scroll = most
|
|
end
|
|
end
|
|
|
|
|
|
function onInputPressed(what)
|
|
if what == SWITCH_UP then
|
|
scrollBy(-1)
|
|
elseif what == SWITCH_DOWN then
|
|
scrollBy(1)
|
|
elseif what == SWITCH_BUTTON1 then
|
|
scroll = 0
|
|
end
|
|
end
|
|
|
|
|
|
function onOverlayUpdate()
|
|
local line = nil
|
|
|
|
overlayClear()
|
|
overlayPrint(2, 0, GAME_NAME .. " version " .. GAME_VERSION)
|
|
overlayPrint(2, 1, "Singe " .. SINGE_VERSION_STRING .. " id " .. (singeGetGameId() or "none"))
|
|
|
|
for row = 0, ROWS - 1 do
|
|
line = CREDITS[scroll + row + 1]
|
|
if line then
|
|
overlayPrint(2, FIRST_ROW + row, line)
|
|
end
|
|
end
|
|
|
|
overlayPrint(2, FIRST_ROW + ROWS + 1, "Saves go to:")
|
|
overlayPrint(2, FIRST_ROW + ROWS + 2, singeGetDataPath())
|
|
overlayPrint(2, 17, "Up and down scroll. Button 1 goes back to the top.")
|
|
|
|
return OVERLAY_UPDATED
|
|
end
|