Skip to main content
Skip to main content

HUDDisplayElement

HUDDisplayElement

Description

HUD display element whose subclasses implement more complex HUD display subsystems.

Parent

HUDElement

Functions

animateHide

Description

Animate this element on hiding.

Definition

animateHide()

Code

function HUDDisplayElement:animateHide()
local transX, transY = self:getHidingTranslation()
local startX, startY = self:getPosition()

local sequence = TweenSequence.new( self )
sequence:insertTween( MultiValueTween.new( self.setPosition, { startX, startY } , { startX + transX, startY + transY } , HUDDisplayElement.MOVE_ANIMATION_DURATION), 0 )
sequence:addCallback( self.onAnimateVisibilityFinished, false )
sequence:start()
self.animation = sequence
end

animateShow

Description

Animate this element on showing.

Definition

animateShow()

Code

function HUDDisplayElement:animateShow()
HUDDisplayElement:superClass().setVisible( self , true )

local startX, startY = self:getPosition()

local sequence = TweenSequence.new( self )
sequence:insertTween( MultiValueTween.new( self.setPosition, { startX, startY } , { self.origX, self.origY } , HUDDisplayElement.MOVE_ANIMATION_DURATION), 0 )
sequence:addCallback( self.onAnimateVisibilityFinished, true )
sequence:start()
self.animation = sequence
end

animationSetPositionX

Description

Animation setter function for X position.

Definition

animationSetPositionX()

Arguments

anyx

Code

function HUDDisplayElement:animationSetPositionX(x)
self:setPosition(x, nil )
end

animationSetPositionY

Description

Animation setter function for Y position.

Definition

animationSetPositionY()

Arguments

anyy

Code

function HUDDisplayElement:animationSetPositionY(y)
self:setPosition( nil , y)
end

getHidingTranslation

Description

Get the screen space translation for hiding. Override in sub-classes if a different translation is required.

Definition

getHidingTranslation()

Return Values

anyScreenspace X translation
anyScreenspace Y translation

Code

function HUDDisplayElement:getHidingTranslation()
return 0 , - 0.5
end

new

Description

Create a new HUD display element.

Definition

new(table subClass, table overlay, table? parentHudElement)

Arguments

tablesubClassSubclass metatable for inheritance
tableoverlayWrapped Overlay instance
table?parentHudElement[optional] Parent HUD element of the newly created HUD element

Return Values

table?HUDDisplayElementinstance

Code

function HUDDisplayElement.new(overlay, parentHudElement, customMt)
local self = HUDDisplayElement:superClass().new(overlay, parentHudElement, customMt or HUDDisplayElement _mt)

self.origX, self.origY = 0 , 0 -- original positions, stored to support stable animation states
self.animationState = nil

return self
end

onAnimateVisibilityFinished

Description

Called when a hiding or showing animation has finished.

Definition

onAnimateVisibilityFinished()

Arguments

anyisVisible

Code

function HUDDisplayElement:onAnimateVisibilityFinished(isVisible)
if not isVisible then -- delayed call when hiding
HUDDisplayElement:superClass().setVisible( self , isVisible)
end
end

setScale

Description

Simplification of scale setter because these high-level elements always use a uniform scale.

Definition

setScale()

Arguments

anyuiScale

Code

function HUDDisplayElement:setScale(uiScale)
HUDDisplayElement:superClass().setScale( self , uiScale, uiScale)
end

setVisible

Description

Set this element's visibility with optional animation.

Definition

setVisible(boolean isVisible, boolean animate)

Arguments

booleanisVisibleTrue is visible, false is not.
booleananimateIf true, the element will play an animation before applying the visibility change.

Code

function HUDDisplayElement:setVisible(isVisible, animate)
if animate and self.animation:getFinished() then
if isVisible then
self:animateShow()
else
self:animateHide()
end
else
self.animation:stop()
HUDDisplayElement:superClass().setVisible( self , isVisible)

local posX, posY = self:getPosition()
local transX, transY = self:getHidingTranslation()
if isVisible then
self:setPosition( self.origX, self.origY)
else
self:setPosition(posX + transX, posY + transY)
end
end

self.animationState = isVisible
end

storeOriginalPosition

Description

Store the current element position as its original positions.

Definition

storeOriginalPosition()

Code

function HUDDisplayElement:storeOriginalPosition()
self.origX, self.origY = self:getPosition()
end