Table of contents

  1. Creating a Simple Game Object
    1. Setting the Map instance in a Game Object

Creating a Simple Game Object

The GameObject class can be used for just a single image (one graphic). Even though GameObject extends from AnimatedSprite, if no animation is desired for a specific game object, it provides certain constructors to essentially treat itself as a one frame animation that never changes. This results in only one image being used.

For example, the following GameObject constructor can be used to define just a simple one image sprite:

public GameObject(float x, float y, Frame frame) {
    // logic
}

And it can be instantiated like this:

float x = 30;
float y = 100;
Frame frame = new Frame(ImageLoader.load("my_image.png"));
GameObject gameObject = new GameObject(x, y, frame);

More details on using the ImageLoader class to read in images can be found here. An image file can contain any graphic, and it will be loaded into the game and utilized by the GameObject in its draw cycle to “display” itself on screen.

Calling the game object’s draw method will display it to the screen at its x and y location.

Setting the Map instance in a Game Object

In the above example, the GameObject will always be drawn at its x and y position relative to the screen’s coordinates. Many classes however, such as the Player and NPC classes, need to have their drawing logic changed based on where the map’s camera has moved (this creates that “scrolling” level effect). To add the Map instance to the GameObject for it to automatically apply that draw logic, the setMap method can be used.

gameObject.setMap(map);