Thanks, Matt!
About the menu and dialog box… This is something that was challenging for me in the past, but it's gotten easier as I've started breaking it up into constituent pieces. So right now, the first thing I have is this:
class('animatedView').extends(gfx.sprite)
function animatedView:init(w, h, origin, speed, z, x, y, callback)
…
function animatedView:animateIn()
…
function animatedView:animateOut()
…
A class I can use to animate any "view" in from any side of the screen. Handy for menus, alerts, level-ending notifications, etc.
So, I show the Options view something like this:
function optionsShow()
o = animatedView(w, h, 3, 20, 910, 200, 162)
function o:draw()
menuDraw(…)
menuDraw
is a function that returns an image after it takes a table of rows structured like this:
local optionsMenuTable = {
{ name = "about", label = "About Curry Rock…", action = function() optionsAbout() end, icon = gfx.image.new('images/icon-about') },
{ typeDivider = true },
{ name = "music", label = "Music", action = function() optionsToggleMusic() end, checked = false },
{ name = "sfx", label = "Sound Effects", action = function() optionsToggleSfx() end, checked = false },
{ name = "storm", label = "Storm Visuals", action = function() optionsToggleStorm() end, checked = false },
{ typeDivider = true },
{ name = "back", label = "Back to The Game", action = function() optionsClose() end, icon = gfx.image.new('images/icon-back') }
}
The rope border is drawn as a 3-slice image, with a top, repeating middle, and bottom (which is cropped here because I preferred it that way). I'm not using the built-in 9-slice just because I'm learning to do things like this myself. The design was based on an old marina sign I saw that had that rope treatment, as was the font I made for the game. It's named after Ida Lewis, heroic lighthouse keeper. The font isn't "finished," it just does what I need it to—but it's still usable.
font Ida Lewis.zip (16.8 KB)
Re: included GIF file, I think our forum has an aggressive limit on file uploads. I'll see if we can change that!