Communitygithub.com

melonjs/melonjs-carregando-assets

Use esta skill para carregar e gerenciar assets de jogos no melonJS — o formato de descrição de recursos, a lista completa de tipos de assets, preload versus load, recuperação de assets carregados, URLs base e configurações de cross-origin, e a tela de carregamento. Aciona em: loader, loader.preload, loader.load, resources, getImage, getJSON, getTMX, getGLTF, getVideo, getFont, setBaseURL, setOptions, crossOrigin, withCredentials, credentials, cookies, authenticated assets, CORS, asset, preload, LOADER_COMPLETE, loading screen, unload.

O que é melonjs-carregando-assets?

Esta skill fornece orientação detalhada para desenvolvedores sobre como carregar e gerenciar assets de jogos no motor melonJS. Ela cobre desde o formato do descritor de recursos e a lista completa de tipos de assets suportados, até a diferença entre carregamento síncrono (preload) e assíncrono (load), métodos para recuperar assets já carregados (como getImage, getJSON, getTMX e outros), e como configurar URLs base e parâmetros de cross-origin (CORS) via setBaseURL e setOptions. Também aborda o gerenciamento de credenciais para assets autenticados, a tela/callback de carregamento (LOADER_COMPLETE) e a função de descarregamento (unload). Indicada para desenvolvedores usando melonJS que precisam entender ou implementar o pipeline de carregamento de recursos, a skill é acionada por palavras-chave como 'loader', 'preload', 'asset', 'CORS' e 'loading screen'.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/melonjs/melonJS/tree/master/packages/melonjs/skills/melonjs-loading-assets

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que melonjs-carregando-assets faz?

Use esta skill para carregar e gerenciar assets de jogos no melonJS — o formato de descrição de recursos, a lista completa de tipos de assets, preload versus load, recuperação de assets carregados, URLs base e configurações de cross-origin, e a tela de carregamento. Aciona em: loader, loader.preload, loader.load, resources, getImage, getJSON, getTMX, getGLTF, getVideo, getFont, setBaseURL, setOptions, crossOrigin, withCredentials, credentials, cookies, authenticated assets, CORS, asset, preload, LOADER_COMPLETE, loading screen, unload.


Formato do Descritor de Recursos

Cada asset é descrito por um objeto no formato:

{
  name: "myImage",
  type: "image",
  src: "assets/img/myImage.png"
}
  • name: Identificador único do asset (usado para recuperação posterior).
  • type: Tipo do asset (veja a lista completa abaixo).
  • src: Caminho relativo ou URL para o arquivo do asset.

Lista Completa de Tipos de Assets

  • image — formatos: PNG, JPG, GIF, WebP, SVG.
  • audio — formatos: MP3, OGG, WAV, M4A.
  • json — arquivo de dados JSON.
  • tmx — mapa de tiles no formato Tiled (TMX).
  • tsx — tileset no formato Tiled (TSX).
  • gltf — modelo 3D no formato glTF.
  • video — formatos: MP4, WebM, OGV.
  • font — fonte bitmapped (formato melonJS .fnt + imagem).
  • binary — dados binários arbitrários.

Preload vs Load

  • loader.preload(): Carrega todos os assets de uma array de descritores de uma vez. É o método recomendado para carregamento inicial do jogo, pois gerencia o progresso e a tela de carregamento automaticamente.

    • Exemplo: me.loader.preload(assets, onProgress, onComplete)
  • loader.load(): Carrega um único asset ou uma pequena lista sob demanda, sem gerenciamento automático de progresso. Útil para assets carregados durante o jogo.

    • Exemplo: me.loader.load({name: "extras", type: "json", src: "data/extras.json"}, onComplete)

Recuperando Assets Carregados

Após o carregamento, use os seguintes métodos para obter a referência ao asset:

  • me.loader.getImage(name) — retorna um objeto Image para o asset do tipo image.
  • me.loader.getJSON(name) — retorna o objeto JavaScript analisado do JSON.
  • me.loader.getTMX(name) — retorna o mapa TMX analisado.
  • me.loader.getGLTF(name) — retorna o modelo glTF carregado.
  • me.loader.getVideo(name) — retorna um elemento HTMLVideoElement.
  • me.loader.getFont(name) — retorna o objeto de fonte bitmapped.

Configurando URLs Base

Use me.loader.setBaseURL(path) para definir um prefixo de caminho para todos os assets. Exemplo:

me.loader.setBaseURL("assets/");

Isso faz com que todos os src relativos sejam resolvidos em relação a assets/.

Configurações de Cross-Origin e Credenciais

Use me.loader.setOptions(options) para configurar parâmetros de CORS e credenciais:

me.loader.setOptions({
  crossOrigin: "anonymous",      // ou "use-credentials"
  withCredentials: true,         // envia cookies/credenciais com a requisição
  credentials: "include"        // alternativa moderna (Fetch API)
});
  • crossOrigin: Controla o atributo crossOrigin do elemento Image ou Audio.
  • withCredentials / credentials: Define se cookies e autenticação são enviados nas requisições de rede. Essencial para assets protegidos por autenticação.

Tela de Carregamento e Evento LOADER_COMPLETE

O melonJS exibe automaticamente uma tela de carregamento (splash screen) durante o preload(). Você pode personalizá-la redimensionando o canvas ou alterando o estilo via DOM.

Após todos os assets serem carregados, o evento LOADER_COMPLETE é disparado:

me.event.subscribe(me.event.LOADER_COMPLETE, function() {
  // Iniciar o jogo ou alterar para a cena principal
  me.state.change(me.state.PLAY);
});

Descarregando Assets (unload)

Para liberar memória, use me.loader.unload(asset):

me.loader.unload("myImage");   // remove o asset pelo nome
// ou
me.loader.unload(assetObject);  // remove usando o próprio descritor

Isso remove a referência interna ao asset e permite que o garbage collector recupere a memória.

Individual skills in this repo

This repo contains 10 individual skills — each has its own dedicated page.

melonjs/melonjs-3d

Use this skill for anything 3D or 2.5D in melonJS — Camera3d, Mesh, InstancedMesh, Sprite3d billboards, Light3d, ground shadows, glTF/GLB scenes, and depth sorting. Covers the Y-down/+Z-forward convention that is the inverse of OpenGL, the cameraClass opt-in, clip planes, and what does not work on the Canvas fallback. Triggers on: Camera3d, Mesh, InstancedMesh, Sprite3d, Light3d, billboard, glTF, glb, 3D, 2.5D, depth, cameraClass, fov, setClipPlanes, setFog, fog, distance fog, height fog, heightFalloff, transparent, transparency, alpha, blendMode, fade, castGroundShadow, lit.

melonjs/melonjs-3d-assets

Use this skill when loading 3D models into melonJS — glTF and GLB scenes, OBJ/MTL models, materials, imported lights, node animation, ground shadows and GPU instancing. Covers level.load options including the async flag, the rightHanded conversion, and exactly what the loader does and does not support. Triggers on: glTF, gltf, glb, OBJ, MTL, 3D model, getGLTF, getOBJ, getMTL, GLTFModel, GLTFScene, level.load glb, rightHanded, lightIntensityScale, castGroundShadow, shadowGroundY, EXT_mesh_gpu_instancing, KHR_lights_punctual, skinning, Blender export, 3D asset.

melonjs/melonjs-camera-and-drawing

Use this skill for camera control and immediate-mode drawing in melonJS — following a target, viewport bounds, shake and fade, secondary cameras, and drawing shapes, lines and gradients inside a custom draw(). Covers world versus screen coordinate conversion, clipping and masking, and baking with CanvasRenderTarget. Triggers on: Camera2d, viewport, follow, setBounds, shake, fadeIn, fadeOut, worldToLocal, localToWorld, colorMatrix, renderer.fill, renderer.stroke, Rect, Ellipse, Polygon, Line, Gradient, clipRect, mask, CanvasRenderTarget, NoiseTexture2d.

melonjs/melonjs-effects-and-shaders

Use this skill for post-processing effects, custom shaders, blend modes and colour grading in melonJS. Covers the built-in ShaderEffect presets, addPostEffect on renderables and cameras, writing a custom dual-language GLSL/WGSL effect, the screen_texture builtins, and why effects silently do nothing on the Canvas fallback. Triggers on: ShaderEffect, addPostEffect, removePostEffect, getPostEffect, VignetteEffect, GlowEffect, BlurEffect, PixelateEffect, ScanlineEffect, shader, GLSL, WGSL, uniform, setUniform, setTexture, setTime, blendMode, colorMatrix, screen_texture, toFrameTexture, post effect, filter.

melonjs/melonjs-performance

Use this skill when a melonJS game drops frames, allocates heavily, or needs to scale to many objects. Covers object pooling, draw-call batching, atlases, baking with CanvasRenderTarget, instancing, culling and alwaysUpdate, the debug plugin, and where the real costs are. Triggers on: performance, slow, frame rate, fps, lag, pool, pool.register, pool.pull, batching, draw calls, InstancedMesh, culling, alwaysUpdate, inViewport, CanvasRenderTarget, optimise, profiling, debug plugin, memory.

melonjs/melonjs-physics

Use this skill for collision, physics bodies, movement, and spatial queries in melonJS — the built-in SAT world and the planck/matter adapters. Covers bodyDef vs Body, collision types and masks, the collision callback family and their firing rules, raycast/queryAABB/querySphere, and the behaviour differences between adapters. Triggers on: Body, bodyDef, collision, collisionType, collisionMask, onCollision, onCollisionStart, onCollisionActive, raycast, queryAABB, querySphere, PlanckAdapter, MatterAdapter, gravity, velocity, applyForce, isGrounded, SAT.

melonjs/melonjs-renderables

Use this skill when subclassing Renderable, writing a custom draw() method, handling pointer or click events on game objects, applying post effects and shaders, or controlling draw order. Covers the pos-relative draw contract, isKinematic and input, addPostEffect vs the deprecated shader property, and z-ordering. Triggers on: Renderable, extends Renderable, draw(, update(, isKinematic, pointerEvent, registerPointerEvent, onClick, addPostEffect, removePostEffect, ShaderEffect, addChild, z-order, anchorPoint, floating.

melonjs/melonjs-renderer-backends

Use this skill when a feature works on one machine and not another, when choosing or pinning a renderer, or when writing code that must degrade gracefully. Covers the WebGPU to WebGL 2 to Canvas fallback ladder, what each backend supports, capability detection, and the subsystems that warn once and then stop working on Canvas. Triggers on: video.AUTO, video.WEBGPU, video.WEBGL, video.CANVAS, renderer.type, supportsDepthBuffer, shaderLanguage, WebGPU, WebGL2, Canvas fallback, context loss, backen

melonjs/melonjs-scenes-and-state

Use this skill for scene structure and game flow in melonJS — Stage subclasses, the state manager, transitions, pausing, the update loop, timers and tweens. Covers onResetEvent versus the constructor, state.set before state.change, the camera and world lifecycle per stage, and pause-aware timing. Triggers on: Stage, state, state.set, state.change, state.transition, state.pause, onResetEvent, onDestroyEvent, onActivateEvent, onDeactivateEvent, PLAY, MENU, LOADING, update loop, GAME_UPDATE, timer, setTimeout, setInterval, Tween, freeze.

melonjs/melonjs-ui-and-text

Use this skill for HUDs, buttons, menus, dialogue panels and on-screen text in melonJS. Covers UIBaseElement/UISpriteElement/UITextButton, Draggable and DropTarget, the floating screen-space container pattern, Text and BitmapText, web font loading, and NineSliceSprite panels. Triggers on: UI, HUD, button, UIBaseElement, UISpriteElement, UITextButton, Draggable, DropTarget, menu, dialogue, Text, BitmapText, font, fontface, wordWrapWidth, NineSliceSprite, score display, floating.

Habilidades Relacionadas