-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkbmode.lua
73 lines (59 loc) · 1.82 KB
/
kbmode.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
local xpos = 320 --Mouse X position
local ypos = 240 --Mouse Y position
local kpressed = false --Key is pressed
local movement = {0,0,0,0} --Movement up,down,left,right
local f_curspeed = function() --Get mouse speed
return 200*math.max(xpos*2/640,ypos*2/480)
end
local curspeed = f_curspeed()
local cacursor = love.graphics.newImage("graphics/cacursor.png")
local kbmode = {}
function kbmode.draw()
love.graphics.setColor(1,1,1,1)
love.graphics.draw(cacursor,xpos,ypos)
end
function kbmode.update(dt)
ypos = ypos + (movement[2]-movement[1])*curspeed*dt
xpos = xpos + (movement[4]-movement[3])*curspeed*dt
end
function kbmode.keypressed(key)
if not kpressed and (key == "return" or key == "space") then
love.event.push("mousepressed",xpos,ypos,1,false)
kpressed = true
return true
elseif key == "w" or key == "up" then
movement[1] = 1
elseif key == "s" or key == "down" then
movement[2] = 1
elseif key == "a" or key == "left" then
movement[3] = 1
elseif key == "d" or key == "right" then
movement[4] = 1
end
return false
end
function kbmode.keyreleased(key)
if kpressed and (key == "return" or key == "space") then
love.event.push("mousereleased",xpos,ypos,1,false)
kpressed = false
return true
elseif key == "w" or key == "up" then
movement[1] = 0
elseif key == "s" or key == "down" then
movement[2] = 0
elseif key == "a" or key == "left" then
movement[3] = 0
elseif key == "d" or key == "right" then
movement[4] = 0
end
return false
end
function kbmode.getPos() --Get current position
return xpos,ypos
end
function kbmode.setPos(x,y) --Set position (screen size is double x and y)
xpos = x
ypos = y
curspeed = f_curspeed()
end
return kbmode