gdevjs
v0.0.3
Published
Game engine for NodeJS
Downloads
2
Readme
GdevJS
Introduction
This library allows you to create simple 2D games.
Installation
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.
For Linux
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
.
API
Game
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.
Game.addEntity
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.
Game.removeEntity
removeEntity(entityID: string): void
Removes the entity with that ID.
Entity
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
Entity.addTexture
addTexture(textureID: string, filePath: string): void
Add a texture to the entity. An entity can have different textures in the texture buffer.
Entity.setTexture
setTexture(textureID: string): void
Change the current texture to another texture.
Entity.getCurrentTexture
getCurrentTexture(): string
Get the current texture ID.
Entity.getCurrentTexturePath
getCurrentTexturePath(): string
Get the current texture file path.
Entity.getType
getType(): EntityType
Get the entity type.
Entity.addEventListener
addEventListener(event: GameEvent, callback: Function): void
Add an event listener. The GameEvent
type can be an onClick
string, onKeyDown
string or onKeyUp
string.
Entity.onClick
onClick(callback: (x: number, y: number) => void): void
On click event.
Event.getEventListener
getEventListener(): { event: GameEvent, callback: Function }[]
Get events list.
Entity.setX
setX(x: number): void
Set X position.
Entity.setY
setY(y: number): void
Set Y position.
Entity.getProperties
getProperties(): EntityProperties
Get the entity physics properties.
Entity.getTextures
getTextures(): { textureID: string, file: string }[]
Get the texture buffer.
Entity.moveX
moveX(x: number): void
Move the entity on the X axis.
Entity.moveY
moveY(y: number): void
Move the entity on the Y axis.
Entity.setGravity
setGravity(gravity: number): void
Set the gravity property.
Entity.setCollideOnEdges
setCollideOnEdges(collideOnEdges: boolean): void
Set collide on the edges property.
Entity.setFriction
setFriction(friction: number): void
Set friction property.