ci-platforms / darwin arm64 smoke (push) Skipped
ci / build (amd64, linux, ubuntu-24.04) (push) Failing after 12m19s
ci-platforms / darwin amd64 smoke (push) Skipped
ci-platforms / windows amd64 smoke (push) Skipped
github-native / gitea-pending (push) Skipped
github-native / darwin amd64 native (push) Skipped
github-native / linux amd64 native (push) Skipped
github-native / windows amd64 native (push) Skipped
github-native / darwin arm64 native (push) Skipped
github-native / gitea-result (push) Skipped
ci / checks (push) Failing after 23m57s
ci / release (push) Skipped
GitHub / windows amd64 native GitHub-hosted native CI: failure
GitHub / darwin arm64 native GitHub-hosted native CI: failure
GitHub / darwin amd64 native GitHub-hosted native CI: failure
GitHub / linux amd64 native GitHub-hosted native CI: success
43 lines
1007 B
Plaintext
43 lines
1007 B
Plaintext
package demo
|
|
|
|
import (
|
|
"aego/debug"
|
|
"aego/scene"
|
|
)
|
|
|
|
// Spawner drops a ball every 0.3 s; each ball goes back to the pool two seconds later and is reused.
|
|
script Spawner {
|
|
@export var Ball AssetRef<Prefab>
|
|
|
|
var t float
|
|
var k int
|
|
|
|
func Update(dt float) {
|
|
t += dt
|
|
if t >= 0.3 {
|
|
t = 0
|
|
k++
|
|
x := float(k % 7) - 3
|
|
scene.Spawn(Ball, node.WorldPosition() + Vec2{x * 0.6, 0})
|
|
}
|
|
}
|
|
}
|
|
|
|
// Drift sinks a ball faster the longer it lives.
|
|
script Drift {
|
|
func Update(dt float) {
|
|
age := 2 - node.Get<Lifetime>().Remaining
|
|
tr := node.Transform2D()
|
|
tr.Position.Y += 6 * age * dt
|
|
node.SetTransform2D(tr)
|
|
}
|
|
}
|
|
|
|
// Fuse shows the seconds left before its node is destroyed.
|
|
script Fuse {
|
|
func Update(dt float) {
|
|
p := node.WorldPosition()
|
|
debug.Text(Vec2{p.X - 1, p.Y - 0.8}, "destroyed in " + string(int(node.Get<Lifetime>().Remaining)) + " s", Color{1, 1, 1, 1})
|
|
}
|
|
}
|