Browse Source

Update FPS_Controls;

bjorn 3 years ago
parent
commit
dbdf72d7d8

+ 0 - 151
examples/Debugging/FPS_Controls/lovr-keyboard.lua

@@ -1,151 +0,0 @@
-local ffi = require 'ffi'
-local C = ffi.os == 'Windows' and ffi.load('glfw3') or ffi.C
-
-ffi.cdef [[
-  typedef struct GLFWwindow GLFWwindow;
-  typedef void(*GLFWkeyfun)(GLFWwindow*, int, int, int, int);
-
-  GLFWwindow* glfwGetCurrentContext(void);
-  int glfwGetKey(GLFWwindow* window, int key);
-  GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun callback);
-]]
-
-local window = C.glfwGetCurrentContext()
-
-local keymap = {
-  ['space'] = 32,
-  ['\''] = 39,
-  [','] = 44,
-  ['-'] = 45,
-  ['.'] = 46,
-  ['/'] = 47,
-
-  ['0'] = 48,
-  ['1'] = 49,
-  ['2'] = 50,
-  ['3'] = 51,
-  ['4'] = 52,
-  ['5'] = 53,
-  ['6'] = 54,
-  ['7'] = 55,
-  ['8'] = 56,
-  ['9'] = 57,
-
-  [';'] = 59,
-  ['='] = 61,
-
-  ['a'] = 65,
-  ['b'] = 66,
-  ['c'] = 67,
-  ['d'] = 68,
-  ['e'] = 69,
-  ['f'] = 70,
-  ['g'] = 71,
-  ['h'] = 72,
-  ['i'] = 73,
-  ['j'] = 74,
-  ['k'] = 75,
-  ['l'] = 76,
-  ['m'] = 77,
-  ['n'] = 78,
-  ['o'] = 79,
-  ['p'] = 80,
-  ['q'] = 81,
-  ['r'] = 82,
-  ['s'] = 83,
-  ['t'] = 84,
-  ['u'] = 85,
-  ['v'] = 86,
-  ['w'] = 87,
-  ['x'] = 88,
-  ['y'] = 89,
-  ['z'] = 90,
-
-  ['['] = 91,
-  ['\\'] = 92,
-  [']'] = 93,
-  ['`'] = 96,
-
-  ['escape'] = 256,
-  ['return'] = 257,
-  ['enter'] = 257,
-  ['tab'] = 258,
-  ['backspace'] = 259,
-  ['insert'] = 260,
-  ['delete'] = 261,
-  ['right'] = 262,
-  ['left'] = 263,
-  ['down'] = 264,
-  ['up'] = 265,
-  ['pageup'] = 266,
-  ['pagedown'] = 267,
-  ['home'] = 268,
-  ['end'] = 269,
-  ['capslock'] = 280,
-  ['scrolllock'] = 281,
-  ['numlock'] = 282,
-  ['printscreen'] = 283,
-  ['pause'] = 284,
-
-  ['f1'] = 290,
-  ['f2'] = 291,
-  ['f3'] = 292,
-  ['f4'] = 293,
-  ['f5'] = 294,
-  ['f6'] = 295,
-  ['f7'] = 296,
-  ['f8'] = 297,
-  ['f9'] = 298,
-  ['f10'] = 299,
-  ['f11'] = 300,
-  ['f12'] = 301,
-
-  ['kp0'] = 320,
-  ['kp1'] = 321,
-  ['kp2'] = 322,
-  ['kp3'] = 323,
-  ['kp4'] = 324,
-  ['kp5'] = 325,
-  ['kp6'] = 326,
-  ['kp7'] = 327,
-  ['kp8'] = 328,
-  ['kp9'] = 329,
-  ['kp.'] = 330,
-  ['kp/'] = 331,
-  ['kp*'] = 332,
-  ['kp-'] = 333,
-  ['kp+'] = 334,
-  ['kpenter'] = 335,
-  ['kp='] = 336,
-
-  ['lshift'] = 340,
-  ['lctrl'] = 341,
-  ['lalt'] = 342,
-  ['lgui'] = 343,
-  ['rshift'] = 344,
-  ['rctrl'] = 345,
-  ['ralt'] = 346,
-  ['rgui'] = 347,
-  ['menu'] = 348
-}
-
-for k, v in pairs(keymap) do
-  keymap[v] = k
-end
-
-local keyboard = {}
-
-function keyboard.isDown(key, ...)
-  if not key then return false end
-  local keycode = keymap[key]
-  assert(keycode and type(keycode) == 'number', 'Unknown key: ' .. key)
-  return C.glfwGetKey(window, keycode) == 1 or keyboard.isDown(...)
-end
-
-C.glfwSetKeyCallback(window, function(window, key, scancode, action, mods)
-  if action ~= 2 and keymap[key] then
-    lovr.event.push(action > 0 and 'keypressed' or 'keyreleased', keymap[key])
-  end
-end)
-
-return keyboard

+ 3 - 3
examples/Debugging/FPS_Controls/lovr-mouse.lua

@@ -27,7 +27,7 @@ ffi.cdef [[
   typedef void(*GLFWcursorposfun)(GLFWwindow*, double, double);
   typedef void(*GLFWscrollfun)(GLFWwindow*, double, double);
 
-  GLFWwindow* glfwGetCurrentContext(void);
+  GLFWwindow* os_get_glfw_window(void);
   void glfwGetInputMode(GLFWwindow* window, int mode);
   void glfwSetInputMode(GLFWwindow* window, int mode, int value);
   void glfwGetCursorPos(GLFWwindow* window, double* x, double* y);
@@ -42,7 +42,7 @@ ffi.cdef [[
   GLFWcursorposfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun callback);
 ]]
 
-local window = C.glfwGetCurrentContext()
+local window = C.os_get_glfw_window()
 
 local mouse = {}
 
@@ -51,7 +51,7 @@ local mouse = {}
 function mouse.getScale()
   local x, _ = ffi.new('int[1]'), ffi.new('int[1]')
   C.glfwGetWindowSize(window, x, _)
-  return lovr.graphics.getWidth() / x[0]
+  return lovr.system.getWindowWidth() / x[0]
 end
 
 function mouse.getX()

+ 14 - 15
examples/Debugging/FPS_Controls/main.lua

@@ -1,4 +1,3 @@
-lovr.keyboard = require 'lovr-keyboard'
 lovr.mouse = require 'lovr-mouse'
 
 function lovr.load()
@@ -16,15 +15,15 @@ end
 function lovr.update(dt)
   local velocity = vec4()
 
-  if lovr.keyboard.isDown('w', 'up') then
+  if lovr.system.isKeyDown('w', 'up') then
     velocity.z = -1
-  elseif lovr.keyboard.isDown('s', 'down') then
+  elseif lovr.system.isKeyDown('s', 'down') then
     velocity.z = 1
   end
 
-  if lovr.keyboard.isDown('a', 'left') then
+  if lovr.system.isKeyDown('a', 'left') then
     velocity.x = -1
-  elseif lovr.keyboard.isDown('d', 'right') then
+  elseif lovr.system.isKeyDown('d', 'right') then
     velocity.x = 1
   end
 
@@ -41,19 +40,19 @@ function lovr.update(dt)
   camera.transform:rotate(camera.pitch, 1, 0, 0)
 end
 
-function lovr.draw()
-  lovr.graphics.push()
-  lovr.graphics.transform(mat4(camera.transform):invert())
-  lovr.graphics.setColor(0xff0000)
-  lovr.graphics.cube('fill', 0, 1.7, -3, .5, lovr.timer.getTime())
-  lovr.graphics.setColor(0xffffff)
-  lovr.graphics.plane('fill', 0, 0, 0, 10, 10, math.pi / 2, 1, 0, 0)
-  lovr.graphics.pop()
+function lovr.draw(pass)
+  pass:push()
+  pass:transform(mat4(camera.transform):invert())
+  pass:setColor(0xff0000)
+  pass:cube(0, 1.7, -3, .5, lovr.timer.getTime())
+  pass:setColor(0xffffff)
+  pass:plane(0, 0, 0, 10, 10, math.pi / 2, 1, 0, 0)
+  pass:pop()
 end
 
 function lovr.mousemoved(x, y, dx, dy)
-  camera.pitch = camera.pitch - dy * .001
-  camera.yaw = camera.yaw - dx * .001
+  camera.pitch = camera.pitch - dy * .004
+  camera.yaw = camera.yaw - dx * .004
 end
 
 function lovr.keypressed(key)