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.