Difference between revisions of "TntVirtualPad"

From GiderosMobile
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.
<source lang="lua">
+
<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'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
require "tntvirtualpad"
 
require "tntvirtualpad"
  

Revision as of 15:31, 13 July 2023

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
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:

TNTVirtualPad.png

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>

Methods

CTNTVirtualPad.new creates a new VPAD object class

CTNTVirtualPad:free frees the VPAD
CTNTVirtualPad:setAlpha sets VPAD alpha values
CTNTVirtualPad:setColor sets VPAD colors
CTNTVirtualPad:setDefaultButtonSprites sets VPAD default buttons sprites !warning!
CTNTVirtualPad:setDefaultJoySprites sets VPAD default joysticks sprites !warning!
CTNTVirtualPad:setHideDelay sets VPAD hide delay
CTNTVirtualPad:setHideMode sets VPAD hide mode
CTNTVirtualPad:setJoyAsAnalog sets VPAD joysticks analog mode
CTNTVirtualPad:setJoyStyle sets VPAD joysticks movement style
CTNTVirtualPad:setMaxRadius sets VPAD max touch radius
CTNTVirtualPad:setPosition sets VPAD joysticks positions
CTNTVirtualPad:setScale sets VPAD joysticks scale
CTNTVirtualPad:setTextures sets VPAD components textures
CTNTVirtualPad:start starts the VPAD
CTNTVirtualPad:stop stops the VPAD

Events

PAD.LEFTPAD_EVENT Event on the left pad
PAD.RIGHTPAD_EVENT Event on the right pad

PAD.BUTTON1_EVENT Event on the button 1
PAD.BUTTON2_EVENT Event on the button 2
PAD.BUTTON3_EVENT Event on the button 3
PAD.BUTTON4_EVENT Event on the button 4
PAD.BUTTON5_EVENT Event on the button 5
PAD.BUTTON6_EVENT Event on the button 6

Constants

PAD.BUTTONS_NONE
PAD.BUTTONS_ONE
PAD.BUTTONS_TWO
PAD.BUTTONS_THREE
PAD.BUTTONS_FOUR
PAD.BUTTONS_FIVE
PAD.BUTTONS_SIX

PAD.COMPO_BUTTON1
PAD.COMPO_BUTTON2
PAD.COMPO_BUTTON3
PAD.COMPO_BUTTON4
PAD.COMPO_BUTTON5
PAD.COMPO_BUTTON6
PAD.COMPO_LEFTPAD
PAD.COMPO_RIGHTPAD

PAD.MODE_NOHIDE
PAD.MODE_GHOST
PAD.MODE_HIDDEN

PAD.STICK_NONE
PAD.STICK_SINGLE
PAD.STICK_DOUBLE

PAD.STYLE_CLASSIC
PAD.STYLE_MOVABLE
PAD.STYLE_FOLLOW