Book Image

Learning Libgdx Game Development

Book Image

Learning Libgdx Game Development

Overview of this book

Game development is a field of interdisciplinary skills, which also makes it a very complex topic in many respects. One decision that usually needs to be made at the beginning of a game development processis to define the kind of computer system or platform the game will be developed for. This does not pose any problems in general but as soon as the game should also be able to run on multiple platforms it will become a developer's nightmare to maintain several distinct copies of the same game. This is where the libGDX multi-platform game development framework comes to the rescue! "Learning Libgdx Game Development" is a practical, hands-on guide that provides you with all the information you need to know about the libGDX framework as well as game development in general so you can start developing your own games for multiple platforms. You will gradually acquire deeper knowledge of both, libGDX and game development while you work through twelve easy-to-follow chapters. "Learning Libgdx Game Development" will walk you through a complete game development cycle by creating an example game that is extended with new features over several chapters. These chapters handle specific topics such as organizing resources, managing game scenes and transitions, actors, a menu system, using an advanced physics engine and many more. The chapters are filled with screenshots and/or diagrams to facilitate comprehension. "Learning Libgdx Game Development" is the book for you if you want to learn how to write your game code once and run it on a multitude of platforms using libGDX.
Table of Contents (19 chapters)
Learning Libgdx Game Development
About the Author
About the Reviewers

Implementing the actor game objects

First, let us make some preparations by extending the AbstractGameObject class with some additional attributes and general functionalities for our upcoming physics and collision detection code.

Add the following import to AbstractGameObject:

import com.badlogic.gdx.math.Rectangle;

Then, add the following member variables and initialization code to the same class:

public Vector2 velocity;
public Vector2 terminalVelocity;
public Vector2 friction;
public Vector2 acceleration;
public Rectangle bounds;

public AbstractGameObject () {
  position = new Vector2();
  dimension = new Vector2(1, 1);
  origin = new Vector2();
  scale = new Vector2(1, 1);
  rotation = 0;
  velocity = new Vector2();
  terminalVelocity = new Vector2(1, 1);
  friction = new Vector2();
  acceleration = new Vector2();
  bounds = new Rectangle();

The following list contains a brief description of the purpose of each variable:

  • velocity: This is the object's current speed in m/s.

  • terminalVelocity...