Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Project OLED: Open Leadwerks Examples and Demo's project

Recommended Posts

  • 1 month later...
  • 2 weeks later...
  • 8 months later...

Virtual keys snippet moved to OLED project. https://bitbucket.org/Aggror/projectoled/src/master/Scripts/Input/input.lua

Youtube tutorial

Download the script and put it somewhere in your scripts folder. My example uses Scripts/Input/input.lua

I use main.lua to import it. Add this to your main lua: 

import "Scripts/Input/input.lua"

Before the main loop add the following:

input = Input:Create() -- I like input as a global variable, since you use it in many places
input:SetVirtualKey("RocketBoost", "Tab", "R") -- Add custom virtual key
input:DebugVirtualKeys() --prints all existing virtual keys to the screen

In your main loop you can now do these things:

if input:VirtualKeyHit("RocketBoost") then System:Print("ROCKETBOOOSTING using Tab or ALt") end
if input:KeyHit("E") then System:Print("E hit") end
if input:KeyHit("E") then System:Print("E hit second time") end
if input:KeyDown("Q") then System:Print("Q down") end
if input:MouseHit("LButton") then System:Print("Left mouse button click") end
if input:MouseDown("MButton") then System:Print("Middle mouse down") end
if input:VirtualKeyHit("Jump") then System:Print("jump hit") end
if input:VirtualKeyDown("Forward") then System:Print("moving forward using W or Up arrow") end

By default there are a couple of Virtual keys (just like you were used in Unity). You can either change the input.lua script or add/overwrite with the SetVirtualKeyCommand()

obj.virtualKeys["Forward"] =        { primaryKey = "W",         secondaryKey = "Up" }
obj.virtualKeys["Backward"] =       { primaryKey = "S",         secondaryKey = "Down" }
obj.virtualKeys["Left"] =           { primaryKey = "A",         secondaryKey = "Left" }
obj.virtualKeys["Right"] =          { primaryKey = "D",         secondaryKey = "Right" }
obj.virtualKeys["Jump"] =           { primaryKey = "Space" }
obj.virtualKeys["Use"] =            { primaryKey = "E" }
obj.virtualKeys["Fire"] =           { primaryKey = "Lbutton" }
obj.virtualKeys["SecondaryFire"] =  { primaryKey = "Rbutton" }
obj.virtualKeys["SpecialFire"] =    { primaryKey = "Mbutton" }

Some other usefull functions for in your game loop:

if input:Any() then System:Print("Any input detected. So keyboard or mouse.") end
if input:AnyKey() then System:Print("Any keyboard input.") end
if input:AnyMouse() then System:Print("Any mouse input detected (besides movement)") end


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Facebook Twitter Youtube Github Steam
  • Create New...