Files
aego/modules/gameplay/res/docs/try/Motion2D.aescene
sanspie 2e10968d48 Stage 11f3: landing, Getting started, guides; demo fixes (D347, D289)
Landing page and Install Aego / Your first project in English and Russian; the 2D template matches them. Platformer from scratch and Recipes with every step scene run by docs check. Builtin data and handle methods in the reference, Inspector names in field tables, Markdown copies and llms-full.txt, strict docs check in CI, engine/docs/README.md.
Fixes: a body cast from a touching contact uses the face normal, so characters no longer stick after a respawn or against walls; Respawn.resetVelocity works; a touch gamepad on exported web pages.
2026-10-25 15:31:22 +03:00

323 lines
7.0 KiB
Plaintext

scene version=1 {
node "d6100000000000000000000000000001" name="Floor" enabled=true layers=1 {
transform {
position=[0, 3]
rotation=0
scale=[1, 1]
}
component "engine.SpriteRenderer" version=1 {
sprite=asset("ae900000000000000000000000000010")
layer=0
order=0
tint=#4b5563ff
origin=[0.5, 0.5]
size=[40, 1]
flipX=false
flipY=false
blend=premultiplied
filter=nearest
}
component "physics.Body2D" version=1 {
type=static
massMode=auto
mass=0
gravityScale=1
linearDamping=0
angularDamping=0
fixedRotation=false
bullet=false
allowSleep=true
interpolate=false
layer=0
mask=-1
}
component "physics.BoxCollider2D" version=1 {
offset=[0, 0]
isTrigger=false
friction=0.6
restitution=0
density=1
size=[40, 1]
}
}
node "d6100000000000000000000000000002" name="Slope" enabled=true layers=1 {
transform {
position=[9, 1.6]
rotation=-0.5236
scale=[1, 1]
}
component "engine.SpriteRenderer" version=1 {
sprite=asset("ae900000000000000000000000000010")
layer=0
order=0
tint=#6b7280ff
origin=[0.5, 0.5]
size=[6, 1]
flipX=false
flipY=false
blend=premultiplied
filter=nearest
}
component "physics.Body2D" version=1 {
type=static
massMode=auto
mass=0
gravityScale=1
linearDamping=0
angularDamping=0
fixedRotation=false
bullet=false
allowSleep=true
interpolate=false
layer=0
mask=-1
}
component "physics.BoxCollider2D" version=1 {
offset=[0, 0]
isTrigger=false
friction=0.6
restitution=0
density=1
size=[6, 1]
}
}
node "d6100000000000000000000000000003" name="Step" enabled=true layers=1 {
transform {
position=[-4, 2.4]
rotation=0
scale=[1, 1]
}
component "engine.SpriteRenderer" version=1 {
sprite=asset("ae900000000000000000000000000010")
layer=0
order=0
tint=#6b7280ff
origin=[0.5, 0.5]
size=[3, 0.2]
flipX=false
flipY=false
blend=premultiplied
filter=nearest
}
component "physics.Body2D" version=1 {
type=static
massMode=auto
mass=0
gravityScale=1
linearDamping=0
angularDamping=0
fixedRotation=false
bullet=false
allowSleep=true
interpolate=false
layer=0
mask=-1
}
component "physics.BoxCollider2D" version=1 {
offset=[0, 0]
isTrigger=false
friction=0.6
restitution=0
density=1
size=[3, 0.2]
}
}
node "d6100000000000000000000000000004" name="Wall" enabled=true layers=1 {
transform {
position=[-12, 0]
rotation=0
scale=[1, 1]
}
component "engine.SpriteRenderer" version=1 {
sprite=asset("ae900000000000000000000000000010")
layer=0
order=0
tint=#4b5563ff
origin=[0.5, 0.5]
size=[1, 6]
flipX=false
flipY=false
blend=premultiplied
filter=nearest
}
component "physics.Body2D" version=1 {
type=static
massMode=auto
mass=0
gravityScale=1
linearDamping=0
angularDamping=0
fixedRotation=false
bullet=false
allowSleep=true
interpolate=false
layer=0
mask=-1
}
component "physics.BoxCollider2D" version=1 {
offset=[0, 0]
isTrigger=false
friction=0.6
restitution=0
density=1
size=[1, 6]
}
}
node "d6100000000000000000000000000005" name="Lift" enabled=true layers=1 {
transform {
position=[15, 2.3]
rotation=0
scale=[1, 1]
}
component "engine.SpriteRenderer" version=1 {
sprite=asset("ae900000000000000000000000000010")
layer=0
order=0
tint=#0ea5e9ff
origin=[0.5, 0.5]
size=[3, 0.4]
flipX=false
flipY=false
blend=premultiplied
filter=nearest
}
component "physics.Body2D" version=1 {
type=kinematic
massMode=auto
mass=0
gravityScale=1
linearDamping=0
angularDamping=0
fixedRotation=false
bullet=false
allowSleep=false
interpolate=true
layer=0
mask=-1
}
component "physics.BoxCollider2D" version=1 {
offset=[0, 0]
isTrigger=false
friction=0.6
restitution=0
density=1
size=[3, 0.4]
}
component "engine.Script" version=1 {
script "game.demo.Lift" enabled=true {
Travel=[0, -3]
Period=4
}
}
}
node "d6100000000000000000000000000006" name="Player" enabled=true layers=1 {
transform {
position=[0, 0]
rotation=0
scale=[1, 1]
}
component "engine.SpriteRenderer" version=1 {
sprite=asset("ae900000000000000000000000000010")
layer=0
order=1
tint=#f59e0bff
origin=[0.5, 0.5]
size=[0.6, 1]
flipX=false
flipY=false
blend=premultiplied
filter=nearest
}
component "physics.Body2D" version=1 {
type=kinematic
massMode=auto
mass=0
gravityScale=1
linearDamping=0
angularDamping=0
fixedRotation=true
bullet=false
allowSleep=false
interpolate=true
layer=0
mask=-1
}
component "physics.BoxCollider2D" version=1 {
offset=[0, 0]
isTrigger=false
friction=0
restitution=0
density=1
size=[0.6, 1]
}
component "gameplay.Motion2D" version=1 {
mode=platformer
upDirection=[0, -1]
maxSpeed=6
accel=60
decel=50
airControl=0.6
gravityScale=1
maxFallSpeed=20
jumpHeight=2.2
jumpSpeed=0
jumpCutMultiplier=0.5
coyoteTime=0.1
jumpBuffer=0.1
maxSlope=45
stepHeight=0.25
snapToGround=0.2
safeMargin=0.02
maxSlides=4
collisionMask=-1
pushBodies=true
movingPlatforms=true
platformOnLeave=keep
faceMovement=false
dashGravity=false
}
component "engine.Script" version=1 {
script "game.demo.Player" enabled=true {
}
}
}
node "d6100000000000000000000000000007" name="Camera" enabled=true layers=1 {
transform {
position=[0, 0]
rotation=0
scale=[1, 1]
}
component "engine.Camera2D" version=1 {
zoom=36
viewport=[0, 0, 1, 1]
mask=-1
order=0
clear=true
clearColor=#111827ff
scale=fitVirtual
virtual=[960, 540]
active=true
}
component "camera.VirtualCamera2D" version=1 {
priority=0
output=""
zoom=0
blendTime=0.5
blendCurve={ ease=inOutQuad }
timeDomain=unscaled
useBounds=false
bounds=[0, 0, 0, 0]
snapToPixels=false
}
component "camera.CameraFollow2D" version=1 {
target=node("d6100000000000000000000000000006")
deadzone=[0.4, 0.4, 0.2, 0.2]
damping=[5, 5]
lookahead=[0.2, 0]
maxLookahead=[2, 1]
lookaheadSmoothing=3
snapDistance=20
}
}
}