1.0.1 • Published 4 years ago
canvas-game-2d v1.0.1
JavaScript2D
Easy and perfect game engine made with JavaScript!
NPM

You can visit Wiki for any information!
Setup & Installation
Injecting into HTML
<script src="https://raw.githubusercontent.com/OguzhanUmutlu/JavaScript2D/main/script.js"></script>Injecting into Node.JS
- Install
2d-canvas-gameas dependency first!
const {Vector2, ImageModel, SquareModel, TextModel, EntityData, Entity, Scene} = require("canvas-game-2d");- You can install it to your IDE by holding your mouse on it and clicking
Download library
Creating scene
Creating canvas tag
<canvas style="outline: black 3px solid;" id="canvas" width="500" height="500"></canvas>Creating scene in pure.js
<script>
const canvas = document.getElementById("canvas");
const scene = new Scene(canvas);
</script>Creating scene in node.js
const { createCanvas } = require("canvas");
const canvas = createCanvas(500, 500);
const scene = new Scene(canvas);Simple Player Example
Creating player
const player = new Entity(
new EntityData()
.setX(0) // spawn position of player
.setY(0)
.setModel(new SquareModel(20, 20)) // width, height
);Registering player to scene
scene.addEntity(player);Storing keys they are held
const heldKeys = {};
addEventListener("keydown", key => {
heldKeys[key.key] = true;
});
addEventListener("keyup", key => {
delete heldKeys[key.key];
});Moving player
setInterval(() => {
let dx = 0;
let dy = 0;
if (heldKeys["w"]) dy--;
if (heldKeys["a"]) dx--;
if (heldKeys["s"]) dy++;
if (heldKeys["d"]) dx++;
player.x += dx;
player.y += dy; // simply change player's position
});To prevent going outside from canvas
setInterval(() => {
let dx = 0;
let dy = 0;
if (heldKeys["w"]) dy--;
if (heldKeys["a"]) dx--;
if (heldKeys["s"]) dy++;
if (heldKeys["d"]) dx++;
player.x += dx;
player.y += dy;
player.preventBorder(scene);
});Adding texts
Creating text
const text = new Entity(
new EntityData()
.setX(30)
.setY(30)
.setModel(
new TextModel(10, 10) // width, height
.setText("Hello World!") // text of model
.setFont("Impact") // font of text
.setColor("rgba(0, 255, 0, 0.5)") // color of text
.setPixels(16) // size of the text
.setMaxWidth(100) // maximum size of the text
)
);Adding text as entity
scene.addEntity(text);Changing content of the text entity
text.model.setText("Bye World!");