--create a new EventManager evman = EventManager:new() --add an event to exit when ESC is pressed -- assumes main loop is controlled by variable "done" evman.keyboard.pressed[Keys.ESCAPE] = function() done = true end --events to control a player object's movement evman.keyboard.pressed[Keys.UP] = function() player.y_vel = -1 end evman.keyboard.pressed[Keys.DOWN] = function() player.y_vel = 1 end evman.keyboard.pressed[Keys.LEFT] = function() player.x_vel = -1 end evman.keyboard.pressed[Keys.RIGHT] = function() player.x_vel = 1 end evman.keyboard.released[Keys.UP] = function() player.y_vel = 0 end evman.keyboard.released[Keys.DOWN] = function() player.y_vel = 0 end evman.keyboard.released[Keys.LEFT] = function() player.x_vel = 0 end evman.keyboard.released[Keys.RIGHT] = function() player.x_vel = 0 end --EventManager for a fictional menu object menu_evman = EventManager:new() menu_evman.keyboard.pressed[Keys.UP] = function() menu.next_item() end menu_evman.keyboard.pressed[Keys.DOWN] = function() menu.prev_item() end menu_evman.keyboard.pressed[Keys.RETURN] = function() menu.execute() end --Controlling a player with the mouse -- assume there exists a player:set_pos(x,y) method --wrapper function for player:set_pos(x,y) function move_player(x,y) player:set_pos(x,y) end evman.mouse.motion = move_player(x,y) evman.mouse.pressed[MouseButton.BUTTON_LEFT] = function() player.firing = true end evman.mouse.released[MouseButton.BUTTON_LEFT] = function() player.firing = false end --quitting (assumes main loop is controlled by done variable) evman.quit = function() done = true end