2013-05-01 07:36:14 +08:00
# include "LabelTest.h"
2012-03-22 11:48:37 +08:00
# include "../testResource.h"
2010-09-07 11:47:54 +08:00
enum {
2012-04-19 14:35:52 +08:00
kTagTileMap = 1 ,
kTagSpriteManager = 1 ,
kTagAnimation1 = 1 ,
kTagBitmapAtlas1 = 1 ,
kTagBitmapAtlas2 = 2 ,
kTagBitmapAtlas3 = 3 ,
2010-09-07 11:47:54 +08:00
} ;
enum {
2012-04-19 14:35:52 +08:00
kTagSprite1 ,
kTagSprite2 ,
kTagSprite3 ,
kTagSprite4 ,
kTagSprite5 ,
kTagSprite6 ,
kTagSprite7 ,
kTagSprite8 ,
2012-03-22 11:48:37 +08:00
} ;
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// AtlasDemo
//
//------------------------------------------------------------------
2012-03-22 11:48:37 +08:00
2010-09-07 11:47:54 +08:00
enum
{
2012-04-19 14:35:52 +08:00
IDC_NEXT = 100 ,
IDC_BACK ,
IDC_RESTART
2010-09-07 11:47:54 +08:00
} ;
2011-07-08 15:57:46 +08:00
2013-06-20 14:17:10 +08:00
Layer * nextAtlasAction ( ) ;
Layer * backAtlasAction ( ) ;
Layer * restartAtlasAction ( ) ;
2012-03-22 11:48:37 +08:00
static int sceneIdx = - 1 ;
2013-04-26 09:22:26 +08:00
# define MAX_LAYER 28
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
Layer * createAtlasLayer ( int nIndex )
2010-09-07 11:47:54 +08:00
{
2012-04-19 14:35:52 +08:00
switch ( nIndex )
{
case 0 : return new LabelAtlasTest ( ) ;
case 1 : return new LabelAtlasColorTest ( ) ;
case 2 : return new Atlas3 ( ) ;
case 3 : return new Atlas4 ( ) ;
case 4 : return new Atlas5 ( ) ;
case 5 : return new Atlas6 ( ) ;
case 6 : return new AtlasBitmapColor ( ) ;
case 7 : return new AtlasFastBitmap ( ) ;
2011-02-23 16:47:25 +08:00
case 8 : return new BitmapFontMultiLine ( ) ;
2012-03-22 11:48:37 +08:00
case 9 : return new LabelsEmpty ( ) ;
case 10 : return new LabelBMFontHD ( ) ;
case 11 : return new LabelAtlasHD ( ) ;
2011-02-23 16:47:25 +08:00
case 12 : return new LabelGlyphDesigner ( ) ;
// Not a label test. Should be moved to Atlas test
case 13 : return new Atlas1 ( ) ;
2012-04-19 14:35:52 +08:00
case 14 : return new LabelTTFTest ( ) ;
case 15 : return new LabelTTFMultiline ( ) ;
case 16 : return new LabelTTFChinese ( ) ;
2012-01-18 18:43:41 +08:00
case 17 : return new LabelBMFontChinese ( ) ;
2012-04-19 14:35:52 +08:00
case 18 : return new BitmapFontMultiLineAlignment ( ) ;
case 19 : return new LabelTTFA8Test ( ) ;
case 20 : return new BMFontOneAtlas ( ) ;
case 21 : return new BMFontUnicode ( ) ;
2012-06-12 14:33:53 +08:00
case 22 : return new BMFontInit ( ) ;
case 23 : return new TTFFontInit ( ) ;
case 24 : return new Issue1343 ( ) ;
case 25 : return new LabelTTFAlignment ( ) ;
2012-11-20 18:17:47 +08:00
case 26 : return new LabelBMFontBounds ( ) ;
2013-04-26 09:22:26 +08:00
case 27 : return new TTFFontShadowAndStroke ( ) ;
2012-04-19 14:35:52 +08:00
}
2010-09-07 11:47:54 +08:00
2012-04-19 14:35:52 +08:00
return NULL ;
2010-09-07 11:47:54 +08:00
}
2013-06-20 14:17:10 +08:00
Layer * nextAtlasAction ( )
2010-09-07 11:47:54 +08:00
{
2012-04-19 14:35:52 +08:00
sceneIdx + + ;
sceneIdx = sceneIdx % MAX_LAYER ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
Layer * pLayer = createAtlasLayer ( sceneIdx ) ;
2012-04-19 14:35:52 +08:00
pLayer - > autorelease ( ) ;
2010-09-07 11:47:54 +08:00
2012-04-19 14:35:52 +08:00
return pLayer ;
2010-09-07 11:47:54 +08:00
}
2013-06-20 14:17:10 +08:00
Layer * backAtlasAction ( )
2010-09-07 11:47:54 +08:00
{
2012-04-19 14:35:52 +08:00
sceneIdx - - ;
int total = MAX_LAYER ;
if ( sceneIdx < 0 )
sceneIdx + = total ;
2013-06-20 14:17:10 +08:00
Layer * pLayer = createAtlasLayer ( sceneIdx ) ;
2012-04-19 14:35:52 +08:00
pLayer - > autorelease ( ) ;
2010-09-07 11:47:54 +08:00
2012-04-19 14:35:52 +08:00
return pLayer ;
2010-09-07 11:47:54 +08:00
}
2013-06-20 14:17:10 +08:00
Layer * restartAtlasAction ( )
2010-09-07 11:47:54 +08:00
{
2013-06-20 14:17:10 +08:00
Layer * pLayer = createAtlasLayer ( sceneIdx ) ;
2012-04-19 14:35:52 +08:00
pLayer - > autorelease ( ) ;
2010-09-07 11:47:54 +08:00
2012-04-19 14:35:52 +08:00
return pLayer ;
2012-03-22 11:48:37 +08:00
}
AtlasDemo : : AtlasDemo ( void )
{
}
AtlasDemo : : ~ AtlasDemo ( void )
{
}
2010-09-07 11:47:54 +08:00
std : : string AtlasDemo : : title ( )
{
2012-04-19 14:35:52 +08:00
return " No title " ;
2010-09-07 11:47:54 +08:00
}
std : : string AtlasDemo : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " " ;
2010-09-07 11:47:54 +08:00
}
void AtlasDemo : : onEnter ( )
{
2013-06-07 08:12:28 +08:00
BaseTest : : onEnter ( ) ;
2010-09-07 11:47:54 +08:00
}
2013-06-20 14:17:10 +08:00
void AtlasDemo : : restartCallback ( Object * pSender )
2010-09-07 11:47:54 +08:00
{
2013-06-20 14:17:10 +08:00
Scene * s = new AtlasTestScene ( ) ;
2012-04-19 14:35:52 +08:00
s - > addChild ( restartAtlasAction ( ) ) ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
Director : : sharedDirector ( ) - > replaceScene ( s ) ;
2010-09-07 11:47:54 +08:00
s - > release ( ) ;
}
2013-06-20 14:17:10 +08:00
void AtlasDemo : : nextCallback ( Object * pSender )
2010-09-07 11:47:54 +08:00
{
2013-06-20 14:17:10 +08:00
Scene * s = new AtlasTestScene ( ) ;
2012-04-19 14:35:52 +08:00
s - > addChild ( nextAtlasAction ( ) ) ;
2013-06-20 14:17:10 +08:00
Director : : sharedDirector ( ) - > replaceScene ( s ) ;
2010-09-07 11:47:54 +08:00
s - > release ( ) ;
}
2013-06-20 14:17:10 +08:00
void AtlasDemo : : backCallback ( Object * pSender )
2010-09-07 11:47:54 +08:00
{
2013-06-20 14:17:10 +08:00
Scene * s = new AtlasTestScene ( ) ;
2012-04-19 14:35:52 +08:00
s - > addChild ( backAtlasAction ( ) ) ;
2013-06-20 14:17:10 +08:00
Director : : sharedDirector ( ) - > replaceScene ( s ) ;
2010-09-07 11:47:54 +08:00
s - > release ( ) ;
}
2012-03-22 11:48:37 +08:00
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// Atlas1
//
//------------------------------------------------------------------
Atlas1 : : Atlas1 ( )
{
2013-06-20 14:17:10 +08:00
_textureAtlas = TextureAtlas : : create ( s_AtlasTest , 3 ) ; _textureAtlas - > retain ( ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-04-19 14:35:52 +08:00
//
// Notice: u,v tex coordinates are inverted
//
ccV3F_C4B_T2F_Quad quads [ ] =
{
{
{ { 0 , 0 , 0 } , ccc4 ( 0 , 0 , 255 , 255 ) , { 0.0f , 1.0f } , } , // bottom left
{ { s . width , 0 , 0 } , ccc4 ( 0 , 0 , 255 , 0 ) , { 1.0f , 1.0f } , } , // bottom right
{ { 0 , s . height , 0 } , ccc4 ( 0 , 0 , 255 , 0 ) , { 0.0f , 0.0f } , } , // top left
{ { s . width , s . height , 0 } , { 0 , 0 , 255 , 255 } , { 1.0f , 0.0f } , } , // top right
} ,
{
{ { 40 , 40 , 0 } , ccc4 ( 255 , 255 , 255 , 255 ) , { 0.0f , 0.2f } , } , // bottom left
{ { 120 , 80 , 0 } , ccc4 ( 255 , 0 , 0 , 255 ) , { 0.5f , 0.2f } , } , // bottom right
{ { 40 , 160 , 0 } , ccc4 ( 255 , 255 , 255 , 255 ) , { 0.0f , 0.0f } , } , // top left
{ { 160 , 160 , 0 } , ccc4 ( 0 , 255 , 0 , 255 ) , { 0.5f , 0.0f } , } , // top right
} ,
{
{ { s . width / 2 , 40 , 0 } , ccc4 ( 255 , 0 , 0 , 255 ) , { 0.0f , 1.0f } , } , // bottom left
{ { s . width , 40 , 0 } , ccc4 ( 0 , 255 , 0 , 255 ) , { 1.0f , 1.0f } , } , // bottom right
{ { s . width / 2 - 50 , 200 , 0 } , ccc4 ( 0 , 0 , 255 , 255 ) , { 0.0f , 0.0f } , } , // top left
{ { s . width , 100 , 0 } , ccc4 ( 255 , 255 , 0 , 255 ) , { 1.0f , 0.0f } , } , // top right
} ,
} ;
for ( int i = 0 ; i < 3 ; i + + )
{
2013-06-15 14:03:30 +08:00
_textureAtlas - > updateQuad ( & quads [ i ] , i ) ;
2012-04-19 14:35:52 +08:00
}
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
Atlas1 : : ~ Atlas1 ( )
{
2013-06-15 14:03:30 +08:00
_textureAtlas - > release ( ) ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
void Atlas1 : : draw ( )
{
2012-04-19 14:35:52 +08:00
// GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY
// GL_TEXTURE_2D
2010-09-07 11:47:54 +08:00
2013-06-15 14:03:30 +08:00
_textureAtlas - > drawQuads ( ) ;
2010-09-07 11:47:54 +08:00
2012-04-19 14:35:52 +08:00
// [textureAtlas drawNumberOfQuads:3];
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
std : : string Atlas1 : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCTextureAtlas " ;
2012-03-22 11:48:37 +08:00
}
std : : string Atlas1 : : subtitle ( )
{
2013-06-20 14:17:10 +08:00
return " Manual creation of TextureAtlas " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// LabelAtlasTest
//
//------------------------------------------------------------------
LabelAtlasTest : : LabelAtlasTest ( )
{
2013-06-15 14:03:30 +08:00
_time = 0 ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
LabelAtlas * label1 = LabelAtlas : : create ( " 123 Test " , " fonts/tuffy_bold_italic-charmap.plist " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label1 , 0 , kTagSprite1 ) ;
label1 - > setPosition ( ccp ( 10 , 100 ) ) ;
label1 - > setOpacity ( 200 ) ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
LabelAtlas * label2 = LabelAtlas : : create ( " 0123456789 " , " fonts/tuffy_bold_italic-charmap.plist " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label2 , 0 , kTagSprite2 ) ;
label2 - > setPosition ( ccp ( 10 , 200 ) ) ;
label2 - > setOpacity ( 32 ) ;
2010-09-07 11:47:54 +08:00
2012-04-19 14:35:52 +08:00
schedule ( schedule_selector ( LabelAtlasTest : : step ) ) ;
2010-09-07 11:47:54 +08:00
}
2012-06-08 13:55:28 +08:00
void LabelAtlasTest : : step ( float dt )
2010-09-07 11:47:54 +08:00
{
2013-06-15 14:03:30 +08:00
_time + = dt ;
2010-09-07 11:47:54 +08:00
char string [ 12 ] = { 0 } ;
2013-06-15 14:03:30 +08:00
sprintf ( string , " %2.2f Test " , _time ) ;
//string.format("%2.2f Test", _time);
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
LabelAtlas * label1 = ( LabelAtlas * ) getChildByTag ( kTagSprite1 ) ;
2012-04-19 14:35:52 +08:00
label1 - > setString ( string ) ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
LabelAtlas * label2 = ( LabelAtlas * ) getChildByTag ( kTagSprite2 ) ;
2013-06-15 14:03:30 +08:00
sprintf ( string , " %d " , ( int ) _time ) ;
//string.format("%d", (int)_time);
2012-04-19 14:35:52 +08:00
label2 - > setString ( string ) ;
2010-09-07 11:47:54 +08:00
}
std : : string LabelAtlasTest : : title ( )
{
2012-04-19 14:35:52 +08:00
return " LabelAtlas " ;
2012-03-22 11:48:37 +08:00
}
std : : string LabelAtlasTest : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " Updating label should be fast " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// LabelAtlasColorTest
//
//------------------------------------------------------------------
2012-03-22 11:48:37 +08:00
LabelAtlasColorTest : : LabelAtlasColorTest ( )
{
2013-06-20 14:17:10 +08:00
LabelAtlas * label1 = LabelAtlas : : create ( " 123 Test " , " fonts/tuffy_bold_italic-charmap.png " , 48 , 64 , ' ' ) ;
2012-04-19 14:35:52 +08:00
addChild ( label1 , 0 , kTagSprite1 ) ;
label1 - > setPosition ( ccp ( 10 , 100 ) ) ;
label1 - > setOpacity ( 200 ) ;
2013-06-20 14:17:10 +08:00
LabelAtlas * label2 = LabelAtlas : : create ( " 0123456789 " , " fonts/tuffy_bold_italic-charmap.png " , 48 , 64 , ' ' ) ;
2012-04-19 14:35:52 +08:00
addChild ( label2 , 0 , kTagSprite2 ) ;
label2 - > setPosition ( ccp ( 10 , 200 ) ) ;
label2 - > setColor ( ccRED ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
ActionInterval * fade = FadeOut : : create ( 1.0f ) ;
ActionInterval * fade_in = fade - > reverse ( ) ;
CallFunc * cb = CallFunc : : create ( this , callfunc_selector ( LabelAtlasColorTest : : actionFinishCallback ) ) ;
Sequence * seq = Sequence : : create ( fade , fade_in , cb , NULL ) ;
Action * repeat = RepeatForever : : create ( seq ) ;
2012-04-19 14:35:52 +08:00
label2 - > runAction ( repeat ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
_time = 0 ;
2012-04-19 14:35:52 +08:00
schedule ( schedule_selector ( LabelAtlasColorTest : : step ) ) ; //:@selector(step:)];
2012-03-22 11:48:37 +08:00
}
2013-02-28 15:57:15 +08:00
void LabelAtlasColorTest : : actionFinishCallback ( )
{
CCLOG ( " Action finished " ) ;
}
2012-06-08 13:55:28 +08:00
void LabelAtlasColorTest : : step ( float dt )
2012-03-22 11:48:37 +08:00
{
2013-06-15 14:03:30 +08:00
_time + = dt ;
2012-03-22 11:48:37 +08:00
char string [ 12 ] = { 0 } ;
2013-06-15 14:03:30 +08:00
sprintf ( string , " %2.2f Test " , _time ) ;
//std::string string = std::string::createWithFormat("%2.2f Test", _time);
2013-06-20 14:17:10 +08:00
LabelAtlas * label1 = ( LabelAtlas * ) getChildByTag ( kTagSprite1 ) ;
2012-04-19 14:35:52 +08:00
label1 - > setString ( string ) ;
2013-06-20 14:17:10 +08:00
LabelAtlas * label2 = ( LabelAtlas * ) getChildByTag ( kTagSprite2 ) ;
2013-06-15 14:03:30 +08:00
sprintf ( string , " %d " , ( int ) _time ) ;
2012-04-19 14:35:52 +08:00
label2 - > setString ( string ) ;
2012-03-22 11:48:37 +08:00
}
std : : string LabelAtlasColorTest : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelAtlas " ;
2012-03-22 11:48:37 +08:00
}
std : : string LabelAtlasColorTest : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " Opacity + Color should work at the same time " ;
2012-03-22 11:48:37 +08:00
}
2012-06-12 14:33:53 +08:00
//------------------------------------------------------------------
//
// LabelTTFAlignment
//
//------------------------------------------------------------------
LabelTTFAlignment : : LabelTTFAlignment ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-20 14:17:10 +08:00
LabelTTF * ttf0 = LabelTTF : : create ( " Alignment 0 \n new line " , " Helvetica " , 12 ,
CCSizeMake ( 256 , 32 ) , kTextAlignmentLeft ) ;
2012-06-15 15:10:40 +08:00
ttf0 - > setPosition ( ccp ( s . width / 2 , ( s . height / 6 ) * 2 ) ) ;
ttf0 - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
this - > addChild ( ttf0 ) ;
2013-06-20 14:17:10 +08:00
LabelTTF * ttf1 = LabelTTF : : create ( " Alignment 1 \n new line " , " Helvetica " , 12 ,
CCSizeMake ( 245 , 32 ) , kTextAlignmentCenter ) ;
2012-06-15 15:10:40 +08:00
ttf1 - > setPosition ( ccp ( s . width / 2 , ( s . height / 6 ) * 3 ) ) ;
ttf1 - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
this - > addChild ( ttf1 ) ;
2013-06-20 14:17:10 +08:00
LabelTTF * ttf2 = LabelTTF : : create ( " Alignment 2 \n new line " , " Helvetica " , 12 ,
CCSizeMake ( 245 , 32 ) , kTextAlignmentRight ) ;
2012-06-15 15:10:40 +08:00
ttf2 - > setPosition ( ccp ( s . width / 2 , ( s . height / 6 ) * 4 ) ) ;
ttf2 - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2012-06-12 14:33:53 +08:00
this - > addChild ( ttf2 ) ;
}
std : : string LabelTTFAlignment : : title ( )
{
return " CCLabelTTF alignment " ;
}
std : : string LabelTTFAlignment : : subtitle ( )
{
return " Tests alignment values " ;
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// Atlas3
2012-03-22 11:48: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)
2010-09-07 11:47:54 +08:00
//
//------------------------------------------------------------------
Atlas3 : : Atlas3 ( )
{
2013-06-15 14:03:30 +08:00
_time = 0 ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
LayerColor * col = LayerColor : : create ( ccc4 ( 128 , 128 , 128 , 255 ) ) ;
2012-04-19 14:35:52 +08:00
addChild ( col , - 10 ) ;
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = LabelBMFont : : create ( " Test " , " fonts/bitmapFontTest2.fnt " ) ;
2012-04-19 14:35:52 +08:00
// testing anchors
label1 - > setAnchorPoint ( ccp ( 0 , 0 ) ) ;
addChild ( label1 , 0 , kTagBitmapAtlas1 ) ;
2013-06-20 14:17:10 +08:00
ActionInterval * fade = FadeOut : : create ( 1.0f ) ;
ActionInterval * fade_in = fade - > reverse ( ) ;
Sequence * seq = Sequence : : create ( fade , fade_in , NULL ) ;
Action * repeat = RepeatForever : : create ( seq ) ;
2012-04-19 14:35:52 +08:00
label1 - > runAction ( repeat ) ;
// 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
2013-06-20 14:17:10 +08:00
LabelBMFont * label2 = LabelBMFont : : create ( " Test " , " fonts/bitmapFontTest2.fnt " ) ;
2012-04-19 14:35:52 +08:00
// testing anchors
label2 - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
label2 - > setColor ( ccRED ) ;
addChild ( label2 , 0 , kTagBitmapAtlas2 ) ;
2013-06-19 07:12:28 +08:00
label2 - > runAction ( repeat - > clone ( ) ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label3 = LabelBMFont : : create ( " Test " , " fonts/bitmapFontTest2.fnt " ) ;
2012-04-19 14:35:52 +08:00
// testing anchors
label3 - > setAnchorPoint ( ccp ( 1 , 1 ) ) ;
addChild ( label3 , 0 , kTagBitmapAtlas3 ) ;
2013-01-28 20:34:52 +08:00
2012-10-23 17:48:50 +08:00
label1 - > setPosition ( VisibleRect : : leftBottom ( ) ) ;
label2 - > setPosition ( VisibleRect : : center ( ) ) ;
label3 - > setPosition ( VisibleRect : : rightTop ( ) ) ;
2012-04-19 14:35:52 +08:00
schedule ( schedule_selector ( Atlas3 : : step ) ) ; //:@selector(step:)];
2010-09-07 11:47:54 +08:00
}
2012-06-08 13:55:28 +08:00
void Atlas3 : : step ( float dt )
2010-09-07 11:47:54 +08:00
{
2013-06-15 14:03:30 +08:00
_time + = dt ;
2012-04-19 14:35:52 +08:00
//std::string string;
2010-09-07 11:47:54 +08:00
char string [ 15 ] = { 0 } ;
2013-06-15 14:03:30 +08:00
sprintf ( string , " %2.2f Test j " , _time ) ;
//string.format("%2.2f Test j", _time);
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = ( LabelBMFont * ) getChildByTag ( kTagBitmapAtlas1 ) ;
2012-04-19 14:35:52 +08:00
label1 - > setString ( string ) ;
2013-06-20 14:17:10 +08:00
LabelBMFont * label2 = ( LabelBMFont * ) getChildByTag ( kTagBitmapAtlas2 ) ;
2012-04-19 14:35:52 +08:00
label2 - > setString ( string ) ;
2013-06-20 14:17:10 +08:00
LabelBMFont * label3 = ( LabelBMFont * ) getChildByTag ( kTagBitmapAtlas3 ) ;
2012-04-19 14:35:52 +08:00
label3 - > setString ( string ) ;
2010-09-07 11:47:54 +08:00
}
std : : string Atlas3 : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
std : : string Atlas3 : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " Testing alignment. Testing opacity + tint " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// Atlas4
2012-03-22 11:48: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)
2011-07-08 15:57:46 +08:00
// http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2010-09-07 11:47:54 +08:00
//
//------------------------------------------------------------------
Atlas4 : : Atlas4 ( )
{
2013-06-15 14:03:30 +08:00
_time = 0 ;
2012-04-19 14:35:52 +08:00
// Upper Label
2013-06-20 14:17:10 +08:00
LabelBMFont * label = LabelBMFont : : create ( " Bitmap Font Atlas " , " fonts/bitmapFontTest.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-04-19 14:35:52 +08:00
label - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2013-06-20 14:17:10 +08:00
Sprite * BChar = ( Sprite * ) label - > getChildByTag ( 0 ) ;
Sprite * FChar = ( Sprite * ) label - > getChildByTag ( 7 ) ;
Sprite * AChar = ( Sprite * ) label - > getChildByTag ( 12 ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
ActionInterval * rotate = RotateBy : : create ( 2 , 360 ) ;
Action * rot_4ever = RepeatForever : : create ( rotate ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
ActionInterval * scale = ScaleBy : : create ( 2 , 1.5f ) ;
ActionInterval * scale_back = scale - > reverse ( ) ;
Sequence * scale_seq = Sequence : : create ( scale , scale_back , NULL ) ;
Action * scale_4ever = RepeatForever : : create ( scale_seq ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
ActionInterval * jump = JumpBy : : create ( 0.5f , PointZero , 60 , 1 ) ;
Action * jump_4ever = RepeatForever : : create ( jump ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
ActionInterval * fade_out = FadeOut : : create ( 1 ) ;
ActionInterval * fade_in = FadeIn : : create ( 1 ) ;
Sequence * seq = Sequence : : create ( fade_out , fade_in , NULL ) ;
Action * fade_4ever = RepeatForever : : create ( seq ) ;
2012-04-19 14:35:52 +08:00
BChar - > runAction ( rot_4ever ) ;
BChar - > runAction ( scale_4ever ) ;
FChar - > runAction ( jump_4ever ) ;
AChar - > runAction ( fade_4ever ) ;
// Bottom Label
2013-06-20 14:17:10 +08:00
LabelBMFont * label2 = LabelBMFont : : create ( " 00.0 " , " fonts/bitmapFontTest.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label2 , 0 , kTagBitmapAtlas2 ) ;
label2 - > setPosition ( ccp ( s . width / 2.0f , 80 ) ) ;
2013-06-20 14:17:10 +08:00
Sprite * lastChar = ( Sprite * ) label2 - > getChildByTag ( 3 ) ;
2013-06-19 07:12:28 +08:00
lastChar - > runAction ( rot_4ever - > clone ( ) ) ;
2012-04-19 14:35:52 +08:00
schedule ( schedule_selector ( Atlas4 : : step ) , 0.1f ) ;
2010-09-07 11:47:54 +08:00
}
void Atlas4 : : draw ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-04-19 14:35:52 +08:00
ccDrawLine ( ccp ( 0 , s . height / 2 ) , ccp ( s . width , s . height / 2 ) ) ;
ccDrawLine ( ccp ( s . width / 2 , 0 ) , ccp ( s . width / 2 , s . height ) ) ;
2010-09-07 11:47:54 +08:00
}
2012-06-08 13:55:28 +08:00
void Atlas4 : : step ( float dt )
2010-09-07 11:47:54 +08:00
{
2013-06-15 14:03:30 +08:00
_time + = dt ;
2010-09-07 11:47:54 +08:00
char string [ 10 ] = { 0 } ;
2013-06-15 14:03:30 +08:00
sprintf ( string , " %04.1f " , _time ) ;
2012-04-19 14:35:52 +08:00
// std::string string;
2013-06-15 14:03:30 +08:00
// string.format("%04.1f", _time);
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = ( LabelBMFont * ) getChildByTag ( kTagBitmapAtlas2 ) ;
2012-04-19 14:35:52 +08:00
label1 - > setString ( string ) ;
2010-09-07 11:47:54 +08:00
}
std : : string Atlas4 : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
std : : string Atlas4 : : subtitle ( )
{
2013-06-20 14:17:10 +08:00
return " Using fonts as Sprite objects. Some characters should rotate. " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// Atlas5
2012-03-22 11:48: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)
2011-07-08 15:57:46 +08:00
// http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2010-09-07 11:47:54 +08:00
//
//------------------------------------------------------------------
Atlas5 : : Atlas5 ( )
{
2013-06-20 14:17:10 +08:00
LabelBMFont * label = LabelBMFont : : create ( " abcdefg " , " fonts/bitmapFontTest4.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-04-19 14:35:52 +08:00
label - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2010-09-07 11:47:54 +08:00
}
std : : string Atlas5 : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
std : : string Atlas5 : : subtitle ( )
2012-03-22 11:48:37 +08:00
{
2012-04-19 14:35:52 +08:00
return " Testing padding " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// Atlas6
2012-03-22 11:48: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)
2011-07-08 15:57:46 +08:00
// http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2010-09-07 11:47:54 +08:00
//
//------------------------------------------------------------------
Atlas6 : : Atlas6 ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label = NULL ;
label = LabelBMFont : : create ( " FaFeFiFoFu " , " fonts/bitmapFontTest5.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
label - > setPosition ( ccp ( s . width / 2 , s . height / 2 + 50 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2013-06-20 14:17:10 +08:00
label = LabelBMFont : : create ( " fafefifofu " , " fonts/bitmapFontTest5.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
label - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
label = LabelBMFont : : create ( " aeiou " , " fonts/bitmapFontTest5.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
label - > setPosition ( ccp ( s . width / 2 , s . height / 2 - 50 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2010-09-07 11:47:54 +08:00
}
std : : string Atlas6 : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
std : : string Atlas6 : : subtitle ( )
2012-03-22 11:48:37 +08:00
{
2012-04-19 14:35:52 +08:00
return " Rendering should be OK. Testing offset " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// AtlasBitmapColor
2012-03-22 11:48: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)
2011-07-08 15:57:46 +08:00
// http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2010-09-07 11:47:54 +08:00
//
//------------------------------------------------------------------
2012-03-22 11:48:37 +08:00
AtlasBitmapColor : : AtlasBitmapColor ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-04-19 14:35:52 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label = NULL ;
label = LabelBMFont : : create ( " Blue " , " fonts/bitmapFontTest5.fnt " ) ;
2012-04-19 14:35:52 +08:00
label - > setColor ( ccBLUE ) ;
addChild ( label ) ;
label - > setPosition ( ccp ( s . width / 2 , s . height / 4 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
2013-06-20 14:17:10 +08:00
label = LabelBMFont : : create ( " Red " , " fonts/bitmapFontTest5.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
label - > setPosition ( ccp ( s . width / 2 , 2 * s . height / 4 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
label - > setColor ( ccRED ) ;
2013-06-20 14:17:10 +08:00
label = LabelBMFont : : create ( " G " , " fonts/bitmapFontTest5.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
label - > setPosition ( ccp ( s . width / 2 , 3 * s . height / 4 ) ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
label - > setColor ( ccGREEN ) ;
label - > setString ( " Green " ) ;
2012-03-22 11:48:37 +08:00
}
std : : string AtlasBitmapColor : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont " ;
2012-03-22 11:48:37 +08:00
}
std : : string AtlasBitmapColor : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " Testing color " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
//------------------------------------------------------------------
//
// AtlasFastBitmap
2012-03-22 11:48: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)
2011-07-08 15:57:46 +08:00
// http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2010-09-07 11:47:54 +08:00
//
//------------------------------------------------------------------
AtlasFastBitmap : : AtlasFastBitmap ( )
{
2012-04-19 14:35:52 +08:00
// Upper Label
for ( int i = 0 ; i < 100 ; i + + )
{
2010-09-07 11:47:54 +08:00
char str [ 6 ] = { 0 } ;
sprintf ( str , " -%d- " , i ) ;
2013-06-20 14:17:10 +08:00
LabelBMFont * label = LabelBMFont : : create ( str , " fonts/bitmapFontTest.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label ) ;
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2010-09-07 11:47:54 +08:00
2013-06-20 14:17:10 +08:00
Point p = ccp ( CCRANDOM_0_1 ( ) * s . width , CCRANDOM_0_1 ( ) * s . height ) ;
2012-04-19 14:35:52 +08:00
label - > setPosition ( p ) ;
label - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
}
2010-09-07 11:47:54 +08:00
}
std : : string AtlasFastBitmap : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont " ;
2012-03-22 11:48:37 +08:00
}
2010-09-07 11:47:54 +08:00
std : : string AtlasFastBitmap : : subtitle ( )
{
2013-06-20 14:17:10 +08:00
return " Creating several LabelBMFont with the same .fnt file should be fast " ;
2012-03-22 11:48:37 +08:00
}
2011-02-23 16:47:25 +08:00
//------------------------------------------------------------------
//
// BitmapFontMultiLine
2012-03-22 11:48: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)
2011-07-08 15:57:46 +08:00
// http://www.angelcode.com/products/bmfont/ (Free, Windows only)
2011-02-23 16:47:25 +08:00
//
2012-03-22 11:48:37 +08:00
//------------------------------------------------------------------
BitmapFontMultiLine : : BitmapFontMultiLine ( )
{
2013-06-20 14:17:10 +08:00
Size s ;
2012-03-22 11:48:37 +08:00
// Left
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = LabelBMFont : : create ( " Multi line \n Left " , " fonts/bitmapFontTest3.fnt " ) ;
2012-03-22 11:48:37 +08:00
label1 - > setAnchorPoint ( ccp ( 0 , 0 ) ) ;
addChild ( label1 , 0 , kTagBitmapAtlas1 ) ;
s = label1 - > getContentSize ( ) ;
CCLOG ( " content size: %.2fx%.2f " , s . width , s . height ) ;
// Center
2013-06-20 14:17:10 +08:00
LabelBMFont * label2 = LabelBMFont : : create ( " Multi line \n Center " , " fonts/bitmapFontTest3.fnt " ) ;
2012-03-22 11:48:37 +08:00
label2 - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
addChild ( label2 , 0 , kTagBitmapAtlas2 ) ;
s = label2 - > getContentSize ( ) ;
CCLOG ( " content size: %.2fx%.2f " , s . width , s . height ) ;
// right
2013-06-20 14:17:10 +08:00
LabelBMFont * label3 = LabelBMFont : : create ( " Multi line \n Right \n Three lines Three " , " fonts/bitmapFontTest3.fnt " ) ;
2012-03-22 11:48:37 +08:00
label3 - > setAnchorPoint ( ccp ( 1 , 1 ) ) ;
addChild ( label3 , 0 , kTagBitmapAtlas3 ) ;
s = label3 - > getContentSize ( ) ;
CCLOG ( " content size: %.2fx%.2f " , s . width , s . height ) ;
2012-10-23 17:48:50 +08:00
label1 - > setPosition ( VisibleRect : : leftBottom ( ) ) ;
label2 - > setPosition ( VisibleRect : : center ( ) ) ;
label3 - > setPosition ( VisibleRect : : rightTop ( ) ) ;
2012-03-22 11:48:37 +08:00
}
std : : string BitmapFontMultiLine : : title ( )
{
return " CCLabelBMFont " ;
}
std : : string BitmapFontMultiLine : : subtitle ( )
{
return " Multiline + anchor point " ;
}
2011-02-23 16:47:25 +08:00
//------------------------------------------------------------------
//
// LabelsEmpty
//
2012-03-22 11:48:37 +08:00
//------------------------------------------------------------------
LabelsEmpty : : LabelsEmpty ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
// LabelBMFont
LabelBMFont * label1 = LabelBMFont : : create ( " " , " fonts/bitmapFontTest3.fnt " ) ;
2012-03-22 11:48:37 +08:00
addChild ( label1 , 0 , kTagBitmapAtlas1 ) ;
label1 - > setPosition ( ccp ( s . width / 2 , s . height - 100 ) ) ;
2013-06-20 14:17:10 +08:00
// LabelTTF
LabelTTF * label2 = LabelTTF : : create ( " " , " Arial " , 24 ) ;
2012-03-22 11:48:37 +08:00
addChild ( label2 , 0 , kTagBitmapAtlas2 ) ;
label2 - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
2013-06-20 14:17:10 +08:00
// LabelAtlas
LabelAtlas * label3 = LabelAtlas : : create ( " " , " fonts/tuffy_bold_italic-charmap.png " , 48 , 64 , ' ' ) ;
2012-03-22 11:48:37 +08:00
addChild ( label3 , 0 , kTagBitmapAtlas3 ) ;
label3 - > setPosition ( ccp ( s . width / 2 , 0 + 100 ) ) ;
schedule ( schedule_selector ( LabelsEmpty : : updateStrings ) , 1.0f ) ;
setEmpty = false ;
}
2012-06-08 13:55:28 +08:00
void LabelsEmpty : : updateStrings ( float dt )
2012-03-22 11:48:37 +08:00
{
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = ( LabelBMFont * ) getChildByTag ( kTagBitmapAtlas1 ) ;
LabelTTF * label2 = ( LabelTTF * ) getChildByTag ( kTagBitmapAtlas2 ) ;
LabelAtlas * label3 = ( LabelAtlas * ) getChildByTag ( kTagBitmapAtlas3 ) ;
2012-03-22 11:48:37 +08:00
if ( ! setEmpty )
{
label1 - > setString ( " not empty " ) ;
label2 - > setString ( " not empty " ) ;
label3 - > setString ( " hi " ) ;
setEmpty = true ;
}
else
{
label1 - > setString ( " " ) ;
label2 - > setString ( " " ) ;
label3 - > setString ( " " ) ;
setEmpty = false ;
}
}
std : : string LabelsEmpty : : title ( )
{
return " Testing empty labels " ;
}
std : : string LabelsEmpty : : subtitle ( )
{
return " 3 empty labels: LabelAtlas, LabelTTF and LabelBMFont " ;
}
2011-02-23 16:47:25 +08:00
//------------------------------------------------------------------
//
// LabelBMFontHD
//
2012-03-22 11:48:37 +08:00
//------------------------------------------------------------------
LabelBMFontHD : : LabelBMFontHD ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
// LabelBMFont
LabelBMFont * label1 = LabelBMFont : : create ( " TESTING RETINA DISPLAY " , " fonts/konqa32.fnt " ) ;
2012-03-22 11:48:37 +08:00
addChild ( label1 ) ;
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
}
std : : string LabelBMFontHD : : title ( )
{
return " Testing Retina Display BMFont " ;
}
std : : string LabelBMFontHD : : subtitle ( )
{
return " loading arista16 or arista16-hd " ;
}
2011-02-23 16:47:25 +08:00
//------------------------------------------------------------------
//
// LabelAtlasHD
//
2012-03-22 11:48:37 +08:00
//------------------------------------------------------------------
LabelAtlasHD : : LabelAtlasHD ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
// LabelBMFont
LabelAtlas * label1 = LabelAtlas : : create ( " TESTING RETINA DISPLAY " , " fonts/larabie-16.plist " ) ;
2012-03-22 11:48:37 +08:00
label1 - > setAnchorPoint ( ccp ( 0.5f , 0.5f ) ) ;
addChild ( label1 ) ;
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
}
std : : string LabelAtlasHD : : title ( )
{
return " LabelAtlas with Retina Display " ;
}
std : : string LabelAtlasHD : : subtitle ( )
{
return " loading larabie-16 / larabie-16-hd " ;
}
2011-02-23 16:47:25 +08:00
//------------------------------------------------------------------
//
// LabelGlyphDesigner
//
2012-03-22 11:48:37 +08:00
//------------------------------------------------------------------
LabelGlyphDesigner : : LabelGlyphDesigner ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LayerColor * layer = LayerColor : : create ( ccc4 ( 128 , 128 , 128 , 255 ) ) ;
2012-03-22 11:48:37 +08:00
addChild ( layer , - 10 ) ;
2013-06-20 14:17:10 +08:00
// LabelBMFont
LabelBMFont * label1 = LabelBMFont : : create ( " Testing Glyph Designer " , " fonts/futura-48.fnt " ) ;
2012-03-22 11:48:37 +08:00
addChild ( label1 ) ;
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
}
std : : string LabelGlyphDesigner : : title ( )
{
return " Testing Glyph Designer " ;
}
std : : string LabelGlyphDesigner : : subtitle ( )
{
return " You should see a font with shawdows and outline " ;
}
void AtlasTestScene : : runThisTest ( )
{
2013-02-28 15:57:15 +08:00
sceneIdx = - 1 ;
2013-06-20 14:17:10 +08:00
Layer * pLayer = nextAtlasAction ( ) ;
2012-03-22 11:48:37 +08:00
addChild ( pLayer ) ;
2013-06-20 14:17:10 +08:00
Director : : sharedDirector ( ) - > replaceScene ( this ) ;
2012-03-22 11:48:37 +08:00
}
2011-07-06 14:56:05 +08:00
//------------------------------------------------------------------
//
// LabelTTFTest
//
2012-03-22 11:48:37 +08:00
//------------------------------------------------------------------
LabelTTFTest : : LabelTTFTest ( )
{
2013-06-20 14:17:10 +08:00
Size blockSize = CCSizeMake ( 200 , 160 ) ;
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-20 14:17:10 +08:00
LayerColor * colorLayer = LayerColor : : create ( ccc4 ( 100 , 100 , 100 , 255 ) , blockSize . width , blockSize . height ) ;
2012-06-15 15:10:40 +08:00
colorLayer - > setAnchorPoint ( ccp ( 0 , 0 ) ) ;
colorLayer - > setPosition ( ccp ( ( s . width - blockSize . width ) / 2 , ( s . height - blockSize . height ) / 2 ) ) ;
this - > addChild ( colorLayer ) ;
2013-06-20 14:17:10 +08:00
MenuItemFont : : setFontSize ( 30 ) ;
Menu * menu = Menu : : create (
MenuItemFont : : create ( " Left " , CC_CALLBACK_1 ( LabelTTFTest : : setAlignmentLeft , this ) ) ,
MenuItemFont : : create ( " Center " , CC_CALLBACK_1 ( LabelTTFTest : : setAlignmentCenter , this ) ) ,
MenuItemFont : : create ( " Right " , CC_CALLBACK_1 ( LabelTTFTest : : setAlignmentRight , this ) ) ,
2012-06-15 15:10:40 +08:00
NULL ) ;
menu - > alignItemsVerticallyWithPadding ( 4 ) ;
menu - > setPosition ( ccp ( 50 , s . height / 2 - 20 ) ) ;
this - > addChild ( menu ) ;
2013-06-20 14:17:10 +08:00
menu = Menu : : create (
MenuItemFont : : create ( " Top " , CC_CALLBACK_1 ( LabelTTFTest : : setAlignmentTop , this ) ) ,
MenuItemFont : : create ( " Middle " , CC_CALLBACK_1 ( LabelTTFTest : : setAlignmentMiddle , this ) ) ,
MenuItemFont : : create ( " Bottom " , CC_CALLBACK_1 ( LabelTTFTest : : setAlignmentBottom , this ) ) ,
2013-06-08 08:21:11 +08:00
NULL ) ;
2012-06-15 15:10:40 +08:00
menu - > alignItemsVerticallyWithPadding ( 4 ) ;
menu - > setPosition ( ccp ( s . width - 50 , s . height / 2 - 20 ) ) ;
this - > addChild ( menu ) ;
2013-06-15 14:03:30 +08:00
_plabel = NULL ;
2013-06-20 14:17:10 +08:00
_horizAlign = kTextAlignmentLeft ;
_vertAlign = kVerticalTextAlignmentTop ;
2012-06-15 15:10:40 +08:00
2012-06-12 14:33:53 +08:00
this - > updateAlignment ( ) ;
}
LabelTTFTest : : ~ LabelTTFTest ( )
{
2013-06-15 14:03:30 +08:00
CC_SAFE_RELEASE ( _plabel ) ;
2012-06-12 14:33:53 +08:00
}
2012-06-15 15:10:40 +08:00
void LabelTTFTest : : updateAlignment ( )
{
2013-06-20 14:17:10 +08:00
Size blockSize = CCSizeMake ( 200 , 160 ) ;
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-15 14:03:30 +08:00
if ( _plabel )
2012-06-12 14:33:53 +08:00
{
2013-06-15 14:03:30 +08:00
_plabel - > removeFromParentAndCleanup ( true ) ;
2012-06-15 15:10:40 +08:00
}
2013-03-21 09:00:55 +08:00
2013-06-15 14:03:30 +08:00
CC_SAFE_RELEASE ( _plabel ) ;
2013-03-21 09:00:55 +08:00
2013-06-20 14:17:10 +08:00
_plabel = LabelTTF : : create ( this - > getCurrentAlignment ( ) , " Marker Felt " , 32 ,
2013-06-15 14:03:30 +08:00
blockSize , _horizAlign , _vertAlign ) ;
_plabel - > retain ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-15 14:03:30 +08:00
_plabel - > setAnchorPoint ( ccp ( 0 , 0 ) ) ;
_plabel - > setPosition ( ccp ( ( s . width - blockSize . width ) / 2 , ( s . height - blockSize . height ) / 2 ) ) ;
2012-06-15 15:10:40 +08:00
2013-06-15 14:03:30 +08:00
this - > addChild ( _plabel ) ;
2012-06-15 15:10:40 +08:00
}
2013-06-20 14:17:10 +08:00
void LabelTTFTest : : setAlignmentLeft ( Object * pSender )
2012-06-15 15:10:40 +08:00
{
2013-06-20 14:17:10 +08:00
_horizAlign = kTextAlignmentLeft ;
2012-06-15 15:10:40 +08:00
this - > updateAlignment ( ) ;
}
2013-06-20 14:17:10 +08:00
void LabelTTFTest : : setAlignmentCenter ( Object * pSender )
2012-06-15 15:10:40 +08:00
{
2013-06-20 14:17:10 +08:00
_horizAlign = kTextAlignmentCenter ;
2012-06-15 15:10:40 +08:00
this - > updateAlignment ( ) ;
}
2013-06-20 14:17:10 +08:00
void LabelTTFTest : : setAlignmentRight ( Object * pSender )
2012-06-15 15:10:40 +08:00
{
2013-06-20 14:17:10 +08:00
_horizAlign = kTextAlignmentRight ;
2012-06-15 15:10:40 +08:00
this - > updateAlignment ( ) ;
}
2013-06-20 14:17:10 +08:00
void LabelTTFTest : : setAlignmentTop ( Object * pSender )
2012-06-15 15:10:40 +08:00
{
2013-06-20 14:17:10 +08:00
_vertAlign = kVerticalTextAlignmentTop ;
2012-06-15 15:10:40 +08:00
this - > updateAlignment ( ) ;
}
2013-06-20 14:17:10 +08:00
void LabelTTFTest : : setAlignmentMiddle ( Object * pSender )
2012-06-15 15:10:40 +08:00
{
2013-06-20 14:17:10 +08:00
_vertAlign = kVerticalTextAlignmentCenter ;
2012-06-15 15:10:40 +08:00
this - > updateAlignment ( ) ;
}
2013-06-20 14:17:10 +08:00
void LabelTTFTest : : setAlignmentBottom ( Object * pSender )
2012-06-15 15:10:40 +08:00
{
2013-06-20 14:17:10 +08:00
_vertAlign = kVerticalTextAlignmentBottom ;
2012-06-15 15:10:40 +08:00
this - > updateAlignment ( ) ;
}
const char * LabelTTFTest : : getCurrentAlignment ( )
{
const char * vertical = NULL ;
const char * horizontal = NULL ;
2013-06-15 14:03:30 +08:00
switch ( _vertAlign ) {
2013-06-20 14:17:10 +08:00
case kVerticalTextAlignmentTop :
2012-06-15 15:10:40 +08:00
vertical = " Top " ;
break ;
2013-06-20 14:17:10 +08:00
case kVerticalTextAlignmentCenter :
2012-06-15 15:10:40 +08:00
vertical = " Middle " ;
break ;
2013-06-20 14:17:10 +08:00
case kVerticalTextAlignmentBottom :
2012-06-15 15:10:40 +08:00
vertical = " Bottom " ;
break ;
}
2013-06-15 14:03:30 +08:00
switch ( _horizAlign ) {
2013-06-20 14:17:10 +08:00
case kTextAlignmentLeft :
2012-06-15 15:10:40 +08:00
horizontal = " Left " ;
break ;
2013-06-20 14:17:10 +08:00
case kTextAlignmentCenter :
2012-06-15 15:10:40 +08:00
horizontal = " Center " ;
break ;
2013-06-20 14:17:10 +08:00
case kTextAlignmentRight :
2012-06-15 15:10:40 +08:00
horizontal = " Right " ;
break ;
}
2013-06-20 14:17:10 +08:00
return String : : createWithFormat ( " Alignment %s %s " , vertical , horizontal ) - > getCString ( ) ;
2012-03-22 11:48:37 +08:00
}
string LabelTTFTest : : title ( )
{
2013-06-20 14:17:10 +08:00
return " Testing LabelTTF " ;
2012-03-22 11:48:37 +08:00
}
string LabelTTFTest : : subtitle ( )
{
2012-06-12 14:33:53 +08:00
return " Select the buttons on the sides to change alignment " ;
2012-03-22 11:48:37 +08:00
}
LabelTTFMultiline : : LabelTTFMultiline ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LabelTTF * center = LabelTTF : : create ( " word wrap \" testing \" (bla0) bla1 'bla2' [bla3] (bla4) {bla5} {bla6} [bla7] (bla8) [bla9] 'bla0' \" bla1 \" " ,
2012-08-01 13:24:23 +08:00
" Paint Boy " ,
32 ,
CCSizeMake ( s . width / 2 , 200 ) ,
2013-06-20 14:17:10 +08:00
kTextAlignmentCenter ,
kVerticalTextAlignmentTop ) ;
2012-06-12 14:33:53 +08:00
2012-04-19 14:35:52 +08:00
center - > setPosition ( ccp ( s . width / 2 , 150 ) ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
addChild ( center ) ;
2012-03-22 11:48:37 +08:00
}
string LabelTTFMultiline : : title ( )
{
2013-06-20 14:17:10 +08:00
return " Testing LabelTTF Word Wrap " ;
2012-03-22 11:48:37 +08:00
}
string LabelTTFMultiline : : subtitle ( )
{
2013-06-20 14:17:10 +08:00
return " Word wrap using LabelTTF and a custom TTF font " ;
2012-03-22 11:48:37 +08:00
}
LabelTTFChinese : : LabelTTFChinese ( )
{
2013-06-20 14:17:10 +08:00
Size size = Director : : sharedDirector ( ) - > getWinSize ( ) ;
LabelTTF * pLable = LabelTTF : : create ( " 中国 " , " Marker Felt " , 30 ) ;
2012-04-19 14:35:52 +08:00
pLable - > setPosition ( ccp ( size . width / 2 , size . height / 2 ) ) ;
this - > addChild ( pLable ) ;
2012-03-22 11:48:37 +08:00
}
string LabelTTFChinese : : title ( )
{
2013-06-20 14:17:10 +08:00
return " Testing LabelTTF with Chinese character " ;
2012-03-22 11:48:37 +08:00
}
2012-01-18 18:43:41 +08:00
LabelBMFontChinese : : LabelBMFontChinese ( )
{
2013-06-20 14:17:10 +08:00
Size size = Director : : sharedDirector ( ) - > getWinSize ( ) ;
LabelBMFont * pLable = LabelBMFont : : create ( " 中国 " , " fonts/bitmapFontChinese.fnt " ) ;
2012-03-22 11:48:37 +08:00
pLable - > setPosition ( ccp ( size . width / 2 , size . height / 2 ) ) ;
2012-01-18 18:43:41 +08:00
this - > addChild ( pLable ) ;
}
2012-03-22 11:48:37 +08:00
string LabelBMFontChinese : : title ( )
{
2013-06-20 14:17:10 +08:00
return " Testing LabelBMFont with Chinese character " ;
2012-03-22 11:48:37 +08:00
}
/// BitmapFontMultiLineAlignment
# define LongSentencesExample "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
# define LineBreaksExample "Lorem ipsum dolor\nsit amet\nconsectetur adipisicing elit\nblah\nblah"
# define MixedExample "ABC\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt\nDEF"
# define ArrowsMax 0.95
# define ArrowsMin 0.7
# define LeftAlign 0
# define CenterAlign 1
# define RightAlign 2
# define LongSentences 0
# define LineBreaks 1
# define Mixed 2
static float alignmentItemPadding = 50 ;
static float menuItemPaddingCenter = 50 ;
BitmapFontMultiLineAlignment : : BitmapFontMultiLineAlignment ( )
{
2012-06-15 15:10:40 +08:00
this - > setTouchEnabled ( true ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
// ask director the the window size
2013-06-20 14:17:10 +08:00
Size size = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
// create and initialize a Label
2013-06-20 14:17:10 +08:00
this - > _labelShouldRetain = LabelBMFont : : create ( LongSentencesExample , " fonts/markerFelt.fnt " , size . width / 1.5 , kTextAlignmentCenter ) ;
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > retain ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
this - > _arrowsBarShouldRetain = Sprite : : create ( " Images/arrowsBar.png " ) ;
2013-06-15 14:03:30 +08:00
this - > _arrowsBarShouldRetain - > retain ( ) ;
2013-06-20 14:17:10 +08:00
this - > _arrowsShouldRetain = Sprite : : create ( " Images/arrows.png " ) ;
2013-06-15 14:03:30 +08:00
this - > _arrowsShouldRetain - > retain ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
MenuItemFont : : setFontSize ( 20 ) ;
MenuItemFont * longSentences = MenuItemFont : : create ( " Long Flowing Sentences " , CC_CALLBACK_1 ( BitmapFontMultiLineAlignment : : stringChanged , this ) ) ;
MenuItemFont * lineBreaks = MenuItemFont : : create ( " Short Sentences With Intentional Line Breaks " , CC_CALLBACK_1 ( BitmapFontMultiLineAlignment : : stringChanged , this ) ) ;
MenuItemFont * mixed = MenuItemFont : : create ( " Long Sentences Mixed With Intentional Line Breaks " , CC_CALLBACK_1 ( BitmapFontMultiLineAlignment : : stringChanged , this ) ) ;
Menu * stringMenu = Menu : : create ( longSentences , lineBreaks , mixed , NULL ) ;
2012-04-19 14:35:52 +08:00
stringMenu - > alignItemsVertically ( ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
longSentences - > setColor ( ccRED ) ;
2013-06-15 14:03:30 +08:00
_lastSentenceItem = longSentences ;
2012-07-24 11:32:02 +08:00
longSentences - > setTag ( LongSentences ) ;
2012-04-19 14:35:52 +08:00
lineBreaks - > setTag ( LineBreaks ) ;
mixed - > setTag ( Mixed ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
MenuItemFont : : setFontSize ( 30 ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
MenuItemFont * left = MenuItemFont : : create ( " Left " , CC_CALLBACK_1 ( BitmapFontMultiLineAlignment : : alignmentChanged , this ) ) ;
MenuItemFont * center = MenuItemFont : : create ( " Center " , CC_CALLBACK_1 ( BitmapFontMultiLineAlignment : : alignmentChanged , this ) ) ;
MenuItemFont * right = MenuItemFont : : create ( " Right " , CC_CALLBACK_1 ( BitmapFontMultiLineAlignment : : alignmentChanged , this ) ) ;
Menu * alignmentMenu = Menu : : create ( left , center , right , NULL ) ;
2012-04-19 14:35:52 +08:00
alignmentMenu - > alignItemsHorizontallyWithPadding ( alignmentItemPadding ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
center - > setColor ( ccRED ) ;
2013-06-15 14:03:30 +08:00
_lastAlignmentItem = center ;
2012-04-19 14:35:52 +08:00
left - > setTag ( LeftAlign ) ;
center - > setTag ( CenterAlign ) ;
right - > setTag ( RightAlign ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
// position the label on the center of the screen
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > setPosition ( ccp ( size . width / 2 , size . height / 2 ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
this - > _arrowsBarShouldRetain - > setVisible ( false ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
float arrowsWidth = ( ArrowsMax - ArrowsMin ) * size . width ;
2013-06-15 14:03:30 +08:00
this - > _arrowsBarShouldRetain - > setScaleX ( arrowsWidth / this - > _arrowsBarShouldRetain - > getContentSize ( ) . width ) ;
this - > _arrowsBarShouldRetain - > setPosition ( ccp ( ( ( ArrowsMax + ArrowsMin ) / 2 ) * size . width , this - > _labelShouldRetain - > getPosition ( ) . y ) ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
this - > snapArrowsToEdge ( ) ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
stringMenu - > setPosition ( ccp ( size . width / 2 , size . height - menuItemPaddingCenter ) ) ;
alignmentMenu - > setPosition ( ccp ( size . width / 2 , menuItemPaddingCenter + 15 ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
this - > addChild ( this - > _labelShouldRetain ) ;
this - > addChild ( this - > _arrowsBarShouldRetain ) ;
this - > addChild ( this - > _arrowsShouldRetain ) ;
2012-04-19 14:35:52 +08:00
this - > addChild ( stringMenu ) ;
this - > addChild ( alignmentMenu ) ;
2012-03-22 11:48:37 +08:00
}
BitmapFontMultiLineAlignment : : ~ BitmapFontMultiLineAlignment ( )
{
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > release ( ) ;
this - > _arrowsBarShouldRetain - > release ( ) ;
this - > _arrowsShouldRetain - > release ( ) ;
2012-03-22 11:48:37 +08:00
}
std : : string BitmapFontMultiLineAlignment : : title ( )
{
2012-04-19 14:35:52 +08:00
return " " ;
2012-03-22 11:48:37 +08:00
}
std : : string BitmapFontMultiLineAlignment : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " " ;
2012-03-22 11:48:37 +08:00
}
2013-06-20 14:17:10 +08:00
void BitmapFontMultiLineAlignment : : stringChanged ( cocos2d : : Object * sender )
2012-03-22 11:48:37 +08:00
{
2013-06-20 14:17:10 +08:00
MenuItemFont * item = ( MenuItemFont * ) sender ;
2012-04-19 14:35:52 +08:00
item - > setColor ( ccRED ) ;
2013-06-15 14:03:30 +08:00
this - > _lastAlignmentItem - > setColor ( ccWHITE ) ;
this - > _lastAlignmentItem = item ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
switch ( item - > getTag ( ) )
{
case LongSentences :
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > setString ( LongSentencesExample ) ;
2012-04-19 14:35:52 +08:00
break ;
case LineBreaks :
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > setString ( LineBreaksExample ) ;
2012-04-19 14:35:52 +08:00
break ;
case Mixed :
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > setString ( MixedExample ) ;
2012-04-19 14:35:52 +08:00
break ;
default :
break ;
}
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
this - > snapArrowsToEdge ( ) ;
2012-03-22 11:48:37 +08:00
}
2013-06-20 14:17:10 +08:00
void BitmapFontMultiLineAlignment : : alignmentChanged ( cocos2d : : Object * sender )
2012-03-22 11:48:37 +08:00
{
2013-06-20 14:17:10 +08:00
MenuItemFont * item = ( MenuItemFont * ) sender ;
2012-04-19 14:35:52 +08:00
item - > setColor ( ccRED ) ;
2013-06-15 14:03:30 +08:00
this - > _lastAlignmentItem - > setColor ( ccWHITE ) ;
this - > _lastAlignmentItem = item ;
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
switch ( item - > getTag ( ) )
{
case LeftAlign :
2013-06-20 14:17:10 +08:00
this - > _labelShouldRetain - > setAlignment ( kTextAlignmentLeft ) ;
2012-04-19 14:35:52 +08:00
break ;
case CenterAlign :
2013-06-20 14:17:10 +08:00
this - > _labelShouldRetain - > setAlignment ( kTextAlignmentCenter ) ;
2012-04-19 14:35:52 +08:00
break ;
case RightAlign :
2013-06-20 14:17:10 +08:00
this - > _labelShouldRetain - > setAlignment ( kTextAlignmentRight ) ;
2012-04-19 14:35:52 +08:00
break ;
default :
break ;
}
2012-03-22 11:48:37 +08:00
2012-04-19 14:35:52 +08:00
this - > snapArrowsToEdge ( ) ;
2012-03-22 11:48:37 +08:00
}
2013-06-20 14:17:10 +08:00
void BitmapFontMultiLineAlignment : : ccTouchesBegan ( cocos2d : : Set * pTouches , cocos2d : : Event * pEvent )
2012-03-22 11:48:37 +08:00
{
2013-06-20 14:17:10 +08:00
Touch * touch = ( Touch * ) pTouches - > anyObject ( ) ;
Point location = touch - > getLocationInView ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
if ( this - > _arrowsShouldRetain - > boundingBox ( ) . containsPoint ( location ) )
2012-04-19 14:35:52 +08:00
{
2013-06-15 14:03:30 +08:00
_drag = true ;
this - > _arrowsBarShouldRetain - > setVisible ( true ) ;
2012-04-19 14:35:52 +08:00
}
2012-03-22 11:48:37 +08:00
}
2013-06-20 14:17:10 +08:00
void BitmapFontMultiLineAlignment : : ccTouchesEnded ( cocos2d : : Set * pTouches , cocos2d : : Event * pEvent )
2012-03-22 11:48:37 +08:00
{
2013-06-15 14:03:30 +08:00
_drag = false ;
2012-04-19 14:35:52 +08:00
this - > snapArrowsToEdge ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
this - > _arrowsBarShouldRetain - > setVisible ( false ) ;
2012-03-22 11:48:37 +08:00
}
2013-06-20 14:17:10 +08:00
void BitmapFontMultiLineAlignment : : ccTouchesMoved ( cocos2d : : Set * pTouches , cocos2d : : Event * pEvent )
2012-03-22 11:48:37 +08:00
{
2013-06-15 14:03:30 +08:00
if ( ! _drag )
2012-04-19 14:35:52 +08:00
{
return ;
}
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
Touch * touch = ( Touch * ) pTouches - > anyObject ( ) ;
Point location = touch - > getLocationInView ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
Size winSize = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
this - > _arrowsShouldRetain - > setPosition ( ccp ( MAX ( MIN ( location . x , ArrowsMax * winSize . width ) , ArrowsMin * winSize . width ) ,
this - > _arrowsShouldRetain - > getPosition ( ) . y ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
float labelWidth = fabs ( this - > _arrowsShouldRetain - > getPosition ( ) . x - this - > _labelShouldRetain - > getPosition ( ) . x ) * 2 ;
2012-03-22 11:48:37 +08:00
2013-06-15 14:03:30 +08:00
this - > _labelShouldRetain - > setWidth ( labelWidth ) ;
2012-03-22 11:48:37 +08:00
}
void BitmapFontMultiLineAlignment : : snapArrowsToEdge ( )
{
2013-06-15 14:03:30 +08:00
this - > _arrowsShouldRetain - > setPosition ( ccp ( this - > _labelShouldRetain - > getPosition ( ) . x + this - > _labelShouldRetain - > getContentSize ( ) . width / 2 ,
this - > _labelShouldRetain - > getPosition ( ) . y ) ) ;
2012-03-22 11:48:37 +08:00
}
/// LabelTTFA8Test
LabelTTFA8Test : : LabelTTFA8Test ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LayerColor * layer = LayerColor : : create ( ccc4 ( 128 , 128 , 128 , 255 ) ) ;
2012-04-19 14:35:52 +08:00
addChild ( layer , - 10 ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
// LabelBMFont
LabelTTF * label1 = LabelTTF : : create ( " Testing A8 Format " , " Marker Felt " , 48 ) ;
2012-04-19 14:35:52 +08:00
addChild ( label1 ) ;
label1 - > setColor ( ccRED ) ;
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
FadeOut * fadeOut = FadeOut : : create ( 2 ) ;
FadeIn * fadeIn = FadeIn : : create ( 2 ) ;
Sequence * seq = Sequence : : create ( fadeOut , fadeIn , NULL ) ;
RepeatForever * forever = RepeatForever : : create ( seq ) ;
2012-04-19 14:35:52 +08:00
label1 - > runAction ( forever ) ;
2012-03-22 11:48:37 +08:00
}
std : : string LabelTTFA8Test : : title ( )
{
2012-04-19 14:35:52 +08:00
return " Testing A8 Format " ;
2012-03-22 11:48:37 +08:00
}
std : : string LabelTTFA8Test : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " RED label, fading In and Out in the center of the screen " ;
2012-03-22 11:48:37 +08:00
}
/// BMFontOneAtlas
BMFontOneAtlas : : BMFontOneAtlas ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = LabelBMFont : : create ( " This is Helvetica " , " fonts/helvetica-32.fnt " , kLabelAutomaticWidth , kTextAlignmentLeft , PointZero ) ;
2012-03-22 11:48:37 +08:00
addChild ( label1 ) ;
2012-04-19 14:35:52 +08:00
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 3 * 2 ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label2 = LabelBMFont : : create ( " And this is Geneva " , " fonts/geneva-32.fnt " , kLabelAutomaticWidth , kTextAlignmentLeft , ccp ( 0 , 128 ) ) ;
2012-04-19 14:35:52 +08:00
addChild ( label2 ) ;
label2 - > setPosition ( ccp ( s . width / 2 , s . height / 3 * 1 ) ) ;
2012-03-22 11:48:37 +08:00
}
std : : string BMFontOneAtlas : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont with one texture " ;
2012-03-22 11:48:37 +08:00
}
std : : string BMFontOneAtlas : : subtitle ( )
{
2012-04-19 14:35:52 +08:00
return " Using 2 .fnt definitions that share the same texture atlas. " ;
2012-03-22 11:48:37 +08:00
}
/// BMFontUnicode
BMFontUnicode : : BMFontUnicode ( )
{
2013-06-20 14:17:10 +08:00
Dictionary * strings = Dictionary : : createWithContentsOfFile ( " fonts/strings.xml " ) ;
2013-05-04 20:28:24 +08:00
2013-06-20 14:17:10 +08:00
const char * chinese = ( ( String * ) strings - > objectForKey ( " chinese1 " ) ) - > _string . c_str ( ) ;
const char * japanese = ( ( String * ) strings - > objectForKey ( " japanese " ) ) - > _string . c_str ( ) ;
const char * russian = ( ( String * ) strings - > objectForKey ( " russian " ) ) - > _string . c_str ( ) ;
const char * spanish = ( ( String * ) strings - > objectForKey ( " spanish " ) ) - > _string . c_str ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label1 = LabelBMFont : : create ( spanish , " fonts/arial-unicode-26.fnt " , 200 , kTextAlignmentLeft ) ;
2012-03-22 11:48:37 +08:00
addChild ( label1 ) ;
2013-05-04 20:28:24 +08:00
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 5 * 4 ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label2 = LabelBMFont : : create ( chinese , " fonts/arial-unicode-26.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label2 ) ;
2013-05-04 20:28:24 +08:00
label2 - > setPosition ( ccp ( s . width / 2 , s . height / 5 * 3 ) ) ;
2012-03-22 11:48:37 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * label3 = LabelBMFont : : create ( russian , " fonts/arial-26-en-ru.fnt " ) ;
2012-04-19 14:35:52 +08:00
addChild ( label3 ) ;
2013-05-04 20:28:24 +08:00
label3 - > setPosition ( ccp ( s . width / 2 , s . height / 5 * 2 ) ) ;
2013-06-20 14:17:10 +08:00
LabelBMFont * label4 = LabelBMFont : : create ( japanese , " fonts/arial-unicode-26.fnt " ) ;
2013-05-04 20:28:24 +08:00
addChild ( label4 ) ;
label4 - > setPosition ( ccp ( s . width / 2 , s . height / 5 * 1 ) ) ;
2012-03-22 11:48:37 +08:00
}
std : : string BMFontUnicode : : title ( )
{
2012-04-19 14:35:52 +08:00
return " CCLabelBMFont with Unicode support " ;
2012-03-22 11:48:37 +08:00
}
std : : string BMFontUnicode : : subtitle ( )
{
2013-05-04 20:28:24 +08:00
return " You should see 4 differnt labels: \n In Spanish, Chinese, Russian and Korean " ;
2012-06-15 15:10:40 +08:00
}
// BMFontInit
BMFontInit : : BMFontInit ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * bmFont = new LabelBMFont ( ) ;
2012-06-15 15:10:40 +08:00
bmFont - > init ( ) ;
bmFont - > autorelease ( ) ;
2013-06-20 14:17:10 +08:00
//CCLabelBMFont* bmFont = [LabelBMFont create:@"Foo" fntFile:@"arial-unicode-26.fnt"];
2012-06-15 15:10:40 +08:00
bmFont - > setFntFile ( " fonts/helvetica-32.fnt " ) ;
bmFont - > setString ( " It is working! " ) ;
this - > addChild ( bmFont ) ;
bmFont - > setPosition ( ccp ( s . width / 2 , s . height / 4 * 2 ) ) ;
}
2012-06-12 14:33:53 +08:00
std : : string BMFontInit : : title ( )
{
return " CCLabelBMFont init " ;
}
std : : string BMFontInit : : subtitle ( )
{
return " Test for support of init method without parameters. " ;
2012-06-15 15:10:40 +08:00
}
// TTFFontInit
TTFFontInit : : TTFFontInit ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-20 14:17:10 +08:00
LabelTTF * font = new LabelTTF ( ) ;
2012-06-15 15:10:40 +08:00
font - > init ( ) ;
font - > autorelease ( ) ;
font - > setFontName ( " Marker Felt " ) ;
font - > setFontSize ( 48 ) ;
font - > setString ( " It is working! " ) ;
this - > addChild ( font ) ;
font - > setPosition ( ccp ( s . width / 2 , s . height / 4 * 2 ) ) ;
}
2012-06-12 14:33:53 +08:00
std : : string TTFFontInit : : title ( )
{
return " CCLabelTTF init " ;
}
std : : string TTFFontInit : : subtitle ( )
{
return " Test for support of init method without parameters. " ;
}
2012-06-15 15:10:40 +08:00
2013-04-26 09:22:26 +08:00
TTFFontShadowAndStroke : : TTFFontShadowAndStroke ( )
{
2013-06-20 14:17:10 +08:00
LayerColor * layer = LayerColor : : create ( ccc4 ( 0 , 190 , 0 , 255 ) ) ;
2013-04-26 09:22:26 +08:00
addChild ( layer , - 10 ) ;
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2013-06-08 07:33:01 +08:00
2013-05-01 07:36:14 +08:00
ccColor3B tintColorRed = { 255 , 0 , 0 } ;
ccColor3B tintColorYellow = { 255 , 255 , 0 } ;
ccColor3B tintColorBlue = { 0 , 0 , 255 } ;
2013-05-04 01:07:37 +08:00
ccColor3B strokeColor = { 0 , 10 , 255 } ;
ccColor3B strokeShadowColor = { 255 , 0 , 0 } ;
2013-04-26 09:22:26 +08:00
2013-06-20 14:17:10 +08:00
Size shadowOffset ( 12.0 , 12.0 ) ;
2013-05-04 01:07:37 +08:00
2013-05-09 01:22:04 +08:00
ccFontDefinition shadowTextDef ;
2013-06-15 14:03:30 +08:00
shadowTextDef . _fontSize = 20 ;
shadowTextDef . _fontName = std : : string ( " Marker Felt " ) ;
2013-05-04 01:07:37 +08:00
2013-06-15 14:03:30 +08:00
shadowTextDef . _shadow . _shadowEnabled = true ;
shadowTextDef . _shadow . _shadowOffset = shadowOffset ;
shadowTextDef . _shadow . _shadowOpacity = 1.0 ;
shadowTextDef . _shadow . _shadowBlur = 1.0 ;
shadowTextDef . _fontFillColor = tintColorRed ;
2013-05-01 07:36:14 +08:00
2013-06-08 07:33:01 +08:00
// shadow only label
2013-06-20 14:17:10 +08:00
LabelTTF * fontShadow = LabelTTF : : createWithFontDefinition ( " Shadow Only Red Text " , shadowTextDef ) ;
2013-05-01 07:36:14 +08:00
// add label to the scene
2013-04-26 09:22:26 +08:00
this - > addChild ( fontShadow ) ;
fontShadow - > setPosition ( ccp ( s . width / 2 , s . height / 4 * 2.5 ) ) ;
2013-05-01 07:36:14 +08:00
2013-04-26 09:22:26 +08:00
2013-06-08 07:33:01 +08:00
// create the stroke only label
2013-05-09 01:22:04 +08:00
ccFontDefinition strokeTextDef ;
2013-06-15 14:03:30 +08:00
strokeTextDef . _fontSize = 20 ;
strokeTextDef . _fontName = std : : string ( " Marker Felt " ) ;
2013-05-04 01:07:37 +08:00
2013-06-15 14:03:30 +08:00
strokeTextDef . _stroke . _strokeEnabled = true ;
strokeTextDef . _stroke . _strokeColor = strokeColor ;
strokeTextDef . _stroke . _strokeSize = 1.5 ;
2013-05-01 07:36:14 +08:00
2013-06-15 14:03:30 +08:00
strokeTextDef . _fontFillColor = tintColorYellow ;
2013-05-04 01:07:37 +08:00
2013-06-08 07:33:01 +08:00
// stroke only label
2013-06-20 14:17:10 +08:00
LabelTTF * fontStroke = LabelTTF : : createWithFontDefinition ( " Stroke Only Yellow Text " , strokeTextDef ) ;
2013-05-01 07:36:14 +08:00
// add label to the scene
2013-04-26 09:22:26 +08:00
this - > addChild ( fontStroke ) ;
fontStroke - > setPosition ( ccp ( s . width / 2 , s . height / 4 * 1.8 ) ) ;
2013-05-04 01:07:37 +08:00
// create the label stroke and shadow
2013-05-09 01:22:04 +08:00
ccFontDefinition strokeShaodwTextDef ;
2013-06-15 14:03:30 +08:00
strokeShaodwTextDef . _fontSize = 20 ;
strokeShaodwTextDef . _fontName = std : : string ( " Marker Felt " ) ;
2013-05-04 01:07:37 +08:00
2013-06-15 14:03:30 +08:00
strokeShaodwTextDef . _stroke . _strokeEnabled = true ;
strokeShaodwTextDef . _stroke . _strokeColor = strokeShadowColor ;
strokeShaodwTextDef . _stroke . _strokeSize = 1.5 ;
2013-05-01 07:36:14 +08:00
2013-06-15 14:03:30 +08:00
strokeShaodwTextDef . _shadow . _shadowEnabled = true ;
strokeShaodwTextDef . _shadow . _shadowOffset = shadowOffset ;
strokeShaodwTextDef . _shadow . _shadowOpacity = 1.0 ;
strokeShaodwTextDef . _shadow . _shadowBlur = 1.0 ;
2013-05-01 07:36:14 +08:00
2013-05-09 01:22:04 +08:00
2013-06-15 14:03:30 +08:00
strokeShaodwTextDef . _fontFillColor = tintColorBlue ;
2013-06-08 07:33:01 +08:00
// shadow + stroke label
2013-06-20 14:17:10 +08:00
LabelTTF * fontStrokeAndShadow = LabelTTF : : createWithFontDefinition ( " Stroke & Shadow Blue Text " , strokeShaodwTextDef ) ;
2013-05-01 07:36:14 +08:00
// add label to the scene
2013-04-26 09:22:26 +08:00
this - > addChild ( fontStrokeAndShadow ) ;
fontStrokeAndShadow - > setPosition ( ccp ( s . width / 2 , s . height / 4 * 1.1 ) ) ;
2013-06-08 07:33:01 +08:00
2013-04-26 09:22:26 +08:00
}
std : : string TTFFontShadowAndStroke : : title ( )
{
return " CCLabelTTF shadows + stroke " ;
}
std : : string TTFFontShadowAndStroke : : subtitle ( )
{
return " Test for support of TTF label with stroke and shadow " ;
}
2012-06-15 15:10:40 +08:00
// Issue1343
Issue1343 : : Issue1343 ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-06-15 15:10:40 +08:00
2013-06-20 14:17:10 +08:00
LabelBMFont * bmFont = new LabelBMFont ( ) ;
2012-06-15 15:10:40 +08:00
bmFont - > init ( ) ;
bmFont - > setFntFile ( " fonts/font-issue1343.fnt " ) ;
bmFont - > setString ( " ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz.,' " ) ;
this - > addChild ( bmFont ) ;
bmFont - > release ( ) ;
bmFont - > setScale ( 0.3f ) ;
bmFont - > setPosition ( ccp ( s . width / 2 , s . height / 4 * 2 ) ) ;
}
2012-06-12 14:33:53 +08:00
std : : string Issue1343 : : title ( )
{
return " Issue 1343 " ;
}
std : : string Issue1343 : : subtitle ( )
{
return " You should see: ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz.,' " ;
2012-03-22 11:48:37 +08:00
}
2012-06-12 14:33:53 +08:00
2012-11-20 18:17:47 +08:00
LabelBMFontBounds : : LabelBMFontBounds ( )
{
2013-06-20 14:17:10 +08:00
Size s = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-11-20 18:17:47 +08:00
2013-06-20 14:17:10 +08:00
LayerColor * layer = LayerColor : : create ( ccc4 ( 128 , 128 , 128 , 255 ) ) ;
2012-11-20 18:17:47 +08:00
addChild ( layer , - 10 ) ;
2013-06-20 14:17:10 +08:00
// LabelBMFont
label1 = LabelBMFont : : create ( " Testing Glyph Designer " , " fonts/boundsTestFont.fnt " ) ;
2012-11-20 18:17:47 +08:00
addChild ( label1 ) ;
label1 - > setPosition ( ccp ( s . width / 2 , s . height / 2 ) ) ;
}
string LabelBMFontBounds : : title ( )
{
return " Testing LabelBMFont Bounds " ;
}
string LabelBMFontBounds : : subtitle ( )
{
return " You should see string enclosed by a box " ;
}
void LabelBMFontBounds : : draw ( )
{
2013-06-20 14:17:10 +08:00
Size labelSize = label1 - > getContentSize ( ) ;
Size origin = Director : : sharedDirector ( ) - > getWinSize ( ) ;
2012-11-20 18:17:47 +08:00
origin . width = origin . width / 2 - ( labelSize . width / 2 ) ;
origin . height = origin . height / 2 - ( labelSize . height / 2 ) ;
2013-06-20 14:17:10 +08:00
Point vertices [ 4 ] =
2012-11-20 18:17:47 +08:00
{
ccp ( origin . width , origin . height ) ,
ccp ( labelSize . width + origin . width , origin . height ) ,
ccp ( labelSize . width + origin . width , labelSize . height + origin . height ) ,
ccp ( origin . width , labelSize . height + origin . height )
} ;
ccDrawPoly ( vertices , 4 , true ) ;
}