npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

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.