Sunday, March 3, 2013

Good stories need an ending

A number of things got added this week.

Option menu got changed again - added a button to the scenes that allows the player to click it.  And cleaned up a lot of code so as to use it!  Now a user can turn the auto fire on/off and change sides.  Once those picks are made they return to the start of the scene they were playing - and not go all the way back to the main menu.

I was looking for a new background map.  We were finding the farmland one I added a bit too dark - and I wanted to get some other backgrounds in the game anyway.

I had used a tool I found from Spiral Graphics called Genetica - they provide a viewer so you can do very minimal manipulation of their files.

So I grabbed two more - their croplands and one called Cherry Orchards.  It was their cropland file I ended up using and adding as a background to a couple of the scenes.  I still need to lighten or replace the farmland graphic.

Now for the fun stuff - I added an ending to the game.  There is a final battle with zeppelins:
Then just as our pilot thinks things are looking good - well he is in for a bit of a surprise...

Splash screens to give the sense of a serial:


And some kind of logo:






Some refactoring also took place.  I noticed that when playing enemies could get hit even before they were dislayed on the screen.  So I added code to the collision handler to ensure that the enemy object would have to cross a certain threshold before the collision with the bullet would actually do anything.  Now you have to see the enemy object on the screen before you get to shoot them.

Next up - enemies were showing up partially off screen.  Which wasn't so bad until I added the zeppelins in the final battle.  Half a zeppelin isn't as good as a full one - so I refactored the randomizer that set the initial x coordinate for the object as it was created.  Now when an object is created it gets fully displayed on the players screen.  That code is in the majority of the scenes and I need to continue moving it to the rest.

Last - we have a hit counter for a boss and for the player.  But nothing like that for the rest of the enemies.  And ran into a bit of a conundrum - the player is an unique object as is a boss.  But the rest of the enemies aren't.  And I couldn't quickly come up with a way to keep track of the hits done to a particular enemy object.  So I put in a hack.

In level 3 and the end level there are two different enemy types that get created for the screen.  In the event handler for a particular enemy type I added used the math.random library to give me an integer between a certain range.  So in level 3 you have a 50-50 chance to blow up the second enemy type with a shot.  In the final level you have a one in four chance to blow up a zeppelin with a shot.
 

No comments:

Post a Comment