Book Image

Haxe Game Development Essentials

Book Image

Haxe Game Development Essentials

Overview of this book

Haxe is a powerful and high-level multi-platform language that's incredibly easy to learn. Used by thousands of developers and many high-profile companies, Haxe is quickly emerging as a forerunner in the area of cross-platform programming. OpenFL builds on top of Haxe to make developing for multiple platforms quick and painless. HaxeFlixel provides you with the tools you need to build amazing 2D games easier than ever before. Cross-platform development has been supercharged using the Haxe programming language, making it increasingly easy and hassle-free to develop multi-platform games. If you've programmed games before and want to learn out how to deliver games across multiple platforms, or develop games faster, then Haxe Game Development Essentials is the book for you. It starts by showing you how to set up your development environment, then running you through some Haxe language fundamentals, and finally taking you through the process of programming a game from start to finish. You will learn how to create a side scrolling shooter game using HaxeFlixel. Next you will learn to enhance the game with new gameplay features, user interfaces, animations, sound, and configuration files to make your game expandable. Once your game is built and ready, you will learn how to deploy it to web, Android, iOS, and desktop systems. By the end of this book, you will be confident about creating multi-platform games using Haxe, OpenFL, and HaxeFlixel in a faster and easier way.
Table of Contents (16 chapters)
Haxe Game Development Essentials
Credits
About the Author
Acknowledgements
About the Reviewers
www.PacktPub.com
Preface
Index

Updating PlayState


Now that we have our EnemySpawner class and we've updated our Enemy class to work with it, we need to go and change a few things in PlayState to make it all work. Open up the PlayState class, and we'll get to work.

Removing old functionality

To start, we'll go through and remove things we no longer need. First, remove the following variable:

private var numEnemies:Int = 20;

Next, go into the constructor and remove the block where we're instantiating enemies:

var enemy:Enemy;
for (i in 0...numEnemies) {
  enemy = new Enemy();
  enemyLayer.add(enemy);
}

The spawner will do this for us, so PlayState is no longer responsible for handling enemies like this.

Using EnemySpawner

Now we just need to change our enemy layer to use our EnemySpawner class. First, update the variable:

private var enemyLayer:EnemySpawner;

Then in the constructor, make sure that we're instantiating the EnemySpawner class instead of a FlxGroup class:

enemyLayer = new EnemySpawner();

Since the EnemySpawner object is...