axmol/samples/Lua/TestLua/Resources/luaScript/LabelTest/LabelTest.lua

902 lines
27 KiB
Lua
Raw Normal View History

local size = CCDirector:sharedDirector():getWinSize()
local scheduler = CCDirector:sharedDirector():getScheduler()
local kTagTileMap = 1
local kTagSpriteManager = 1
local kTagAnimation1 = 1
local kTagBitmapAtlas1 = 1
local kTagBitmapAtlas2 = 2
local kTagBitmapAtlas3 = 3
local kTagSprite1 = 0
local kTagSprite2 = 1
2013-03-28 15:47:37 +08:00
local kTagSprite3 = 2
local kTagSprite4 = 3
local kTagSprite5 = 4
local kTagSprite6 = 5
local kTagSprite7 = 6
local kTagSprite8 = 7
--------------------------------------------------------------------
2013-03-28 15:47:37 +08:00
--
-- LabelAtlasTest
2013-03-28 15:47:37 +08:00
--
--------------------------------------------------------------------
local LabelAtlasTest = {}
2013-03-28 15:47:37 +08:00
LabelAtlasTest.layer = nil
LabelAtlasTest.__index = LabelAtlasTest
local m_time = 0
function LabelAtlasTest.step(dt)
2013-03-28 15:47:37 +08:00
m_time = m_time + dt
local string = string.format("%2.2f Test", m_time)
2013-03-28 15:47:37 +08:00
local label1_origin = LabelAtlasTest.layer:getChildByTag(kTagSprite1)
local label1 = tolua.cast(label1_origin, "CCLabelAtlas")
label1:setString(string) --
2013-03-28 15:47:37 +08:00
local label2_origin = LabelAtlasTest.layer:getChildByTag(kTagSprite2)
local label2 = tolua.cast(label2_origin, "CCLabelAtlas")
string = string.format("%d", m_time)
2013-03-28 15:47:37 +08:00
label2:setString(string)
end
2013-03-28 15:47:37 +08:00
function LabelAtlasTest.onNodeEvent(tag)
if tag == "exit" then
LabelAtlasTest.layer:unscheduleUpdate()
end
end
function LabelAtlasTest.create()
m_time = 0
local layer = CCLayer:create()
Helper.initWithLayer(layer)
2013-03-28 15:47:37 +08:00
LabelAtlasTest.layer = layer
local label1 = CCLabelAtlas:create("123 Test", "fonts/tuffy_bold_italic-charmap.plist")
layer:addChild(label1, 0, kTagSprite1)
label1:setPosition( ccp(10,100) )
label1:setOpacity( 200 )
local label2 = CCLabelAtlas:create("0123456789", "fonts/tuffy_bold_italic-charmap.plist")
layer:addChild(label2, 0, kTagSprite2)
label2:setPosition( ccp(10,200) )
label2:setOpacity( 32 )
2013-03-28 15:47:37 +08:00
layer:scheduleUpdateWithPriorityLua(LabelAtlasTest.step, 0)
Helper.titleLabel:setString("LabelAtlas")
Helper.subtitleLabel:setString("Updating label should be fast")
2013-03-28 15:47:37 +08:00
layer:registerScriptHandler(LabelAtlasTest.onNodeEvent)
return layer
end
--------------------------------------------------------------------
2013-03-28 15:47:37 +08:00
--
-- LabelAtlasColorTest
2013-03-28 15:47:37 +08:00
--
--------------------------------------------------------------------
local LabelAtlasColorTest = {}
2013-03-28 15:47:37 +08:00
LabelAtlasColorTest.layer = nil
LabelAtlasColorTest.__index = LabelAtlasColorTest
local m_time = 0
function LabelAtlasColorTest.step(dt)
2013-03-28 15:47:37 +08:00
m_time = m_time + dt
local string = string.format("%2.2f Test", m_time)
local label1_origin = LabelAtlasColorTest.layer:getChildByTag(kTagSprite1)
local label1 = tolua.cast(label1_origin, "CCLabelAtlas")
label1:setString(string)
2013-03-28 15:47:37 +08:00
local label2_origin = LabelAtlasColorTest.layer:getChildByTag(kTagSprite2)
local label2 = tolua.cast(label2_origin, "CCLabelAtlas")
string = string.format("%d", m_time)
2013-03-28 15:47:37 +08:00
label2:setString(string)
end
2013-03-28 15:47:37 +08:00
function LabelAtlasColorTest.actionFinishCallback()
cclog("Action finished")
end
2013-03-28 15:47:37 +08:00
function LabelAtlasColorTest.onNodeEvent(tag)
if tag == "exit" then
LabelAtlasColorTest.layer:unscheduleUpdate()
end
end
function LabelAtlasColorTest.create()
m_time = 0
local layer = CCLayer:create()
Helper.initWithLayer(layer)
2013-03-28 15:47:37 +08:00
LabelAtlasColorTest.layer = layer
local label1 = CCLabelAtlas:create("123 Test", "fonts/tuffy_bold_italic-charmap.plist")
layer:addChild(label1, 0, kTagSprite1)
label1:setPosition( ccp(10,100) )
label1:setOpacity( 200 )
local label2 = CCLabelAtlas:create("0123456789", "fonts/tuffy_bold_italic-charmap.plist")
layer:addChild(label2, 0, kTagSprite2)
label2:setPosition( ccp(10,200) )
label2:setColor(ccc3(255, 0, 0))
local fade = CCFadeOut:create(1.0)
local fade_in = fade:reverse()
local cb = CCCallFunc:create(LabelAtlasColorTest.actionFinishCallback)
local actionArr = CCArray:create()
actionArr:addObject(fade)
actionArr:addObject(fade_in)
actionArr:addObject(cb)
local seq = CCSequence:create(actionArr)
local repeatAction = CCRepeatForever:create( seq )
2013-03-28 15:47:37 +08:00
label2:runAction( repeatAction )
2013-03-28 15:47:37 +08:00
layer:registerScriptHandler(LabelAtlasColorTest.onNodeEvent)
layer:scheduleUpdateWithPriorityLua(LabelAtlasColorTest.step, 0)
Helper.titleLabel:setString("LabelAtlas")
Helper.subtitleLabel:setString("Opacity + Color should work at the same time")
return layer
end
--------------------------------------------------------------------
2013-03-28 15:47:37 +08:00
--
-- Atlas3
2013-03-28 15:47:37 +08:00
--
-- Use any of these editors to generate BMFonts:
-- http://glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http://www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http://slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2013-03-28 15:47:37 +08:00
--
--------------------------------------------------------------------
local Atlas3 = {}
2013-03-28 15:47:37 +08:00
Atlas3.layer = nil
Atlas3.__index = Atlas3
2013-03-28 15:47:37 +08:00
function Atlas3.onNodeEvent(tag)
if tag == "exit" then
Atlas3.layer:unscheduleUpdate()
end
end
function Atlas3.create()
cclog("Atlas3.create")
local layer = CCLayer:create()
Helper.initWithLayer(layer)
2013-03-28 15:47:37 +08:00
Atlas3.layer = layer
m_time = 0
local col = CCLayerColor:create( ccc4(128,128,128,255) )
layer:addChild(col, -10)
local label1 = CCLabelBMFont:create("Test", "fonts/bitmapFontTest2.fnt")
2013-03-28 15:47:37 +08:00
-- testing anchors
label1:setAnchorPoint( ccp(0,0) )
layer:addChild(label1, 0, kTagBitmapAtlas1)
2013-03-28 15:47:37 +08:00
local fade = CCFadeOut:create(1.0)
local fade_in = fade:reverse()
2013-03-28 15:47:37 +08:00
local actionArr = CCArray:create()
actionArr:addObject(fade)
actionArr:addObject(fade_in)
local seq = CCSequence:create(actionArr)
local repeatAction = CCRepeatForever:create(seq)
label1:runAction(repeatAction)
--VERY IMPORTANT
--color and opacity work OK because bitmapFontAltas2 loads a BMP image (not a PNG image)
--If you want to use both opacity and color, it is recommended to use NON premultiplied images like BMP images
--Of course, you can also tell XCode not to compress PNG images, but I think it doesn't work as expected
local label2 = CCLabelBMFont:create("Test", "fonts/bitmapFontTest2.fnt")
-- testing anchors
label2:setAnchorPoint( ccp(0.5, 0.5) )
label2:setColor(ccc3(255, 0, 0 ))
layer:addChild(label2, 0, kTagBitmapAtlas2)
2013-03-28 15:47:37 +08:00
label2:runAction( tolua.cast(repeatAction:copy():autorelease(), "CCAction") )
2013-03-28 15:47:37 +08:00
local label3 = CCLabelBMFont:create("Test", "fonts/bitmapFontTest2.fnt")
-- testing anchors
label3:setAnchorPoint( ccp(1,1) )
layer:addChild(label3, 0, kTagBitmapAtlas3)
2013-03-28 15:47:37 +08:00
label1:setPosition( VisibleRect:leftBottom() )
label2:setPosition( VisibleRect:center() )
label3:setPosition( VisibleRect:rightTop() )
2013-03-28 15:47:37 +08:00
layer:registerScriptHandler(Atlas3.onNodeEvent)
layer:scheduleUpdateWithPriorityLua(Atlas3.step, 0)
Helper.titleLabel:setString( "CCLabelBMFont" )
Helper.subtitleLabel:setString( "Testing alignment. Testing opacity + tint" )
return layer
end
function Atlas3.step(dt)
2013-03-28 15:47:37 +08:00
m_time = m_time + dt
local string = string.format("%2.2f Test j", m_time)
2013-03-28 15:47:37 +08:00
local label1 = tolua.cast(Atlas3.layer:getChildByTag(kTagBitmapAtlas1), "CCLabelBMFont")
label1:setString(string)
local label2 = tolua.cast(Atlas3.layer:getChildByTag(kTagBitmapAtlas2), "CCLabelBMFont")
label2:setString(string)
local label3 = tolua.cast(Atlas3.layer:getChildByTag(kTagBitmapAtlas3), "CCLabelBMFont")
label3:setString(string)
end
--------------------------------------------------------------------
--
-- Atlas4
--
-- Use any of these editors to generate BMFonts:
-- http:--glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http:--www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http:--slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http:--www.angelcode.com/products/bmfont/ (Free, Windows only)
--
--------------------------------------------------------------------
local Atlas4 = {}
Atlas4.layer = nil
Atlas4.__index = Atlas4
Atlas4.stepEntry = nil
function Atlas4.onNodeEvent(tag)
if tag == "enter" then
Atlas4.stepEntry = scheduler:scheduleScriptFunc(Atlas4.step, 0.1, false)
elseif tag == "exit" then
scheduler:unscheduleScriptEntry(Atlas4.stepEntry)
end
end
function Atlas4.create()
cclog("Atlas4.create")
m_time = 0
local layer = CCLayer:create()
Helper.initWithLayer(layer)
Atlas4.layer = layer
-- Upper Label
local label = CCLabelBMFont:create("Bitmap Font Atlas", "fonts/bitmapFontTest.fnt")
layer:addChild(label)
local s = CCDirector:sharedDirector():getWinSize()
label:setPosition( ccp(s.width/2, s.height/2) )
label:setAnchorPoint( ccp(0.5, 0.5) )
local BChar = label:getChildByTag(0)
local FChar = label:getChildByTag(7)
local AChar = label:getChildByTag(12)
local rotate = CCRotateBy:create(2, 360)
local rot_4ever = CCRepeatForever:create(rotate)
local scale = CCScaleBy:create(2, 1.5)
local scale_back = scale:reverse()
local action_arr = CCArray:create()
action_arr:addObject(scale)
action_arr:addObject(scale_back)
local scale_seq = CCSequence:create(action_arr)
local scale_4ever = CCRepeatForever:create(scale_seq)
local jump = CCJumpBy:create(0.5, ccp(0, 0), 60, 1)
local jump_4ever = CCRepeatForever:create(jump)
local fade_out = CCFadeOut:create(1)
local fade_in = CCFadeIn:create(1)
local action_arr2 = CCArray:create()
action_arr2:addObject(fade_out)
action_arr2:addObject(fade_in)
local seq = CCSequence:create(action_arr2)
local fade_4ever = CCRepeatForever:create(seq)
BChar:runAction(rot_4ever)
BChar:runAction(scale_4ever)
FChar:runAction(jump_4ever)
AChar:runAction(fade_4ever)
-- Bottom Label
local label2 = CCLabelBMFont:create("00.0", "fonts/bitmapFontTest.fnt")
layer:addChild(label2, 0, kTagBitmapAtlas2)
label2:setPosition( ccp(s.width/2.0, 80) )
local lastChar = label2:getChildByTag(3)
lastChar:runAction(tolua.cast( rot_4ever:copy():autorelease(), "CCAction" ))
layer:registerScriptHandler(Atlas4.onNodeEvent)
Helper.titleLabel:setString("CCLabelBMFont")
Helper.subtitleLabel:setString( "Using fonts as CCSprite objects. Some characters should rotate.")
return layer
end
function Atlas4.draw()
local s = CCDirector:sharedDirector():getWinSize()
ccDrawLine( ccp(0, s.height/2), ccp(s.width, s.height/2) )
ccDrawLine( ccp(s.width/2, 0), ccp(s.width/2, s.height) )
end
function Atlas4.step(dt)
m_time = m_time + dt
local string = string.format("%04.1f", m_time)
local label1 = tolua.cast(Atlas4.layer:getChildByTag(kTagBitmapAtlas2), "CCLabelBMFont")
label1:setString(string)
2013-03-28 15:47:37 +08:00
end
--------------------------------------------------------------------
--
-- Atlas5
--
-- Use any of these editors to generate BMFonts:
-- http:--glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http:--www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http:--slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http:--www.angelcode.com/products/bmfont/ (Free, Windows only)
--
--------------------------------------------------------------------
local Atlas5 = {}
Atlas5.layer = nil
function Atlas5:create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
Atlas5.layer = layer
local label = CCLabelBMFont:create("abcdefg", "fonts/bitmapFontTest4.fnt")
layer:addChild(label)
local s = CCDirector:sharedDirector():getWinSize()
label:setPosition( ccp(s.width/2, s.height/2) )
label:setAnchorPoint( ccp(0.5, 0.5) )
Helper.titleLabel:setString("CCLabelBMFont")
Helper.subtitleLabel:setString("Testing padding")
return layer
end
--------------------------------------------------------------------
--
-- Atlas6
--
-- Use any of these editors to generate BMFonts:
-- http:--glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http:--www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http:--slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http:--www.angelcode.com/products/bmfont/ (Free, Windows only)
--
--------------------------------------------------------------------
local Atlas6 = {}
Atlas6.layer = nil
function Atlas6:create()
cclog("Atlas6:create")
local layer = CCLayer:create()
Helper.initWithLayer(layer)
Atlas6.layer = layer
local s = CCDirector:sharedDirector():getWinSize()
local label = CCLabelBMFont:create("FaFeFiFoFu", "fonts/bitmapFontTest5.fnt")
layer:addChild(label)
label:setPosition( ccp(s.width/2, s.height/2+50) )
label:setAnchorPoint( ccp(0.5, 0.5) )
label = CCLabelBMFont:create("fafefifofu", "fonts/bitmapFontTest5.fnt")
layer:addChild(label)
label:setPosition( ccp(s.width/2, s.height/2) )
label:setAnchorPoint( ccp(0.5, 0.5) )
label = CCLabelBMFont:create("aeiou", "fonts/bitmapFontTest5.fnt")
layer:addChild(label)
label:setPosition( ccp(s.width/2, s.height/2-50) )
label:setAnchorPoint( ccp(0.5, 0.5) )
Helper.titleLabel:setString("CCLabelBMFont")
Helper.subtitleLabel:setString("Rendering should be OK. Testing offset")
return layer
end
--------------------------------------------------------------------
--
-- AtlasBitmapColor
--
-- Use any of these editors to generate BMFonts:
-- http:--glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http:--www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http:--slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http:--www.angelcode.com/products/bmfont/ (Free, Windows only)
--
--------------------------------------------------------------------
local AtlasBitmapColor = { layer= nil }
function AtlasBitmapColor:create()
local layer = CCLayer:create()
AtlasBitmapColor.layer = layer
Helper.initWithLayer(layer)
local s = CCDirector:sharedDirector():getWinSize()
local label = CCLabelBMFont:create("Blue", "fonts/bitmapFontTest5.fnt")
label:setColor( ccc3(0, 0, 255 ))
layer:addChild(label)
label:setPosition( ccp(s.width/2, s.height/4) )
label:setAnchorPoint( ccp(0.5, 0.5) )
label = CCLabelBMFont:create("Red", "fonts/bitmapFontTest5.fnt")
layer:addChild(label)
label:setPosition( ccp(s.width/2, 2*s.height/4) )
label:setAnchorPoint( ccp(0.5, 0.5) )
label:setColor( ccc3(255, 0, 0) )
label = CCLabelBMFont:create("G", "fonts/bitmapFontTest5.fnt")
layer:addChild(label)
label:setPosition( ccp(s.width/2, 3*s.height/4) )
label:setAnchorPoint( ccp(0.5, 0.5) )
label:setColor( ccc3(0, 255, 0 ))
label:setString("Green")
Helper.titleLabel:setString("CCLabelBMFont")
Helper.subtitleLabel:setString("Testing color")
return layer
end
--------------------------------------------------------------------
--
-- AtlasFastBitmap
--
-- Use any of these editors to generate BMFonts:
-- http:--glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http:--www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http:--slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http:--www.angelcode.com/products/bmfont/ (Free, Windows only)
--
--------------------------------------------------------------------
local AtlasFastBitmap = { layer = nil }
function AtlasFastBitmap:create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
AtlasFastBitmap.layer = layer
math.randomseed(os.time())
-- Upper Label
local i = 0
for i = 0, 100, 1 do
local str = string.format("-%d-", i)
local label = CCLabelBMFont:create(str, "fonts/bitmapFontTest.fnt")
layer:addChild(label)
local s = CCDirector:sharedDirector():getWinSize()
local p = ccp( math.random() * s.width, math.random() * s.height)
label:setPosition( p )
label:setAnchorPoint(ccp(0.5, 0.5))
end
Helper.titleLabel:setString("CCLabelBMFont")
Helper.subtitleLabel:setString("Creating several CCLabelBMFont with the same .fnt file should be fast")
return layer
end
--------------------------------------------------------------------
--
-- BitmapFontMultiLine
--
-- Use any of these editors to generate BMFonts:
-- http:--glyphdesigner.71squared.com/ (Commercial, Mac OS X)
-- http:--www.n4te.com/hiero/hiero.jnlp (Free, Java)
-- http:--slick.cokeandcode.com/demos/hiero.jnlp (Free, Java)
-- http:--www.angelcode.com/products/bmfont/ (Free, Windows only)
--
--------------------------------------------------------------------
local BitmapFontMultiLine = {}
function BitmapFontMultiLine:create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
local s = nil
-- Left
local label1 = CCLabelBMFont:create(" Multi line\nLeft", "fonts/bitmapFontTest3.fnt")
label1:setAnchorPoint(ccp(0,0))
layer:addChild(label1, 0, kTagBitmapAtlas1)
s = label1:getContentSize()
cclog("content size: %.2fx%.2f", s.width, s.height)
-- Center
local label2 = CCLabelBMFont:create("Multi line\nCenter", "fonts/bitmapFontTest3.fnt")
label2:setAnchorPoint(ccp(0.5, 0.5))
layer:addChild(label2, 0, kTagBitmapAtlas2)
s= label2:getContentSize()
cclog("content size: %.2fx%.2f", s.width, s.height)
-- right
local label3 = CCLabelBMFont:create("Multi line\nRight\nThree lines Three", "fonts/bitmapFontTest3.fnt")
label3:setAnchorPoint(ccp(1, 1))
layer:addChild(label3, 0, kTagBitmapAtlas3)
s = label3:getContentSize()
cclog("content size: %.2fx%.2f", s.width, s.height)
label1:setPosition(VisibleRect:leftBottom())
label2:setPosition(VisibleRect:center())
label3:setPosition(VisibleRect:rightTop())
Helper.titleLabel:setString("CCLabelBMFont")
Helper.subtitleLabel:setString("Multiline + anchor point")
return layer
end
--------------------------------------------------------------------
--
-- LabelsEmpty
--
--------------------------------------------------------------------
local LabelsEmpty = {}
LabelsEmpty.layer = nil
LabelsEmpty.setEmpty = false
LabelsEmpty.updateEntry = nil
function LabelsEmpty.onNodeEvent(tag)
if tag == "enter" then
LabelsEmpty.updateEntry = scheduler:scheduleScriptFunc(LabelsEmpty.updateStrings, 1.0, false)
elseif tag == "exit" then
scheduler:unscheduleScriptEntry(LabelsEmpty.updateEntry)
end
end
function LabelsEmpty.create()
cclog("LabelsEmpty.create")
local layer = CCLayer:create()
LabelsEmpty.layer = layer
Helper.initWithLayer(layer)
local s = CCDirector:sharedDirector():getWinSize()
-- CCLabelBMFont
local label1 = CCLabelBMFont:create("", "fonts/bitmapFontTest3.fnt")
layer:addChild(label1, 0, kTagBitmapAtlas1)
label1:setPosition(ccp(s.width/2, s.height-100))
-- CCLabelTTF
local label2 = CCLabelTTF:create("", "Arial", 24)
layer:addChild(label2, 0, kTagBitmapAtlas2)
label2:setPosition(ccp(s.width/2, s.height/2))
-- CCLabelAtlas
local label3 = CCLabelAtlas:create("", "fonts/tuffy_bold_italic-charmap.png", 48, 64, string.byte(" "))
layer:addChild(label3, 0, kTagBitmapAtlas3)
label3:setPosition(ccp(s.width/2, 0+100))
layer:registerScriptHandler(LabelsEmpty.onNodeEvent)
LabelsEmpty.setEmpty = false
Helper.titleLabel:setString("Testing empty labels")
Helper.subtitleLabel:setString("3 empty labels: LabelAtlas, LabelTTF and LabelBMFont")
return layer
end
function LabelsEmpty.updateStrings(dt)
local label1 = tolua.cast(LabelsEmpty.layer:getChildByTag(kTagBitmapAtlas1), "CCLabelBMFont")
local label2 = tolua.cast(LabelsEmpty.layer:getChildByTag(kTagBitmapAtlas2), "CCLabelTTF")
local label3 = tolua.cast(LabelsEmpty.layer:getChildByTag(kTagBitmapAtlas3), "CCLabelAtlas")
if( LabelsEmpty.setEmpty == false) then
label1:setString("not empty")
label2:setString("not empty")
label3:setString("hi")
LabelsEmpty.setEmpty = true
else
label1:setString("")
label2:setString("")
label3:setString("")
LabelsEmpty.setEmpty = false
end
end
--------------------------------------------------------------------
--
-- LabelBMFontHD
--
--------------------------------------------------------------------
local LabelBMFontHD = {
}
function LabelBMFontHD.create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
local s = CCDirector:sharedDirector():getWinSize()
-- CCLabelBMFont
local label1 = CCLabelBMFont:create("TESTING RETINA DISPLAY", "fonts/konqa32.fnt")
layer:addChild(label1)
label1:setPosition(ccp(s.width/2, s.height/2))
Helper.titleLabel:setString("Testing Retina Display BMFont")
Helper.subtitleLabel:setString("loading arista16 or arista16-hd")
return layer
end
--------------------------------------------------------------------
--
-- LabelAtlasHD
--
--------------------------------------------------------------------
local LabelAtlasHD = {}
function LabelAtlasHD.create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
local s = CCDirector:sharedDirector():getWinSize()
-- CCLabelBMFont
local label1 = CCLabelAtlas:create("TESTING RETINA DISPLAY", "fonts/larabie-16.plist")
label1:setAnchorPoint(ccp(0.5, 0.5))
layer:addChild(label1)
label1:setPosition(ccp(s.width/2, s.height/2))
Helper.titleLabel:setString("LabelAtlas with Retina Display")
Helper.subtitleLabel:setString("loading larabie-16 / larabie-16-hd")
return layer
end
--------------------------------------------------------------------
--
-- LabelGlyphDesigner
--
--------------------------------------------------------------------
local LabelGlyphDesigner = {}
function LabelGlyphDesigner.create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
local s = CCDirector:sharedDirector():getWinSize()
local colorlayer = CCLayerColor:create(ccc4(128,128,128,255))
layer:addChild(colorlayer, -10)
-- CCLabelBMFont
local label1 = CCLabelBMFont:create("Testing Glyph Designer", "fonts/futura-48.fnt")
layer:addChild(label1)
label1:setPosition(ccp(s.width/2, s.height/2))
Helper.titleLabel:setString("Testing Glyph Designer")
Helper.subtitleLabel:setString("You should see a font with shawdows and outline")
return layer
end
--------------------------------------------------------------------
--
-- LabelTTFTest
--
--------------------------------------------------------------------
local LabelTTFTest = {
_layer = nil,
_plabel = nil,
_eHorizAlign = kCCTextAlignmentLeft,
_eVertAlign = kCCVerticalTextAlignmentTop
}
function LabelTTFTest.create()
local layer = CCLayer:create()
Helper.initWithLayer(layer)
LabelTTFTest._layer = layer
local blockSize = CCSizeMake(200, 160)
local s = CCDirector:sharedDirector():getWinSize()
local colorLayer = CCLayerColor:create(ccc4(100, 100, 100, 255), blockSize.width, blockSize.height)
colorLayer:setAnchorPoint(ccp(0,0))
colorLayer:setPosition(ccp((s.width - blockSize.width) / 2, (s.height - blockSize.height) / 2))
layer:addChild(colorLayer)
CCMenuItemFont:setFontSize(30)
local item1 = CCMenuItemFont:create("Left")
item1:registerScriptTapHandler(LabelTTFTest.setAlignmentLeft)
local item2 = CCMenuItemFont:create("Center")
item2:registerScriptTapHandler(LabelTTFTest.setAlignmentCenter)
local item3 = CCMenuItemFont:create("Right")
item3:registerScriptTapHandler(LabelTTFTest.setAlignmentRight)
local menu = CCMenu:create()
menu:addChild(item1)
menu:addChild(item2)
menu:addChild(item3)
menu:alignItemsVerticallyWithPadding(4)
menu:setPosition(ccp(50, s.height / 2 - 20))
layer:addChild(menu)
menu = CCMenu:create()
item1 = CCMenuItemFont:create("Top")
item1:registerScriptTapHandler(LabelTTFTest.setAlignmentTop)
item2 = CCMenuItemFont:create("Middle")
item2:registerScriptTapHandler(LabelTTFTest.setAlignmentMiddle)
item3 = CCMenuItemFont:create("Bottom")
item3:registerScriptTapHandler(LabelTTFTest.setAlignmentBottom)
menu:addChild(item1)
menu:addChild(item2)
menu:addChild(item3)
menu:alignItemsVerticallyWithPadding(4)
menu:setPosition(ccp(s.width - 50, s.height / 2 - 20))
layer:addChild(menu)
layer:updateAlignment()
2013-03-28 15:47:37 +08:00
layer:registerScriptHandler(LabelTTFTest.onNodeEvent)
Helper.titleLabel:setString("Testing CCLabelTTF")
Helper.subtitleLabel:setString("Select the buttons on the sides to change alignment")
return layer
end
function LabelTTFTest.onNodeEvent(tag)
if tag == "exit" then
if LabelTTFTest._plabel != nil then
LabelTTFTest._plabel:release()
end
end
end
function LabelTTFTest.updateAlignment()
local blockSize = CCSizeMake(200, 160)
local s = CCDirector:sharedDirector():getWinSize()
if (LabelTTFTest._plabel)
{
LabelTTFTest._plabel:removeFromParentAndCleanup(true)
LabelTTFTest._plabel:release()
}
LabelTTFTest._plabel = CCLabelTTF:create(this:getCurrentAlignment(), "Marker Felt", 32,
blockSize, LabelTTFTest._eHorizAlign, LabelTTFTest._eVertAlign)
LabelTTFTest._plabel:retain()
LabelTTFTest._plabel:setAnchorPoint(ccp(0,0))
LabelTTFTest._plabel:setPosition(ccp((s.width - blockSize.width) / 2, (s.height - blockSize.height)/2 ))
LabelTTFTest._layer:addChild(LabelTTFTest._plabel)
end
2013-03-28 15:47:37 +08:00
function LabelTTFTest.setAlignmentLeft(pSender)
LabelTTFTest._eHorizAlign = kCCTextAlignmentLeft
LabelTTFTest.updateAlignment()
end
function LabelTTFTest.setAlignmentCenter(pSender)
LabelTTFTest._eHorizAlign = kCCTextAlignmentCenter
LabelTTFTest.updateAlignment()
end
void LabelTTFTest:setAlignmentRight(CCObject* pSender)
{
m_eHorizAlign = kCCTextAlignmentRight
this:updateAlignment()
}
void LabelTTFTest:setAlignmentTop(CCObject* pSender)
{
m_eVertAlign = kCCVerticalTextAlignmentTop
this:updateAlignment()
}
void LabelTTFTest:setAlignmentMiddle(CCObject* pSender)
{
m_eVertAlign = kCCVerticalTextAlignmentCenter
this:updateAlignment()
}
void LabelTTFTest:setAlignmentBottom(CCObject* pSender)
{
m_eVertAlign = kCCVerticalTextAlignmentBottom
this:updateAlignment()
}
const char* LabelTTFTest:getCurrentAlignment()
{
const char* vertical = NULL
const char* horizontal = NULL
switch (m_eVertAlign) {
case kCCVerticalTextAlignmentTop:
vertical = "Top"
break
case kCCVerticalTextAlignmentCenter:
vertical = "Middle"
break
case kCCVerticalTextAlignmentBottom:
vertical = "Bottom"
break
}
switch (m_eHorizAlign) {
case kCCTextAlignmentLeft:
horizontal = "Left"
break
case kCCTextAlignmentCenter:
horizontal = "Center"
break
case kCCTextAlignmentRight:
horizontal = "Right"
break
}
return CCString:createWithFormat("Alignment %s %s", vertical, horizontal):getCString()
}
function LabelTest()
cclog("LabelTest")
m_time = 0
local scene = CCScene:create()
Helper.createFunctionTable = {
LabelAtlasTest.create,
LabelAtlasColorTest.create,
2013-03-28 15:47:37 +08:00
Atlas3.create,
Atlas4.create,
Atlas5.create,
Atlas6.create,
AtlasBitmapColor.create,
AtlasFastBitmap.create,
BitmapFontMultiLine.create,
LabelsEmpty.create,
LabelBMFontHD.create,
LabelAtlasHD.create,
LabelGlyphDesigner.create,
-- Atlas1,
-- LabelTTFTest,
-- LabelTTFMultiline,
-- LabelTTFChinese,
-- LabelBMFontChinese,
-- BitmapFontMultiLineAlignment,
2013-03-28 15:47:37 +08:00
-- LabelTTFA8Test,
-- BMFontOneAtlas,
-- BMFontUnicode,
-- BMFontInit,
-- TTFFontInit,
-- Issue1343,
-- LabelTTFAlignment,
-- LabelBMFontBounds
}
scene:addChild(LabelAtlasTest.create())
scene:addChild(CreateBackMenuItem())
return scene
end