2013-10-01 12:54:29 +00:00
/ * *
* @ author Richard Davey < rich @ photonstorm . com >
2014-02-05 05:54:25 +00:00
* @ copyright 2014 Photon Storm Ltd .
2013-10-01 12:54:29 +00:00
* @ license { @ link https : //github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
* /
/ * *
2013-11-28 15:57:09 +00:00
* Creates a new BitmapText object .
*
* @ class Phaser . BitmapText
*
* @ classdesc BitmapText objects work by taking a texture file and an XML file that describes the font layout .
*
2013-11-01 17:28:09 +00:00
* On Windows you can use the free app BMFont : http : //www.angelcode.com/products/bmfont/
2013-11-28 15:57:09 +00:00
*
2013-11-01 17:28:09 +00:00
* On OS X we recommend Glyph Designer : http : //www.71squared.com/en/glyphdesigner
*
2013-10-01 12:54:29 +00:00
* @ constructor
* @ param { Phaser . Game } game - A reference to the currently running game .
2013-10-25 14:22:45 +00:00
* @ param { number } x - X position of the new bitmapText object .
* @ param { number } y - Y position of the new bitmapText object .
* @ param { string } text - The actual text that will be written .
* @ param { object } style - The style object containing style attributes like font , font size , etc .
2013-10-01 12:54:29 +00:00
* /
2013-09-10 22:51:35 +00:00
Phaser . BitmapText = function ( game , x , y , text , style ) {
x = x || 0 ;
y = y || 0 ;
text = text || '' ;
style = style || '' ;
2013-11-25 04:40:04 +00:00
/ * *
* @ property { Phaser . Game } game - A reference to the currently running Game .
* /
this . game = game ;
2013-11-25 03:13:04 +00:00
/ * *
* @ property { boolean } exists - If exists = false then the Sprite isn ' t updated by the core game loop or physics subsystem at all .
* @ default
* /
2013-09-10 22:51:35 +00:00
this . exists = true ;
2013-11-25 03:13:04 +00:00
/ * *
2013-10-01 15:39:39 +00:00
* @ property { boolean } alive - This is a handy little var your game can use to determine if a sprite is alive or not , it doesn ' t effect rendering .
2013-11-25 03:13:04 +00:00
* @ default
* /
2013-09-10 22:51:35 +00:00
this . alive = true ;
2013-11-25 03:13:04 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { Phaser . Group } group - The parent Group of this BitmapText .
2013-11-25 03:13:04 +00:00
* /
2013-09-10 22:51:35 +00:00
this . group = null ;
2013-11-25 03:13:04 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { string } name - The user defined name given to this BitmapText .
2013-11-25 03:13:04 +00:00
* @ default
* /
2013-09-10 22:51:35 +00:00
this . name = '' ;
2013-10-01 12:54:29 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { number } type - The const type of this object .
* @ readonly
2013-10-01 12:54:29 +00:00
* /
2013-11-25 04:40:04 +00:00
this . type = Phaser . BITMAPTEXT ;
2013-09-10 22:51:35 +00:00
PIXI . BitmapText . call ( this , text , style ) ;
2013-10-01 12:54:29 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { number } position . x - The x position of this object .
2013-11-25 03:13:04 +00:00
* /
2013-09-10 22:51:35 +00:00
this . position . x = x ;
2013-10-01 12:54:29 +00:00
2013-11-25 03:13:04 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { number } position . y - The y position of this object .
2013-11-25 03:13:04 +00:00
* /
2013-09-10 22:51:35 +00:00
this . position . y = y ;
2013-11-25 03:13:04 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* The anchor sets the origin point of the texture .
* The default is 0 , 0 this means the textures origin is the top left
* Setting than anchor to 0.5 , 0.5 means the textures origin is centered
* Setting the anchor to 1 , 1 would mean the textures origin points will be the bottom right
*
* @ property { Phaser . Point } anchor - The anchor around which rotation and scaling takes place .
2013-11-25 03:13:04 +00:00
* /
2013-09-17 15:28:59 +00:00
this . anchor = new Phaser . Point ( ) ;
2013-10-01 12:54:29 +00:00
2013-11-25 03:13:04 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { Phaser . Point } scale - The scale of the object when rendered . By default it ' s set to 1 ( no scale ) . You can modify it via scale . x or scale . y or scale . setTo ( x , y ) . A value of 1 means no change to the scale , 0.5 means "half the size" , 2 means "twice the size" , etc .
2013-11-25 03:13:04 +00:00
* /
2013-09-10 22:51:35 +00:00
this . scale = new Phaser . Point ( 1 , 1 ) ;
2013-11-25 03:13:04 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* @ property { object } _cache - A mini cache for storing all of the calculated values .
2013-11-25 03:13:04 +00:00
* @ private
* /
this . _cache = {
2013-09-10 22:51:35 +00:00
dirty : false ,
// Transform cache
2013-11-25 03:13:04 +00:00
a00 : 1 ,
a01 : 0 ,
a02 : x ,
a10 : 0 ,
a11 : 1 ,
a12 : y ,
id : 1 ,
2013-09-10 22:51:35 +00:00
2013-10-04 13:41:15 +00:00
// The previous calculated position
2013-11-25 03:13:04 +00:00
x : - 1 ,
y : - 1 ,
2013-09-10 22:51:35 +00:00
// The actual scale values based on the worldTransform
2013-11-25 03:13:04 +00:00
scaleX : 1 ,
scaleY : 1
2013-09-10 22:51:35 +00:00
} ;
2013-10-04 13:41:15 +00:00
this . _cache . x = this . x ;
this . _cache . y = this . y ;
2013-09-10 22:51:35 +00:00
} ;
2013-09-17 15:28:59 +00:00
Phaser . BitmapText . prototype = Object . create ( PIXI . BitmapText . prototype ) ;
2013-09-10 22:51:35 +00:00
Phaser . BitmapText . prototype . constructor = Phaser . BitmapText ;
/ * *
2013-10-01 12:54:29 +00:00
* Automatically called by World . update
* @ method Phaser . BitmapText . prototype . update
* /
2013-09-10 22:51:35 +00:00
Phaser . BitmapText . prototype . update = function ( ) {
if ( ! this . exists )
{
return ;
}
this . _cache . dirty = false ;
2013-10-04 13:41:15 +00:00
this . _cache . x = this . x ;
this . _cache . y = this . y ;
2013-09-10 22:51:35 +00:00
if ( this . position . x != this . _cache . x || this . position . y != this . _cache . y )
{
this . position . x = this . _cache . x ;
this . position . y = this . _cache . y ;
this . _cache . dirty = true ;
}
2013-12-30 21:36:50 +00:00
this . pivot . x = this . anchor . x * this . width ;
this . pivot . y = this . anchor . y * this . height ;
2013-09-21 00:03:19 +00:00
2013-09-10 22:51:35 +00:00
}
2013-10-17 14:40:44 +00:00
/ * *
* @ method Phaser . Text . prototype . destroy
* /
Phaser . BitmapText . prototype . destroy = function ( ) {
if ( this . group )
{
this . group . remove ( this ) ;
}
2013-11-07 04:31:37 +00:00
if ( this . canvas && this . canvas . parentNode )
2013-10-17 14:40:44 +00:00
{
this . canvas . parentNode . removeChild ( this . canvas ) ;
}
else
{
this . canvas = null ;
this . context = null ;
}
this . exists = false ;
this . group = null ;
}
2013-10-01 12:54:29 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* Indicates the rotation of the BitmapText , in degrees , from its original orientation . Values from 0 to 180 represent clockwise rotation ; values from 0 to - 180 represent counterclockwise rotation .
* Values outside this range are added to or subtracted from 360 to obtain a value within the range . For example , the statement player . angle = 450 is the same as player . angle = 90.
* If you wish to work in radians instead of degrees use the property Sprite . rotation instead .
* @ name Phaser . BitmapText # angle
* @ property { number } angle - Gets or sets the angle of rotation in degrees .
2013-10-01 12:54:29 +00:00
* /
2013-09-10 22:51:35 +00:00
Object . defineProperty ( Phaser . BitmapText . prototype , 'angle' , {
get : function ( ) {
return Phaser . Math . radToDeg ( this . rotation ) ;
} ,
set : function ( value ) {
this . rotation = Phaser . Math . degToRad ( value ) ;
}
} ) ;
2013-10-01 12:54:29 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* The x coordinate of this object in world space .
* @ name Phaser . BitmapText # x
* @ property { number } x - The x coordinate of this object in world space .
2013-10-01 12:54:29 +00:00
* /
2013-09-10 22:51:35 +00:00
Object . defineProperty ( Phaser . BitmapText . prototype , 'x' , {
get : function ( ) {
return this . position . x ;
} ,
set : function ( value ) {
this . position . x = value ;
}
} ) ;
2013-10-01 12:54:29 +00:00
/ * *
2013-11-25 04:40:04 +00:00
* The y coordinate of this object in world space .
* @ name Phaser . BitmapText # y
* @ property { number } y - The y coordinate of this object in world space .
2013-10-01 12:54:29 +00:00
* /
2013-09-10 22:51:35 +00:00
Object . defineProperty ( Phaser . BitmapText . prototype , 'y' , {
get : function ( ) {
return this . position . y ;
} ,
set : function ( value ) {
this . position . y = value ;
}
} ) ;