| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 1.18.26 - Touch gamepad, texture sheets, three.js plugin source code.tar.gz | 2026-08-16 | 5.0 MB | |
| 1.18.26 - Touch gamepad, texture sheets, three.js plugin source code.zip | 2026-08-16 | 5.4 MB | |
| README.md | 2026-08-16 | 4.4 kB | |
| LittleJS-1.18.26.zip | 2026-08-16 | 1.0 MB | |
| Totals: 4 Items | 11.5 MB | 5 | |
1.18.26 - Touch gamepad, texture sheets, three.js plugin
New Demos
Three.js 3D Platformer (killedbyapixel.github.io) Dynamic Lighting System Low Resolution Output Mini Grapple Game Mini 3D Ball Track Game Crescent Rendering
New Changes
- Added the Three.js plugin to render a 3D scene behind the LittleJS canvas, with a camera aligned to the 2D camera and
ThreeJSObjectto drive meshes with LittleJS physics - Added the Light System plugin for 2D dynamic lighting: colored lights accumulate additively into a lightmap that multiplies over the scene, and objects can glow by overriding
renderLight() - Added the Texture Sheet plugin:
loadSpritepacks images into texture sheets at runtime,loadAtlasimports TexturePacker and Aseprite atlases with named frames - Touch gamepad rewritten as a full-viewport HTML/SVG overlay, so controls can sit outside the canvas and respect device safe areas
- Each touch gamepad side is now configurable as a stick, dpad, or 1-4 face buttons, plus new floating controls, button vibration, and a passthrough setting
- Added
cameraFitto frame a world space rectangle, with world margins and screen pixel insets for HUD space - Added
drawCrescentandgetCrescentPointsfor moon phase shapes, with WebGL, color, and outline support - Added
engineStepandsetEngineManualStepto advance the engine one frame at a time for headless tests and frame stepping tools - Added
TileInfo.columnsso animation frames wrap across multiple rows - Added
Color.setAlphaandColor.withAlpha,lastInputDevicewithusingMouseInput/usingKeyboardInput/usingGamepadInput, andmedalsReset - Renames (breaking for ESM/TS users):
TileInfo.tile()→TileInfo.index(),setBlendMode→setAdditiveBlendMode,UIObject.pos→UIObject.nativePos - Medal saves consolidated into a single JSON object, old per-medal storage keys are no longer read
- Fixed ImageFont dropping a row of pixels by snapping glyph edges to the pixel grid instead of glyph centers
- Canvas2D
drawTileanddrawRectGradientnow flip Y the same way the WebGL path does, so both renderers match - Physics now updates before object updates, so
update()sees post-physics positions - Tile collision fixes: layer position offset was ignored, ghost collisions off the negative layer edge, and tile layer render ignoring
drawSize - Box2D fixes: joint
referenceAnglesign, prismatic and wheel joint axes,setPositionflipping the body angle, andsetFilterDataon existing contacts - Input fixes: touch delta jump when the primary finger changes,
wasPressedlost on key release with WASD emulation, right stick press button when it is the only stick - Math fixes:
oscillatewith negative time,isPowerOfTworeturning true for zero - More fixes: particle rotation in emitter local space, particle
emitSize, UI dialog close crash and touch passthrough while paused,showConfirmDialogreturn value, Newgrounds non-JSON responses, tween path asserts, and debug video capture audio - Reduced per-frame allocations in drawing, transforms, particles, and Box2D
- New demos: Light System, Low Resolution Output, Texture Sheet, Texture Atlas, Crescent, Grapple Game, 3D Ball Track Game, and two Three.js examples
- Particle editor now supports drag and drop textures, a tile padding setting, and a default texture button
- Docs build moved into the repo as
npm run build-docs, REFERENCE.md expanded to the full public API, and README gained JS13k, Three.js, and AI resource sections - Added 16 new test files covering texture sheets, lighting, medals, sound, input, tile collision, draw utilities, and engine stepping
Check out the latest on GitHub to see everything we've been working on!