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-game
as 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!");