]> Untitled Git - lightcycles-love.git/commitdiff
Prevent player from switching vector quickly by holding multiple keys
authorClifton James Palmer <clifton.palmer@gmail.com>
Sat, 8 Dec 2018 14:49:32 +0000 (08:49 -0600)
committerClifton James Palmer <clifton.palmer@gmail.com>
Sat, 8 Dec 2018 14:49:32 +0000 (08:49 -0600)
player.lua

index 0e707f82858272a614287e75f29db65000bf852f..387b54f303c8bdd7f1a79afb9934ffbd0fa63d6f 100644 (file)
@@ -54,15 +54,27 @@ function Player:recordPosition()
     table.insert(self.path, self.position.y + self.height/2)
 end
 
+function Player:multiple_keys_are_pressed()
+    local count = 0
+    for key,_ in pairs(self.keys) do
+        if love.keyboard.isDown(key) then
+            count = count + 1
+        end
+    end
+    return count > 1
+end
+
 function Player:update(dt)
-    for key, name in pairs(self.keys) do
-        if love.keyboard.isDown(key)
-        and self.vector ~= self.vectors[name]
-        and (self.vector + self.vectors[name]):length() > 0
-        then
-            self.vector = self.vectors[name]
-            self:recordPosition()
-            break
+    if not self:multiple_keys_are_pressed() then
+        for key, name in pairs(self.keys) do
+            if love.keyboard.isDown(key)
+            and self.vector ~= self.vectors[name]
+            and (self.vector + self.vectors[name]):length() > 0
+            then
+                self.vector = self.vectors[name]
+                self:recordPosition()
+                break
+            end
         end
     end
     self.position = self.position + self.vector * self.acceleration * dt