Ct.js is a desktop game engine that makes learning programming fun and game development easy by its visual editors and well-documented code library
emitterTandem.pause()
stopping completely if called several times before calling emitterTandem.resume()
ct.filters
module by SN from our Discord server. The module allows creating special visual effects with filters or custom shaders, applied to your copies or a whole viewportct.light
module for adding ambient lighting and textured lightsct.matter
module for 2D physics. See the new example!ct.nakama
module by @alexandargyurov — you can now create online games with ct.js!PIXI.ParticleContainer
. Provides better performance, and also fixes issue with un-tintable emitters.ct.desktop
-> quit methodct.place.meet
returning duplicated references to copies if querying for multiple obstaclesct.types.isCopy
, ct.u.hexToPixi
, ct.u.pixiToHex
moveTo
and teleportTo
methods in ct.camera
(#49 by @firecakes)scoreLabel
.ct.desktop.isNw
and ct.desktop.isElectron
exts
object missing on newly created copies.cgroup
instead of ctype
in ct.place typings and docs to remove ambiguity with ctypes and regular typessilent
option for ct.tween.add to suppress errors on non-vital animationsct.tilemaps.cacheDiamond
)ct.random
catmodstorage
catmodct.backgrounds
APIct.camera.contains
to check whether a copy (or another displayable object) is potentially visible on a screenct.noise
module for seeded Perlin and Simplex noise functions, useful for freeform procedural level generation.ct.splashscreen
module (Closes #148)ct.tilemaps
APIct.types.isCopy(obj)
method to check whether a variable is a copyct.u.hexToPixi
, ct.u.pixiToHex
ct.cutscene
ct.sound.howler
to not throw errors if one tries to manipulate stopped/non-existent soundRoom.uid
propertyct.capture
work inside this debugger.ct.rooms.list
Background.isUi
is now read-only and is calculated based on its parent's value. Fixes alignment issues for backgrounds that are added to UI layers.ct.res.getTexture('Name', null)
now returns the whole animationct.transition
to mitigate rendering issues due to roundingct.place.moveByAxes
. Fix issues with type definitions.ct.place
$'
, $&
and other special RegExp tokens in injections and user-provided codect.capture
ct.camera
typingsCamera.getBoundingBox
debugger-screen-embedded
pause
calls on an emitter breaking this emitter entirelythemeSpringSream
in Brazilian Portuguese translation filect.sound.follow
viewWidth
/viewHeight
in catmodsct.mouse.x
, ct.mouse.y
, and ct.mouse.xui
, ct.mouse.yui
with zero values.SpringSream
-> SpringStream
at i18n filesthis.move()
at platformer's robot character (Closes #33)ct.camera.realign(room)
works (Closes #21)ct.types.copy
(Closes #32)ct.place
docs. It looks better this way.tag
catmod, for adding tags for individual copies and rooms.PIXI.MultiStyleText
module.ct.place.moveByAxes
and this.moveContinuousByAxes
for easy movement at platformers and top-down games.ct.place.moveAlong
now checks against tiles tooct.fittoscreen
, for purely pixel art projects.select
input type for catmods, as an alternative to radio
ct.random
moduleslider
, sliderAndNumber
input types for extensions, and additional settings for them and number
inputs.dnd-processor
tag that solves edge cases with drag-and-drop behavior and allows dropping any supported files on any tab.~/ct.js/
directory.ct.fs
to use app data directories for Linux, Windows, macOS (#226 by @JulianWebb).input(type="file")
tags. Fixes an issue with invisible inputs overlaying the main menu.ct.mouse
returning old coordinates if a camera has moved, but a cursor hasn't.user-select
CSS parameter on modules' docs panel.slider
and sliderAndNumber
, as well as additional settings for themfont
in the constructor should be an object.ct.assert
module for readable checks in ct.js projectsct.camera
now supports direct assignment for its scale, e.g. ct.camera.scale = 1.5;
ct.inherit
module that allows you to call parents' code and keep things DRYonbeforecreate
injectioncode
input type for monospace text inputpoint2D
input type for modules' settings and injectionsroomExtends
fieldtileLayerExtends
fieldct.fittoscreen
to toggle fullscreen mode while being in an electron app (in a desktop build)
Closes #155ct.place.tile
to check against collision groups (new!) instead of depthct.place
debug modect.tween.add
not working as expected for useUiDelta
See #198ct.fittoscreen
modulereset()
method to CtActionct.deltaUi
for steady UI animations at slowmo effectsct.gamepad
module, made by collective efforts from @leedigital, SN from Discord, and Comigoct.types.copy
fourth parameterdependencies
and optionalDependencies
fieldsct.camera
, UI and game coordinates, and nested roomsct.fs
- a module for working with files and game savesct.transitions
for nice and smooth transitions in your game!ct.types.exists
to check whether a given copy exists in game's worldct.timer
(#179 by @naturecodevoid)rooms.js
ct.flow
, ct.u.wait
, ct.tween
now operate based on ct.delta, with optional ct.deltaUi mode (#179 by @naturecodevoid)window
and document
ct.rooms.list
Copy.tex
ct.camera
ct.vkeys
to work with the new UI coordinate systemct.tween
xstart
and ystart
in copiesdepth
property of the Copy
classct.rooms.current
sound.howler
this.kill
is applied to backgrounds or tilesets and ct.js can't delete themWheel
inputct.speed
ct.touch
, mouse clicks should trigger Any
, Double
, Triple
inputsct.place.tile
ct.transition