Difference between revisions of "Tactile"

(Created page with "'''Tactile''' is a flexible and straightforward input library for LÖVE to help you manage multiple input sources. Get the code on [https://github.com/tesselode/tactile GitHub...")
 
m (Added: Other Languages)
 
(4 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
<source lang="lua">
 
<source lang="lua">
function love.load()
+
Control = {
  tactile = require 'tactile'
+
   Horizontal = tactile.newControl()
 
+
    :addAxis(tactile.gamepadAxis(1, 'leftx'))
  --button detectors
+
     :addButtonPair(tactile.keys 'left', tactile.keys 'right'),
   keyboardLeft  = tactile.key('left')
+
   Fire = tactile.newControl()
  keyboardRight = tactile.key('right')
+
    :addButton(tactile.gamepadButtons(1, 'a'))
  keyboardX     = tactile.key('x')
+
    :addButton(tactile.keys 'x')
  gamepadA      = tactile.gamepadButton('a', 1) --the second argument is controller number, in case you're wondering
+
}
 
 
  --axis detectors
 
   keyboardXAxis = tactile.binaryAxis(keyboardLeft, keyboardRight)
 
  gamepadXAxis  = tactile.analogStick('leftx', 1)
 
 
 
  --controls
 
  horizontal    = tactile.addAxis(keyboardXAxis, gamepadXAxis)
 
  shoot        = tactile.addButton(keyboardX, gamepadA)
 
end
 
  
 
function love.update(dt)
 
function love.update(dt)
   --you have to update buttons, sorry for the extra step :(
+
   Control.Horizontal:update()
  shoot:update()
+
   Control.Fire:update()
 
 
  --movement
 
   player.x = player.x + player.speed * horizontal:getValue() * dt
 
  
   --shooting
+
   player.x = player.x + player.speed * Control.Horizontal() * dt
   if shoot:pressed() then
+
   if Control.Fire:isDown() then
 
     player:shoot()
 
     player:shoot()
 
   end
 
   end
 
end
 
end
 
</source>
 
</source>
 +
{{#set:LOVE Version=0.10.x}}
 +
{{#set:Description=A flexible and nice input library.}}
 +
{{#set:Keyword=Input}}
 +
[[Category:Libraries]]
 +
== Other Languages ==
 +
{{i18n|Tactile}}

Latest revision as of 14:26, 15 December 2019

Tactile is a flexible and straightforward input library for LÖVE to help you manage multiple input sources. Get the code on GitHub.

Control = {
  Horizontal = tactile.newControl()
    :addAxis(tactile.gamepadAxis(1, 'leftx'))
    :addButtonPair(tactile.keys 'left', tactile.keys 'right'),
  Fire = tactile.newControl()
    :addButton(tactile.gamepadButtons(1, 'a'))
    :addButton(tactile.keys 'x')
}

function love.update(dt)
  Control.Horizontal:update()
  Control.Fire:update()

  player.x = player.x + player.speed * Control.Horizontal() * dt
  if Control.Fire:isDown() then
    player:shoot()
  end
end

Other Languages