Skip to content

Commit 1a1e358

Browse files
committed
Merged Forward and Backward into main Update function.
1 parent 7e93def commit 1a1e358

2 files changed

Lines changed: 47 additions & 80 deletions

File tree

v3/src/checksum.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
var CHECKSUM = {
2-
build: 'c27e2550-3b57-11e7-9070-8d2076256d8f'
2+
build: '9f9dbde0-3b5a-11e7-8b24-4961194ce2cd'
33
};
44
module.exports = CHECKSUM;

v3/src/tween/components/UpdateTweenData.js

Lines changed: 46 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,17 @@
11
var TWEEN_CONST = require('../const');
22

3-
// Merge with Backwards and include in update?
4-
var Forward = function (tween, tweenData, delta)
5-
{
6-
var elapsed = tweenData.elapsed;
7-
var duration = tweenData.duration;
8-
9-
elapsed += delta;
10-
11-
if (elapsed > duration)
12-
{
13-
elapsed = duration;
14-
}
15-
16-
var progress = elapsed / duration;
17-
18-
var p = tweenData.ease(progress);
19-
20-
// Optimize
21-
tween.current = tween.start + ((tween.end - tween.start) * p);
22-
23-
tween.target[tween.key] = tween.current;
24-
25-
tweenData.elapsed = elapsed;
26-
tweenData.progress = progress;
27-
28-
if (progress === 1)
29-
{
30-
tweenData.state = ProcessRepeat(tween, tweenData);
31-
}
32-
};
33-
34-
var Backward = function (tween, tweenData, delta)
35-
{
36-
var elapsed = tweenData.elapsed;
37-
var duration = tweenData.duration;
38-
39-
elapsed += delta;
40-
41-
if (elapsed > duration)
42-
{
43-
elapsed = duration;
44-
}
45-
46-
var progress = elapsed / duration;
47-
48-
var p = tweenData.ease(1 - progress);
49-
50-
// Optimize
51-
tween.current = tween.start + ((tween.end - tween.start) * p);
52-
53-
tween.target[tween.key] = tween.current;
54-
55-
tweenData.elapsed = elapsed;
56-
tweenData.progress = progress;
57-
58-
if (progress === 1)
59-
{
60-
tweenData.state = ProcessRepeat(tween, tweenData);
61-
}
62-
};
63-
643
// TweenData has reached the end. Now it needs to decide what action to take.
654
// It can either hold, yoyo, repeat or complete.
66-
var ProcessRepeat = function (tween, tweenData)
5+
var ProcessRepeat = function (tween, tweenData, skipHold)
676
{
687
// Do we hold?
69-
if (tweenData.hold > 0)
8+
if (tweenData.hold > 0 && skipHold === false)
709
{
7110
tweenData.elapsed = tweenData.hold;
7211

7312
return TWEEN_CONST.HOLD;
7413
}
75-
else if (tweenData.state === TWEEN_CONST.PLAYING_FORWARD && tweenData.yoyo)
14+
else if (tweenData.yoyo && tweenData.state === TWEEN_CONST.PLAYING_FORWARD)
7615
{
7716
// Playing forward and we have a yoyo
7817

@@ -115,12 +54,53 @@ var UpdateTweenData = function (tween, tweenData, timestep, delta)
11554
{
11655
switch (tweenData.state)
11756
{
57+
case TWEEN_CONST.PLAYING_FORWARD:
58+
case TWEEN_CONST.PLAYING_BACKWARD:
59+
60+
var elapsed = tweenData.elapsed;
61+
var duration = tweenData.duration;
62+
63+
elapsed += delta;
64+
65+
if (elapsed > duration)
66+
{
67+
elapsed = duration;
68+
}
69+
70+
var progress = elapsed / duration;
71+
var v;
72+
73+
if (tweenData.state === TWEEN_CONST.PLAYING_BACKWARD)
74+
{
75+
v = tweenData.ease(1 - progress);
76+
}
77+
else
78+
{
79+
v = tweenData.ease(progress);
80+
}
81+
82+
tween.current = tween.start + ((tween.end - tween.start) * v);
83+
84+
tween.target[tween.key] = tween.current;
85+
86+
tweenData.elapsed = elapsed;
87+
tweenData.progress = progress;
88+
89+
if (progress === 1)
90+
{
91+
tweenData.state = ProcessRepeat(tween, tweenData, false);
92+
}
93+
94+
break;
95+
11896
case TWEEN_CONST.DELAY:
11997

12098
tweenData.elapsed -= delta;
12199

122100
if (tweenData.elapsed <= 0)
123101
{
102+
// TODO - Move elapsed block below switch statement
103+
// so that calls to render and play happen this frame, not the next one?
124104
tweenData.elapsed = 0;
125105
tweenData.state = TWEEN_CONST.PENDING_RENDER;
126106
}
@@ -145,9 +125,8 @@ var UpdateTweenData = function (tween, tweenData, timestep, delta)
145125

146126
if (tweenData.elapsed <= 0)
147127
{
148-
tweenData.elapsed = 0;
149-
// yoyo, repeat or complete
150-
// tweenData.state = TWEEN_CONST.PENDING_RENDER;
128+
tweenData.state = TWEEN_CONST.PLAYING_FORWARD;
129+
tweenData.state = ProcessRepeat(tween, tweenData, true);
151130
}
152131

153132
break;
@@ -157,18 +136,6 @@ var UpdateTweenData = function (tween, tweenData, timestep, delta)
157136
tween.loadValues();
158137
tweenData.state = TWEEN_CONST.PLAYING_FORWARD;
159138

160-
break;
161-
162-
case TWEEN_CONST.PLAYING_FORWARD:
163-
164-
Forward(tween, tweenData, delta);
165-
166-
break;
167-
168-
case TWEEN_CONST.PLAYING_BACKWARD:
169-
170-
Backward(tween, tweenData, delta);
171-
172139
break;
173140
}
174141

0 commit comments

Comments
 (0)