blob: c4e6131d9b7e5b20f4657d05cfcf95f370cff6b6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
package NET.worlds.scape;
import NET.worlds.core.Std;
public class FrameEvent extends Event {
private static int lastFrameTime;
private static int deltaFrameTime;
public int dt;
public FrameEvent(WObject target) {
super(lastFrameTime, null, target);
this.dt = deltaFrameTime;
}
public FrameEvent(WObject source, WObject target) {
super(lastFrameTime, source, target);
this.dt = deltaFrameTime;
}
public void newFrameTime() {
this.time = Std.getRealTime();
if (lastFrameTime == 0) {
deltaFrameTime = 0;
} else {
deltaFrameTime = this.time - lastFrameTime;
assert this.time >= lastFrameTime && deltaFrameTime >= 0;
}
lastFrameTime = this.time;
this.dt = deltaFrameTime;
}
@Override
public boolean deliver(Object o) {
return o instanceof FrameHandler && ((FrameHandler)o).handle(this) ? true : true;
}
public void retargetAndDeliver(FrameHandler h, WObject o) {
this.target = o;
this.receiver = o;
h.handle(this);
}
}
|