-
-
Notifications
You must be signed in to change notification settings - Fork 56
/
Copy pathmovement.js
49 lines (38 loc) · 1.1 KB
/
movement.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
// @ts-check
// Input handling and basic player movement
// Start kaplay
kaplay();
// Load assets
loadSprite("bean", "/sprites/bean.png");
// Define player movement speed (pixels per second)
const SPEED = 320;
// Add player game object
const player = add([
sprite("bean"),
// center() returns the center point vec2(width() / 2, height() / 2)
pos(center()),
]);
// onKeyDown() registers an event that runs every frame as long as user is holding a certain key
onKeyDown("left", () => {
// .move() is provided by pos() component, move by pixels per second
player.move(-SPEED, 0);
});
onKeyDown("right", () => {
player.move(SPEED, 0);
});
onKeyDown("up", () => {
player.move(0, -SPEED);
});
onKeyDown("down", () => {
player.move(0, SPEED);
});
// onClick() registers an event that runs once when left mouse is clicked
onClick(() => {
// .moveTo() is provided by pos() component, changes the position
player.moveTo(mousePos());
});
add([
// text() component is similar to sprite() but renders text
text("Press arrow keys", { width: width() / 2 }),
pos(12, 12),
]);