BeeEngine logo BeeEngine JAVASCRIPT 2D ENGINE

Gestione Solidi 2D: Sprite Statici e Collisioni Canvas JS

Documentazione – BeeEngine
v2.8.4

BeePlatform — Documentazione Tecnica

Sprite statico per i solidi: color / textureKey, la fisica sta su collisions.solid

📁 Panoramica

BeePlatform è un BeeEntity che si vede. Vive in src/gameplay/BeePlatform.js. Non è un collider, non è un body, non è resolvePlatformCollision. È un rettangolo (o una texture) da mettere nel gruppo solids. Chi cammina sopra è il mover: il player (o chi ha resolvePlatformCollision) contro quel gruppo, via collisions.solid('player', 'solids').

La demo examples/demo.js lo dice in HUD: tre platform a terra / 380 / 260, gruppo solids, player in platformer.

const ground = new BeePlatform(0, 520, 800, 80); const shelf = new BeePlatform(200, 380, 200, 20, ‘#7dd3fc’); gioco.collisions.setGroup(‘solids’, [ground, shelf]); gioco.collisions.solid(‘player’, ‘solids’);

📁 Chi è solido

Senza i tre passi a destra è solo un rettangolo giallo. Ladybug lo vede, i piedi no.

  1. 1. spritenew BeePlatform(x, y, w, h) AABB da getWorldAABB.
  2. 2. grupposetGroup('solids', […]) + solid('player', 'solids').
  3. 3. runcollisions.run() chiama mover.resolvePlatformCollision(plat) (BeeEntity).

Niente update proprio: vale BeeEntity.integrate. I default vx/vy/gravity sono 0, quindi sta. Se li accendi, cade o scivola come qualsiasi entity.

draw è in spazio mondo (worldX/Y), save/restore, getAsset con guardia. Senza texture: fill color (default #ffd700), fascia chiara in cima 3px, stroke nero.

📁 Dove è facile sbagliare

Crearla non basta. Senza solid + run il player la attraversa. Lo HUD della demo lo ricorda.

Niente one-way, niente moving. Il landing “da sopra” sta in BeeEntity.resolvePlatformCollision (landingTolerance), non qui. Una platform che si muove la sposti tu su worldX/Y.

Prefab 'platform'. Il type di stock fa new BeePlatform(x, y, w, h). color e textureKey arrivano dopo da applyFields, non dal costruttore a 6 argomenti.

📁 Esempio: terra + mensola

gioco.prefabs.define(‘ground’, { type: ‘platform’, width: 800, height: 80, color: ‘#ffd700’ }); const ground = gioco.prefabs.spawn(‘ground’, { x: 0, y: 520 }); gioco.collisions.add(‘solids’, ground);

📁 Riepilogo API

Estende BeeEntity. Nessun metodo di fisica proprio.

Membro Ritorna Scopo
new BeePlatform(x, y, w?, h?, color?, textureKey?) BeePlatform Default 100×20, color #ffd700, texture null.
color / textureKey string / string o null Fill se manca l’asset. Texture da engine.getAsset.
draw(ctx, engine) — Mondo, save/restore, guardia getAsset. Early-return senza ctx.
collisions.solid(movers, solids) — Non è un metodo della platform: è lì che diventa un pavimento.
prefabs.type('platform') classe new (x, y, w, h). Color e sprite da spec / applyFields.