Skip to content

Commit c9d3487

Browse files
committed
basic control manager
1 parent 49c09eb commit c9d3487

File tree

14 files changed

+410
-9
lines changed

14 files changed

+410
-9
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
for (var i=0; i<num_players; i++) {
2+
delete players[| i];
3+
}
4+
5+
ds_list_destroy(players);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
players = ds_list_create();
2+
num_players = 0;
3+
input_state_cache = 0;
4+
5+
control_manager_functions();
6+
reset_cache();
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
for (var i=0; i<num_players; i++) {
2+
players[| i].process_input(id);
3+
}

current-scripts/Demos/useful-scripts/objects/obj_control_manager/obj_control_manager.yy

Lines changed: 35 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
control_labels[CONTROLS.UP] = "Up";
2+
control_labels[CONTROLS.DOWN] = "Down";
3+
control_labels[CONTROLS.LEFT] = "Left";
4+
control_labels[CONTROLS.RIGHT] = "Right";
5+
control_labels[CONTROLS.A] = "A";
6+
control_labels[CONTROLS.B] = "B";
7+
control_labels[CONTROLS.C] = "C";
8+
9+
num_controls = CONTROLS.MAX;
10+
11+
control_manager = instance_create_layer(0, 0, layer, obj_control_manager);
12+
control_manager.add_player();
13+
14+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.UP, vk_up);
15+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.DOWN, vk_down);
16+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.LEFT, vk_left);
17+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.RIGHT, vk_right);
18+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.A, ord("A"));
19+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.B, ord("B"));
20+
control_manager.players[| 0].set_control(CONTROL_TYPE.KEYBOARD, CONTROL_TYPE.KEYBOARD, CONTROLS.C, ord("C"));
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
for (var i=0; i<num_controls; i++) {
2+
draw_text(8, i*32 + 16, control_labels[i] + ": " + string(control_manager.players[| 0].ctrl_held[i]));
3+
}

current-scripts/Demos/useful-scripts/objects/obj_control_manager_demo/obj_control_manager_demo.yy

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

current-scripts/Demos/useful-scripts/objects/obj_demo_title/Create_0.gml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
rooms = [
2+
room_control_manager_demo,
23
room_drawing_demo,
34
room_dta_demo,
45
room_easing_demo,
@@ -12,6 +13,7 @@ rooms = [
1213
num_rooms = array_length(rooms);
1314

1415
room_names = [
16+
"Control Manager",
1517
"Drawing",
1618
"Delta Time Alarm",
1719
"Easings",

current-scripts/Demos/useful-scripts/rooms/room_control_manager_demo/room_control_manager_demo.yy

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
function add_player() {
2+
var _new_player = new ControlManagerPlayer();
3+
ds_list_add(players, _new_player);
4+
num_players++;
5+
return _new_player;
6+
}
7+
8+
function reset_cache() {
9+
delete input_state_cache;
10+
input_state_cache = {
11+
keyboard: {
12+
held: {},
13+
pressed: {},
14+
released: {},
15+
any: false
16+
},
17+
18+
mouse: {
19+
held: {},
20+
pressed: {},
21+
released: {},
22+
any: false
23+
},
24+
25+
gamepad: {
26+
held: {},
27+
pressed: {},
28+
released: {},
29+
any: false
30+
},
31+
};
32+
}

0 commit comments

Comments
 (0)