BeeEngine Official Logo

Logo Ufficiale BeeEngine

Motore di gioco 2D in JavaScript

BeeEngine JS è un motore leggero per giochi HTML5 su Canvas: camera, layer di disegno, particelle, collisioni e culling, senza dipendenze. ⚠️ **Nota:** La documentazione è attualmente in fase di sviluppo e aggiornamento continuo.

npm install beeengine

Cosa trovi nel motore

Da sviluppatore a sviluppatore

Cose che la firma del metodo non dice, e che si scoprono al secondo pomeriggio.

endFrame per ultimo

pressed e mouse.wasPressed restano veri fino a endFrame. Leggi l'input nell'update della scena e chiama endFrame dopo. Se lo chiami prima, Space risulta già consumato e il salto parte a caso.

Due orologi nello stesso gioco

BeePlayer e BeeNemico moltiplicano per dt: i numeri sono pixel al secondo. BeeCollectible somma velocita a y e ignora dt, quindi a 30 fps scende più piano che a 60. Un'entità nuova va scritta con la stessa convenzione del resto della scena.

L'ordine delle regole è il gioco

BeeCollisionSystem risolve prima i contatti solidi, poi gli overlap, nell'ordine in cui hai chiamato add. Se la moneta si raccoglie solo a mezz'aria, la regola di overlap sta nel punto sbagliato di quella lista.

Il pool si riempie al load

BeePool e i burst di particelle rendono se gli oggetti esistono già. Creare lo scaffale dentro il primo emit sposta le allocazioni nel frame in cui esplode qualcosa: è lì che il gioco si blocca un attimo sul telefono.

La UI sta su un layer fermo

Panel, stack, label e nine-slice vanno su un layer che non segue BeeCamera. Sul layer del mondo il menu scorre insieme al giocatore, e il pulsante esce dall'inquadratura appena cammini.

Ladybug spento prima del deploy

L'overlay disegna le hitbox a ogni frame. In locale è il modo più rapido per vedere un AABB spostato di otto pixel. Sulla build che metti online va disattivato: quei rettangoli li vede il giocatore, e li paghi comunque.

Inizia in pochi secondi

import * as Bee from 'beeengine';

// Crea il gioco e aggiungi le tue entità.
// Esempi completi e API nella documentazione:
// https://beeenginejs.com/