Some Skeleton Logic
The premise for BugCatch is pretty simple. Kids are presented with a virtual playing area many times the size of the phone’s screen. They are tasked with searching the landscape for certain bugs that they need to either catch or squish. A small HUD will give them access to a few implements to switch between (such as jars/nets/shoes/hands) to accomplish this. Scrolling will be done by swiping across the playing area. Catching or squishing is just a simple tap on the moving bug. Different bugs will move in different ways and be harder/easier to catch depending on type and difficulty level.
I jotted some notes this afternoon with some pseudo-code for some of the core methods in the game engine.
Init() clearInput() resetState() GameLoop() resetState() if NEVER INITIALIZED then init setLevel() setGoals() createBugList() setBugListState() GameLoop() getInput() updateActions() updateAI() updateGameState() getInput() if INPUTS store action updateActions() if SWIPE move background if TOUCH HUD hittest catcher hittest options if TOUCH PLAYAREA hittestBugs() hittestBugs() foreach BUG if HIT goalCheck(bug) tagRemoveBug goalCheck(bug) foreach GOAL if GOAL +matches bug satisfyGoal() else exposeError() updateAI() foreach BUG if TAG REMOVED removeBug else moveBug updateGameState() updateTime checkForGoalsComplete checkForEndOfTime if GOALS COMPLETE winGame if END TIME loseGame setLevel() setCompleteTime() setHitboxSize() setGoals() createGoalsList(level) randomly select a set of goals, taking into account level select time limit based on level setBugListState(level) inspect goals select bugs req'd for goals select additional bugs not required based on level. create random distribution based on level (lower level == greater percent bugs req'd for goal) populate bug array.