mirror of
https://github.com/TangentFoxy/baton.git
synced 2025-07-27 18:42:19 +00:00
update demo for love 11.x
This commit is contained in:
144
main.lua
144
main.lua
@@ -1,18 +1,18 @@
|
||||
local baton = require 'baton'
|
||||
|
||||
local player = baton.new {
|
||||
controls = {
|
||||
left = {'key:left', 'axis:leftx-', 'button:dpleft'},
|
||||
right = {'key:right', 'axis:leftx+', 'button:dpright'},
|
||||
up = {'key:up', 'axis:lefty-', 'button:dpup'},
|
||||
down = {'key:down', 'axis:lefty+', 'button:dpdown'},
|
||||
action = {'key:x', 'button:a', 'mouse:1'},
|
||||
},
|
||||
pairs = {
|
||||
move = {'left', 'right', 'up', 'down'}
|
||||
},
|
||||
joystick = love.joystick.getJoysticks()[1],
|
||||
deadzone = .33,
|
||||
controls = {
|
||||
left = {'key:left', 'axis:leftx-', 'button:dpleft'},
|
||||
right = {'key:right', 'axis:leftx+', 'button:dpright'},
|
||||
up = {'key:up', 'axis:lefty-', 'button:dpup'},
|
||||
down = {'key:down', 'axis:lefty+', 'button:dpdown'},
|
||||
action = {'key:x', 'button:a', 'mouse:1'},
|
||||
},
|
||||
pairs = {
|
||||
move = {'left', 'right', 'up', 'down'}
|
||||
},
|
||||
joystick = love.joystick.getJoysticks()[1],
|
||||
deadzone = .33,
|
||||
}
|
||||
|
||||
local pairDisplayAlpha = 0
|
||||
@@ -24,82 +24,82 @@ local updates = 0
|
||||
local updateTime = 0
|
||||
|
||||
function love.update(dt)
|
||||
local time = love.timer.getTime()
|
||||
|
||||
player:update()
|
||||
local time = love.timer.getTime()
|
||||
|
||||
pairDisplayTargetAlpha = player:pressed 'move' and 255
|
||||
or player:released 'move' and 255
|
||||
or player:down 'move' and 100
|
||||
or 0
|
||||
if pairDisplayAlpha > pairDisplayTargetAlpha then
|
||||
pairDisplayAlpha = pairDisplayAlpha - 1000 * dt
|
||||
end
|
||||
if pairDisplayAlpha < pairDisplayTargetAlpha then
|
||||
pairDisplayAlpha = pairDisplayTargetAlpha
|
||||
end
|
||||
player:update()
|
||||
|
||||
buttonDisplayTargetAlpha = player:pressed 'action' and 255
|
||||
or player:released 'action' and 255
|
||||
or player:down 'action' and 100
|
||||
or 0
|
||||
if buttonDisplayAlpha > buttonDisplayTargetAlpha then
|
||||
buttonDisplayAlpha = buttonDisplayAlpha - 1000 * dt
|
||||
end
|
||||
if buttonDisplayAlpha < buttonDisplayTargetAlpha then
|
||||
buttonDisplayAlpha = buttonDisplayTargetAlpha
|
||||
end
|
||||
pairDisplayTargetAlpha = player:pressed 'move' and 1
|
||||
or player:released 'move' and 1
|
||||
or player:down 'move' and .5
|
||||
or 0
|
||||
if pairDisplayAlpha > pairDisplayTargetAlpha then
|
||||
pairDisplayAlpha = pairDisplayAlpha - 4 * dt
|
||||
end
|
||||
if pairDisplayAlpha < pairDisplayTargetAlpha then
|
||||
pairDisplayAlpha = pairDisplayTargetAlpha
|
||||
end
|
||||
|
||||
updateTime = updateTime + (love.timer.getTime() - time)
|
||||
updates = updates + 1
|
||||
buttonDisplayTargetAlpha = player:pressed 'action' and 1
|
||||
or player:released 'action' and 1
|
||||
or player:down 'action' and .5
|
||||
or 0
|
||||
if buttonDisplayAlpha > buttonDisplayTargetAlpha then
|
||||
buttonDisplayAlpha = buttonDisplayAlpha - 4 * dt
|
||||
end
|
||||
if buttonDisplayAlpha < buttonDisplayTargetAlpha then
|
||||
buttonDisplayAlpha = buttonDisplayTargetAlpha
|
||||
end
|
||||
|
||||
updateTime = updateTime + (love.timer.getTime() - time)
|
||||
updates = updates + 1
|
||||
end
|
||||
|
||||
function love.keypressed(key)
|
||||
if key == 'escape' then
|
||||
love.event.quit()
|
||||
end
|
||||
if key == 'tab' then
|
||||
player.controls.action[1] = 'key:z'
|
||||
end
|
||||
if key == 'escape' then
|
||||
love.event.quit()
|
||||
end
|
||||
if key == 'tab' then
|
||||
player.controls.action[1] = 'key:z'
|
||||
end
|
||||
end
|
||||
|
||||
local pairDisplayRadius = 128
|
||||
|
||||
function love.draw()
|
||||
love.graphics.setColor(255, 255, 255)
|
||||
love.graphics.print('Current active device: ' .. tostring(player:getActiveDevice()))
|
||||
love.graphics.print('Average update time (us): ' .. math.floor(updateTime/updates*1000000), 0, 16)
|
||||
love.graphics.print('Memory usage (kb): ' .. math.floor(collectgarbage 'count'), 0, 32)
|
||||
love.graphics.setColor(1, 1, 1)
|
||||
love.graphics.print('Current active device: ' .. tostring(player:getActiveDevice()))
|
||||
love.graphics.print('Average update time (us): ' .. math.floor(updateTime/updates*1000000), 0, 16)
|
||||
love.graphics.print('Memory usage (kb): ' .. math.floor(collectgarbage 'count'), 0, 32)
|
||||
|
||||
love.graphics.push()
|
||||
love.graphics.translate(400, 300)
|
||||
love.graphics.push()
|
||||
love.graphics.translate(400, 300)
|
||||
|
||||
love.graphics.setColor(50, 50, 50, pairDisplayAlpha)
|
||||
love.graphics.circle('fill', 0, 0, pairDisplayRadius)
|
||||
love.graphics.setColor(.25, .25, .25, pairDisplayAlpha)
|
||||
love.graphics.circle('fill', 0, 0, pairDisplayRadius)
|
||||
|
||||
love.graphics.setColor(255, 255, 255)
|
||||
love.graphics.circle('line', 0, 0, pairDisplayRadius)
|
||||
love.graphics.setColor(1, 1, 1)
|
||||
love.graphics.circle('line', 0, 0, pairDisplayRadius)
|
||||
|
||||
local r = pairDisplayRadius * player.config.deadzone
|
||||
if player.config.squareDeadzone then
|
||||
love.graphics.rectangle('line', -r, -r, r*2, r*2)
|
||||
else
|
||||
love.graphics.circle('line', 0, 0, r)
|
||||
end
|
||||
local r = pairDisplayRadius * player.config.deadzone
|
||||
if player.config.squareDeadzone then
|
||||
love.graphics.rectangle('line', -r, -r, r*2, r*2)
|
||||
else
|
||||
love.graphics.circle('line', 0, 0, r)
|
||||
end
|
||||
|
||||
love.graphics.setColor(150, 150, 150)
|
||||
local x, y = player:getRaw 'move'
|
||||
love.graphics.circle('fill', x*pairDisplayRadius,
|
||||
y*pairDisplayRadius, 4)
|
||||
love.graphics.setColor(255, 255, 255)
|
||||
local x, y = player:get 'move'
|
||||
love.graphics.circle('fill', x*pairDisplayRadius,
|
||||
y*pairDisplayRadius, 4)
|
||||
love.graphics.setColor(.5, .5, .5)
|
||||
local x, y = player:getRaw 'move'
|
||||
love.graphics.circle('fill', x*pairDisplayRadius,
|
||||
y*pairDisplayRadius, 4)
|
||||
love.graphics.setColor(1, 1, 1)
|
||||
x, y = player:get 'move'
|
||||
love.graphics.circle('fill', x*pairDisplayRadius,
|
||||
y*pairDisplayRadius, 4)
|
||||
|
||||
love.graphics.setColor(255, 255, 255)
|
||||
love.graphics.rectangle('line', -50, 150, 100, 100)
|
||||
love.graphics.setColor(255, 255, 255, buttonDisplayAlpha)
|
||||
love.graphics.rectangle('fill', -50, 150, 100, 100)
|
||||
love.graphics.setColor(1, 1, 1)
|
||||
love.graphics.rectangle('line', -50, 150, 100, 100)
|
||||
love.graphics.setColor(1, 1, 1, buttonDisplayAlpha)
|
||||
love.graphics.rectangle('fill', -50, 150, 100, 100)
|
||||
|
||||
love.graphics.pop()
|
||||
love.graphics.pop()
|
||||
end
|
Reference in New Issue
Block a user