-
Notifications
You must be signed in to change notification settings - Fork 0
/
control.lua
57 lines (48 loc) · 1.66 KB
/
control.lua
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
local Config = require('config')
local Paddle = require('paddle')
local Menu = require('gui')
local Ball = require('ball')
local function isKeyDown (key)
return love.keyboard.isDown(key);
end
function love.keypressed(key, scancode, isrepeat)
if key == "escape" then
Menu.isVisible = not Menu.isVisible
Config.isPaused = Menu.isVisible
end
if Menu.isVisible then
if key == "return" then
local selectedOption = Menu.options[Menu.selectedItem]
if selectedOption and selectedOption.action then
selectedOption.action()
end
end
if key == "up" then
Menu.selectedItem = Menu.selectedItem - 1
if Menu.selectedItem < 1 then
Menu.selectedItem = #Menu.options
end
elseif key == "down" then
Menu.selectedItem = Menu.selectedItem + 1
if Menu.selectedItem > #Menu.options then
Menu.selectedItem = 1
end
end
end
end
local Control = {}
function Control.inputLogic(dt)
if not Config.isPaused then
if (isKeyDown("up") or isKeyDown("z") or isKeyDown("w")) and Paddle.isNotTouchTopLimit(Config.Player.posY) then
Config.Player.posY = Config.Player.posY - Config.Paddle.speedVel * dt
elseif (isKeyDown("down") or isKeyDown("s")) and Paddle.isNotTouchBottomLimit(Config.Player.posY) then
Config.Player.posY = Config.Player.posY + Config.Paddle.speedVel * dt
end
else
if isKeyDown("space") then
Config.isPaused = not Config.isPaused
Ball.generateRandomPos()
end
end
end
return Control;