(Note: I already pushed it a few days ago, but I deleted it by accident^^)
Hello,
Just programmed a simple "Menu Manager" and I thought, it can be useful for others. :)
It presents a way to write your own Menu, moving a cursor with Arrow-Keys (Up/Down), select an Entry (X) and call a Function.
The Sourcecode is well documented.
EXAMPLE
menu={} function menu.update() --Copy from Cartridge function menu.draw() --Copy from Cartridge function _update() menu.update() end function _draw() menu.draw() end function entry_one() cls() print("entry one selected!") end function entry_two() cls() print("entry two selected!") end function entry_x() cls() print("entry x selected!") end cls() menu.entries = { "text entry one", entry_one, "text entry two", entry_two, "text entry x", entry_x} cursor(26,40) menu.start() |
Again, the Sourcecode is well documented :)
HOW TO USE IT
-
Make sure you place
menu={}
on your Sourcecode. Not in a function, not even in _init(), it must be placed on the "highest level". -
Copy every function, that starts with "menu.", from that Cartridge to your Sourcecode. Thats
function menu.start()
function menu.update()
function menu.draw() -
Make sure to call the "update"- and "draw"-function in _update() and _draw(). Don't worry, these Functions won't do anything, they only react after calling another Function ("menu.start()"):
function _update()
menu.update()
end
function _draw()
menu.draw()
end -
Set your Screen-Position using "cursor" (it must be done at least once).
cursor(0,0) - Fill up the "menu.entries"-Array, representing your Menu.
That Array contains at least two Values: Value "One" is the shown Text, Value "two" is a function that will be called, if player selects the Text. This goes on for Value "Three" (Text), Value "Four" (function) and so on...
menu.entries = {
"start game", start_game,
"options", show_options,
"credits", show_credits,
}
6. Make sure these functions at least exist, otherwise the Menu wouldn't shown properly:
function start_game() [...more code...] end [...same for "show_options" and "show_credits"...] |
- Finally, call that Menu:
menu.start()
SOME MORE OPTIONS
You can change some Variables before calling "menu.start()":
menu.cursym = ">" |
Change the Symbol used as Cursor.
menu.curclr = 10 |
The same for the used Cursor-Color.
menu.backclr = 0 |
Color to remove the Cursor-Symbol after moving it.
menu.cancel = [function] |
A function that will be called, if the Player press Button "4". If this is set to "nil", nothing will happened.
menu.pos |
Use it after calling "menu.start()". You can set the preselected Entry with this Variable. 0 means the first Entry, 1 the Second Entry and so on...
All this code is free to take, use, change, adapt, or whatever.
As said, I thought it can be useful for others^^.
[Please log in to post a comment]