This library allows you to create simple 2D games.
You can install this library using npm i gdevjs
.
This library require SDL2
in order to run. Simple DirectMedia Layer is a cross-platform library designed to provide low level access to different resources such as video. SDL2 is available for windows, linux and macos as well.
To use Simply2D you must have installed SDL2. To install it you can use the following command:
- For Ubuntu:
sudo apt install libsdl2-2.0-0 libsdl2-image-2.0-0 libsdl2-ttf-2.0-0
- For Red Hat and Fedora:
sudo dnf install SDL2 SDL2_image SDL2_ttf
.
The Game
class is a subclass of the Canvas
class of the simply2d
package. Only the methods additional to the Canvas class are listed below, for the methods of the Canvas class click here.
addEntity(entityID: string, entity: Entity): void
Add a new entity to the game. The entityID
must be unique and is used to identify an entity in the game.
removeEntity(entityID: string): void
Removes the entity with that ID.
The Entity
class is used to create entities which can be players, NPCs, walls or UI elements.
const player = new Entity();
player.addTexture("mario", "assets/mario.png");
player.setTexture("mario");
player.setGravity(1);
An entity can be of several types:
- texture entity (default): the entity is rendered with a texture
- text entity: the entity is rendered with a text
addTexture(textureID: string, filePath: string): void
Add a texture to the entity. An entity can have different textures in the texture buffer.
setTexture(textureID: string): void
Change the current texture to another texture.
getCurrentTexture(): string
Get the current texture ID.
getCurrentTexturePath(): string
Get the current texture file path.
getType(): EntityType
Get the entity type.
addEventListener(event: GameEvent, callback: Function): void
Add an event listener. The GameEvent
type can be an onClick
string, onKeyDown
string or onKeyUp
string.
onClick(callback: (x: number, y: number) => void): void
On click event.
getEventListener(): { event: GameEvent, callback: Function }[]
Get events list.
setX(x: number): void
Set X position.
setY(y: number): void
Set Y position.
getProperties(): EntityProperties
Get the entity physics properties.
getTextures(): { textureID: string, file: string }[]
Get the texture buffer.
moveX(x: number): void
Move the entity on the X axis.
moveY(y: number): void
Move the entity on the Y axis.
setGravity(gravity: number): void
Set the gravity property.
setCollideOnEdges(collideOnEdges: boolean): void
Set collide on the edges property.
setFriction(friction: number): void
Set friction property.