Difference between revisions of "TntVirtualPad"
m (Text replacement - "<source" to "<syntaxhighlight") |
|||
Line 6: | Line 6: | ||
=== Description === | === Description === | ||
Adds a virtual pad to your game/app screen. | Adds a virtual pad to your game/app screen. | ||
− | < | + | <syntaxhighlight lang="lua"> |
require "tntvirtualpad" | require "tntvirtualpad" | ||
</source> | </source> | ||
Line 17: | Line 17: | ||
=== Example === | === Example === | ||
'''Add a virtual pad to your scene''' | '''Add a virtual pad to your scene''' | ||
− | < | + | <syntaxhighlight lang="lua"> |
require "tntvirtualpad" | require "tntvirtualpad" | ||
Revision as of 14:31, 13 July 2023
Supported platforms:
Available since: Gideros 2019.4
Description
Adds a virtual pad to your game/app screen. <syntaxhighlight lang="lua"> require "tntvirtualpad" </source>
You can find the graphics for the pads and the text file that comes with it:
Example
Add a virtual pad to your scene <syntaxhighlight lang="lua"> require "tntvirtualpad"
LevelX = Core.class(Sprite)
function LevelX:init() -- bg application:setBackgroundColor(0x0099a0) -- tnt virtual pad local texturevpad = TexturePack.new("gfx/UI/TNTVirtualPad.txt", "gfx/UI/TNTVirtualPadX.png", true) self.vPad = CTNTVirtualPad.new(self, texturevpad, PAD.STICK_SINGLE, PAD.BUTTONS_ONE, 100, 0) self.vPad:setJoyStyle(PAD.COMPO_LEFTPAD, PAD.STYLE_FOLLOW) self.vPad:setScale(PAD.COMPO_LEFTPAD, 1) self.vPad:setScale(PAD.COMPO_BUTTON1, 1) self.vPad:setHideDelay(5000) self.vPad:start() -- tnt virtual pad listeners self.vPad:addEventListener(PAD.LEFTPAD_EVENT, self.onVKeyDown, self) self.vPad:addEventListener(PAD.BUTTON1_EVENT, self.vShoot, self) end
-- VIRTUAL PAD HANDLER function LevelX:onVKeyDown(event) print(event.data.power) print(event.data.angle) print(math.cos(event.data.angle)) print(math.sin(event.data.angle)) -- example usage --self.player.posx += self.player.vx * math.cos(event.data.angle) --self.player.posy += self.player.vy * math.sin(event.data.angle) --if math.cos(event.data.angle) < 0 then self.player:setSkew(5, -5) --elseif math.cos(event.data.angle) > 0 then self.player:setSkew(-5, 5) --else self.player:setSkew(0, 0) --end end
function LevelX:vShoot(event) if event.data.state == PAD.STATE_BEGIN then -- example usage --local missile = Missiles.new(self.player.posx, self.player.posy - 12) --table.insert(self.missiles_list, missile) end end </source>