-
-
Notifications
You must be signed in to change notification settings - Fork 56
/
Copy patheasing.js
126 lines (113 loc) · 1.93 KB
/
easing.js
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// @ts-check
// Moves objects with custom easings
kaplay();
add([
pos(20, 20),
rect(50, 50),
color(WHITE),
timer(),
area(),
"steps",
]);
onClick("steps", (square) => {
square.tween(
WHITE,
BLACK,
2,
(value) => {
square.color = value;
},
easingSteps(5, "jump-none"),
);
});
add([
pos(80, 20),
rect(50, 50),
color(WHITE),
timer(),
area(),
"stepsmove",
]);
onClick("stepsmove", (square) => {
square.tween(
80,
400,
2,
(value) => {
square.pos.x = value;
},
easingSteps(5, "jump-none"),
);
});
add([
pos(20, 120),
rect(50, 50),
color(WHITE),
timer(),
area(),
"linear",
]);
onClick("linear", (square) => {
square.tween(
WHITE,
BLACK,
2,
(value) => square.color = value,
easingLinear([vec2(0, 0), vec2(0.5, 0.25), vec2(1, 1)]),
);
});
add([
pos(80, 120),
rect(50, 50),
color(WHITE),
timer(),
area(),
"linearmove",
]);
onClick("linearmove", (square) => {
square.tween(
80,
400,
2,
(value) => {
square.pos.x = value;
},
easingLinear([vec2(0, 0), vec2(0.5, 0.25), vec2(1, 1)]),
);
});
add([
pos(20, 220),
rect(50, 50),
color(WHITE),
timer(),
area(),
"bezier",
]);
onClick("bezier", (square) => {
square.tween(
WHITE,
BLACK,
2,
(value) => square.color = value,
easingCubicBezier(vec2(.17, .67), vec2(.77, .71)),
);
});
add([
pos(80, 220),
rect(50, 50),
color(WHITE),
timer(),
area(),
"beziermove",
]);
onClick("beziermove", (square) => {
square.tween(
80,
400,
2,
(value) => {
square.pos.x = value;
},
easingCubicBezier(vec2(.17, .67), vec2(.77, .71)),
);
});