hud observation for generic game objects

This commit is contained in:
2025-11-07 12:48:36 +02:00
parent b972ab25f0
commit 48c7ea2e2a
7 changed files with 152 additions and 43 deletions
+8 -2
View File
@@ -26,6 +26,8 @@ class MotionEngine {
return target;
}
// a = {o-object, a-action, t-time, f-finish event, d-delay, m-mode, r-repeat,
// rd-repeat the delay, rf-reset on finish}
this.add = function (a) {
a = Array.isArray(a) ? a : [a];
a.forEach(e => {
@@ -35,7 +37,7 @@ class MotionEngine {
this.clear = function (object) {
for (var i = aq.length - 1; i >= 0; i--) {
if (object && aq[i].o == object || !object && aq[i].ct == aq[i].t) {
if (object && aq[i].o == object || !object && (aq[i].ct == aq[i].t || aq[i].rr)) {
aq.splice(i, 1);
}
}
@@ -75,7 +77,11 @@ class MotionEngine {
e.ct = e.ct + t;
if (e.ct > e.t) {
e.ct = e.t;
e.f && e.f();
e.f?.();
if (e.rf){
e.ct = t = 0;
e.rr = true;
}
}
calcValues(e.o, e.a, e.iv, e.ct / e.t, e.m || 'value');
if (e.ct == e.t && e.r) {