GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - SimoneAncona/gdevJS: Game engine for NodeJS

BranchesTags
Open more actions menu

Latest commit

 

History

16 Commits
16 Commits

Folders and files

NameName
Last commit message
Last commit date
lib
lib
 
 
test
test
 
 
.gitignore
.gitignore
 
 
.npmignore
.npmignore
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 
index.d.mts
index.d.mts
 
 
index.mts
index.mts
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
tsconfig.json
tsconfig.json
 
 

Repository files navigation

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.

About

Game engine for NodeJS

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing
Activity

Stars

1 star

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.