Create JoypadIntersection.lua
Adds a small script which, when run, only allows input to P1's controller if both P1 and P2 holds down the specific button simultaneously. Also useful since it demonstrates joypad manipulation.
This commit is contained in:
parent
e808618981
commit
0a82411c21
|
@ -0,0 +1,57 @@
|
|||
---------------------------------------------------------
|
||||
-- Small script for only allowing input on P1 controller
|
||||
-- if both P1 and P2 holds down a specific input
|
||||
--
|
||||
-- Note that this script only works on systems which
|
||||
-- has two or more joypads (such as NES) and not on
|
||||
-- systems with just one joypad (such as Gameboy)
|
||||
--
|
||||
-- Author: Gikkman
|
||||
---------------------------------------------------------
|
||||
|
||||
-- Pre-made array for resetting the P1 joypad
|
||||
local reset = joypad.get(1)
|
||||
for k,v in pairs(reset) do
|
||||
reset[k] = ''
|
||||
end
|
||||
|
||||
event.onframestart( function()
|
||||
local p1 = joypad.get(1)
|
||||
local p2 = joypad.get(2)
|
||||
local consolidated = intersection(p1, p2)
|
||||
|
||||
gui.drawText(0,10, 'P1: ' .. dump(p1))
|
||||
gui.drawText(0,25, 'P2: ' .. dump(p2))
|
||||
|
||||
joypad.set(consolidated, 1)
|
||||
end )
|
||||
|
||||
event.onframeend( function()
|
||||
joypad.set(reset, 1)
|
||||
end )
|
||||
|
||||
-- Get intersection of P1 and P2 joypads
|
||||
function intersection(p1, p2)
|
||||
local ret = {}
|
||||
for k,v in pairs(p1) do
|
||||
ret[k] = p1[k] and p2[k]
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
-- Print all pressed buttons
|
||||
function dump(o)
|
||||
local s = ''
|
||||
for k,v in pairs(o) do
|
||||
if v then s = s .. tostring(k) .. ' ' end
|
||||
end
|
||||
return s
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------
|
||||
-- Main loop --
|
||||
--------------------------------------
|
||||
while true do
|
||||
emu.frameadvance()
|
||||
end
|
Loading…
Reference in New Issue