Angry Birds - Menu and Levels Database template

Many people on the forum have asked how they might create a menu system like that seen in Angry Birds, or how they would open levels as the user progresses through the game and store the scores etc in a database.

This ‘Dogs vs Owls’ template is a replica of the Angry Birds menu system and database, featuring an episodes menu with scores, stars, feathers etc, levels menus with locked levels and a demonstration on how to update the database with the user’s progress. The menus are created dynamically so you can set up as many or as few episodes and levels as you want, and edit the number of rows/columns etc.

The code is fully commented throughout, and the package also includes a 13-page PDF document to explain how the code is structured and what each step does. Also includes UI graphics which you are welcome to use in your apps, see read me file for details.

The cost is $9.99 and is available to buy here:

Gumroad for credit/debit card payments: https://gumroad.com/l/DOsp

Sellfy for payment via paypal: https://sellfy.com/p/F9cA

Features include:

Start screen
Episodes menu screen
Level menu screen
Simulated ‘gameplay’ screen
The template covers the following tasks:

Create a scrollView widget with bitmap masks
Dynamically place objects accordingly to screen size
Use storyboard to move between scenes
Use storyboard createScene function to draw your scene
Use storyboard enterScene function to set up the scene after drawing
Use storyboard exitScene function to clean up the scene when exiting
Use global variables to track certain key game information
Display a level select screen, with a level unlocking system
Use global functions to perform certain tasks from within any module
Save and load lua tables to JSON using the GGData library by Glitch Games
Import data from another lua module
Group common objects into display groups
Use multi-dimensional arrays
Display grids of images dynamically
Detect and handle ‘swipe’ events
Handle touch events on multiple buttons in one function
Load sounds into a lua table and play on demand
Load and use custom fonts
Basic scrolling background
menu1.png

menu2.png

menu3.png

menu4.png

menu5.png [import]uid: 93133 topic_id: 35387 reply_id: 335387[/import]

The discount codes have all gone now…thanks to everyone who ordered so far! :slight_smile: [import]uid: 93133 topic_id: 35387 reply_id: 140658[/import]

Apologies to anyone who tried to order today, Sellbox had their server crash and lost all my details - new link now posted above. [import]uid: 93133 topic_id: 35387 reply_id: 141061[/import]

The discount codes have all gone now…thanks to everyone who ordered so far! :slight_smile: [import]uid: 93133 topic_id: 35387 reply_id: 140658[/import]

Hi Nick,
This is great. One thing I noticed is that it seems like the UI is ‘perfect’ in iOS simulators but in the Android simulator it’s a little off- for instance the S3.

Totally worth the $15 - very well structured and organized

-Joe [import]uid: 32462 topic_id: 35387 reply_id: 141572[/import]

Also - just got around to checking out the readme. The documentation is fantastic. [import]uid: 32462 topic_id: 35387 reply_id: 141586[/import]

Joe,

Thanks a lot for your kind comments, glad you have found the template useful.

It probably wouldn’t be too hard to adapt the template for non-iOS resolutions, I will take a look. [import]uid: 93133 topic_id: 35387 reply_id: 141605[/import]

Apologies to anyone who tried to order today, Sellbox had their server crash and lost all my details - new link now posted above. [import]uid: 93133 topic_id: 35387 reply_id: 141061[/import]

if you’re doing a 1.01 one other thing I"d recommend is something this in each scene

--------ANDROID BACK BUTTON--------------
local function onKeyEvent( event )
local phase = event.phase
local keyName = event.keyName
if(keyName==“back”) then
–something like storyboard.gotoScene(lastScene)
end
return true
end
Runtime:addEventListener( “key”, onKeyEvent );
--------END ANDROID BACK BUTTON-------------- [import]uid: 32462 topic_id: 35387 reply_id: 141736[/import]

i downloaded it and it does not work. please help [import]uid: 218976 topic_id: 35387 reply_id: 141947[/import]

Did you download GGData.lua and put in the project folder as it says above and in the read me?

I can’t distribute this with the package as it’s not mine to give away.

http://developer.coronalabs.com/code/ggdata [import]uid: 93133 topic_id: 35387 reply_id: 141950[/import]

Hi Nick,
This is great. One thing I noticed is that it seems like the UI is ‘perfect’ in iOS simulators but in the Android simulator it’s a little off- for instance the S3.

Totally worth the $15 - very well structured and organized

-Joe [import]uid: 32462 topic_id: 35387 reply_id: 141572[/import]

Also - just got around to checking out the readme. The documentation is fantastic. [import]uid: 32462 topic_id: 35387 reply_id: 141586[/import]

Joe,

Thanks a lot for your kind comments, glad you have found the template useful.

It probably wouldn’t be too hard to adapt the template for non-iOS resolutions, I will take a look. [import]uid: 93133 topic_id: 35387 reply_id: 141605[/import]

if you’re doing a 1.01 one other thing I"d recommend is something this in each scene

--------ANDROID BACK BUTTON--------------
local function onKeyEvent( event )
local phase = event.phase
local keyName = event.keyName
if(keyName==“back”) then
–something like storyboard.gotoScene(lastScene)
end
return true
end
Runtime:addEventListener( “key”, onKeyEvent );
--------END ANDROID BACK BUTTON-------------- [import]uid: 32462 topic_id: 35387 reply_id: 141736[/import]

i downloaded it and it does not work. please help [import]uid: 218976 topic_id: 35387 reply_id: 141947[/import]

Did you download GGData.lua and put in the project folder as it says above and in the read me?

I can’t distribute this with the package as it’s not mine to give away.

http://developer.coronalabs.com/code/ggdata [import]uid: 93133 topic_id: 35387 reply_id: 141950[/import]

I cant seem to get this to work - I’ve added the GGdata lib to my project folder but not changed anything else…I’m using the latest daily Corona build

 

AAbirdsErrorMsg.png

don’t use latest daily build.  widget 2.0 breaks this template.  try with most recent public build

 

As jflowers45 says, Widgets 2.0 does break the template. I will shortly be sending out an update to all customers with an amended .lua file for use with recent daily builds.

 

Nick