0.1.4 • Published 2 years ago
laikajs v0.1.4
LaikaJS
It's a simple JavaScript game engine for 2D games based on HTML Canvas.
Installing
Install the package
npm install laikajs
Import Game
and provide configurations
import { Game } from 'laikajs'
const PLAYER_CONFIG = {
// Player entity name
name: 'player',
// Player movement parameters
movement: {
// Initial player horizontal movement speed
speedX: 10,
// Initial player vertical movement speed
speedY: 12,
},
// Player entity texture configuration
texture: {
// Tile sheet image source
source: playerTileSheet,
// Single sprite frame height
height: 200,
// Single sprite frame width
width: 100,
// Amount of sprite frames in the tile sheet row
tileCols: 8,
// Vertical offset for player sprite
drawOffset: 1,
// Vertical size scaling for the player sprite
drawHeightOffset: 2,
},
};
const LEVEL_CONFIG = {
// Level layout. Array of rows, where row is an array of tile indeces from the tile sheet.
layout: [
[0, 0, 0, 0, 0, 0],
[0, 3, 22, 2, 0, 0],
[0, 'x', 23, 0, 0, 0],
[1, 1, 1, 1, 1, 1],
],
// Tile marker for the player to be spawned in
spawnMarker: 'x',
// Tile sheet configuration object
tileSheet: {
// Tile sheet image source
src: levelTileSheet,
// Amount of tile to be fitted on screen.
tilesPerRow: 10,
// Tile sheet width in px.
width: 1200,
// Tile sheet height in px.
height: 1200,
// Amount of tile rows in the tile sheet.
rows: 20,
// Amount of tiles in a single tile sheet row.
cols: 20,
// A single tile size in px.
spriteSize: 1200 / 20,
// Configuration for different types of tiles.
types: {
// Solid tiles for collision
solid: [1, 2, 3],
// Tiles that can be climbed
climbable: [22, 23],
// Tiles without any texture, but checkt for collision
nonTexture: [-1],
},
},
};
const StartGame = () => {
const MyGame = new Game(
{
canvas: document.getElementById('canvas'),
player: PLAYER_CONFIG,
level: LEVEL_CONFIG,
},
{
onLoadGame: (game) => {
// Function called after the game and all assets have been loaded
// To actually start the game script, you must call game.startGame
game.startGame()
},
onDraw: (game) => {
// Function called on each draw cycle
// Useful for debugging as it get the whole game object
},
}
);
};
StartGame();
Demos
Authors
- Laimonas Katkus - Github
License
This project is licensed under the ISC License.
0.1.0
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.1.4
2 years ago
0.1.3
2 years ago
0.1.0-beta.14
2 years ago
0.1.0-beta.16
2 years ago
0.1.0-beta.15
2 years ago
0.1.0-beta.12
2 years ago
0.1.0-beta.11
2 years ago
0.1.0-beta.13
2 years ago
0.1.0-beta.5
2 years ago
0.1.0-beta.10
2 years ago
0.1.0-beta.7
2 years ago
0.1.0-beta.6
2 years ago
0.1.0-beta.9
2 years ago
0.1.0-beta.8
2 years ago
0.1.0-beta.3
2 years ago
0.1.0-beta.2
2 years ago
0.1.0-beta.4
2 years ago
0.1.0-beta.1
2 years ago
0.1.0-beta.0
2 years ago
0.0.14
3 years ago
0.0.13
3 years ago
0.0.11
3 years ago
0.0.12
3 years ago
0.0.10
3 years ago
0.0.9
3 years ago
0.0.8
4 years ago
0.0.7
4 years ago
0.0.6
4 years ago
0.0.5
4 years ago
0.0.3
4 years ago
0.0.2
4 years ago
0.0.4
4 years ago
0.0.1
4 years ago
1.0.0
4 years ago