2012-08-28 12:04:51 +08:00
//
// http://www.cocos2d-iphone.org
//
// Javascript + cocos2d sprite tests
//
require ( "js/helper.js" ) ;
director = cc . Director . getInstance ( ) ;
winSize = director . getWinSize ( ) ;
centerPos = cc . p ( winSize . width / 2 , winSize . height / 2 ) ;
var scenes = [ ]
var currentScene = 0 ;
var nextSpriteTestAction = function ( ) {
currentScene = currentScene + 1 ;
if ( currentScene >= scenes . length )
currentScene = 0 ;
loadScene ( currentScene ) ;
} ;
var backSpriteTestAction = function ( ) {
currentScene = currentScene - 1 ;
if ( currentScene < 0 )
currentScene = scenes . length - 1 ;
loadScene ( currentScene ) ;
} ;
var restartSpriteTestAction = function ( ) {
loadScene ( currentScene ) ;
} ;
var loadScene = function ( sceneIdx )
{
winSize = director . getWinSize ( ) ;
centerPos = cc . p ( winSize . width / 2 , winSize . height / 2 ) ;
var scene = new cc . Scene ( ) ;
scene . init ( ) ;
var layer = new scenes [ sceneIdx ] ( ) ;
scene . addChild ( layer ) ;
// scene.walkSceneGraph(0);
director . replaceScene ( scene ) ;
// __jsc__.garbageCollect();
}
//------------------------------------------------------------------
//
// BaseLayer
//
//------------------------------------------------------------------
var BaseLayer = function ( ) {
//
// VERY IMPORTANT
//
// Only subclasses of a native classes MUST call __associateObjectWithNative
// Failure to do so, it will crash.
//
var parent = goog . base ( this ) ;
_ _associateObjWithNative ( this , parent ) ;
this . init ( ) ;
this . title = function ( ) {
return "No title" ;
}
this . subtitle = function ( ) {
return "No Subtitle" ;
}
}
goog . inherits ( BaseLayer , cc . Layer ) ;
//
// Instance 'base' methods
// XXX: Should be defined after "goog.inherits"
//
BaseLayer . prototype . onEnter = function ( ) {
var label = cc . LabelTTF . create ( this . title ( ) , "Arial" , 28 ) ;
this . addChild ( label , 1 ) ;
label . setPosition ( cc . p ( winSize . width / 2 , winSize . height - 50 ) ) ;
var strSubtitle = this . subtitle ( ) ;
if ( strSubtitle != "" ) {
var l = cc . LabelTTF . create ( strSubtitle , "Thonburi" , 16 ) ;
this . addChild ( l , 1 ) ;
l . setPosition ( cc . p ( winSize . width / 2 , winSize . height - 80 ) ) ;
}
// Menu
2012-08-31 19:50:20 +08:00
var item1 = cc . MenuItemImage . create ( "Images/b1.png" , "Images/b2.png" , this , this . backCallback ) ;
var item2 = cc . MenuItemImage . create ( "Images/r1.png" , "Images/r2.png" , this , this . restartCallback ) ;
var item3 = cc . MenuItemImage . create ( "Images/f1.png" , "Images/f2.png" , this , this . nextCallback ) ;
2012-08-28 12:04:51 +08:00
var item4 = cc . MenuItemFont . create ( "back" , this , function ( ) { require ( "js/main.js" ) ; } ) ;
2012-08-31 19:50:20 +08:00
cc . MenuItemFont . setFontSize ( 22 ) ;
2012-08-28 12:04:51 +08:00
var menu = cc . Menu . create ( item1 , item2 , item3 , item4 ) ;
menu . setPosition ( cc . p ( 0 , 0 ) ) ;
item1 . setPosition ( cc . p ( winSize . width / 2 - 100 , 30 ) ) ;
item2 . setPosition ( cc . p ( winSize . width / 2 , 30 ) ) ;
item3 . setPosition ( cc . p ( winSize . width / 2 + 100 , 30 ) ) ;
item4 . setPosition ( cc . p ( winSize . width - 60 , winSize . height - 30 ) ) ;
this . addChild ( menu , 1 ) ;
}
BaseLayer . prototype . restartCallback = function ( sender ) {
cc . log ( "restart called" ) ;
restartSpriteTestAction ( ) ;
}
BaseLayer . prototype . nextCallback = function ( sender ) {
cc . log ( "next called" ) ;
nextSpriteTestAction ( ) ;
}
BaseLayer . prototype . backCallback = function ( sender ) {
cc . log ( "back called" ) ;
backSpriteTestAction ( ) ;
}
//------------------------------------------------------------------
//
// Sprite Touch test
//
//------------------------------------------------------------------
var SpriteTouchTest = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
var platform = _ _getPlatform ( ) ;
if ( platform . substring ( 0 , 7 ) == 'desktop' )
this . setMouseEnabled ( true ) ;
else if ( platform . substring ( 0 , 6 ) == 'mobile' )
this . setTouchEnabled ( true ) ;
this . addSprite ( centerPos ) ;
}
this . addSprite = function ( pos ) {
var sprite = this . createSprite ( pos ) ;
this . addChild ( sprite ) ;
}
this . title = function ( ) {
return "Sprite: Simple action test" ;
}
this . subtitle = function ( ) {
return "Tap screen to add more sprites" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteTouchTest , BaseLayer ) ;
SpriteTouchTest . prototype . onMouseDown = function ( event ) {
this . addSprite ( event . getLocation ( ) ) ;
}
SpriteTouchTest . prototype . onTouchesEnded = function ( touches , event ) {
var l = touches . length ;
for ( var i = 0 ; i < l ; i ++ ) {
this . addSprite ( touches [ i ] . getLocation ( ) ) ;
}
}
SpriteTouchTest . prototype . createSprite = function ( pos ) {
var idx = Math . random ( ) * 1400 / 100 ;
idx = Math . floor ( idx ) ;
var x = Math . floor ( idx % 5 ) * 85 ;
var y = Math . floor ( idx / 5 ) * 121 ;
2012-08-31 19:50:20 +08:00
var sprite = cc . Sprite . create ( "Images/grossini_dance_atlas.png" , cc . rect ( x , y , 85 , 121 ) ) ;
2012-08-28 12:04:51 +08:00
sprite . setPosition ( pos ) ;
var rand = Math . random ( ) ;
if ( rand < 0.20 ) {
var action = cc . ScaleBy . create ( 3 , 2 ) ;
} else if ( rand < 0.40 ) {
var action = cc . RotateBy . create ( 3 , 360 ) ;
} else if ( rand < 0.60 ) {
var action = cc . Blink . create ( 1 , 3 ) ;
} else if ( rand < 0.8 ) {
var action = cc . TintBy . create ( 2 , 0 , - 255 , - 255 ) ;
} else {
var action = cc . FadeOut . create ( 2 ) ;
}
var action _back = action . reverse ( ) ;
var seq = cc . Sequence . create ( action , action _back ) ;
sprite . runAction ( cc . RepeatForever . create ( seq ) ) ;
return sprite ;
}
//------------------------------------------------------------------
//
// Sprite Batch Touch test
//
//------------------------------------------------------------------
var SpriteBatchTouchTest = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
2012-08-31 19:50:20 +08:00
this . batch = cc . SpriteBatchNode . create ( "Images/grossini_dance_atlas.png" , 50 ) ;
2012-08-28 12:04:51 +08:00
this . addChild ( this . batch ) ;
var platform = _ _getPlatform ( ) ;
if ( platform == 'OSX' ) {
this . setIsMouseEnabled ( true ) ;
} else if ( platform == 'iOS' ) {
this . setIsTouchEnabled ( true ) ;
}
}
this . addSprite = function ( pos ) {
var sprite = this . createSprite ( pos ) ;
this . batch . addChild ( sprite ) ;
}
this . title = function ( ) {
return "SpriteBatch: Simple action test" ;
}
this . subtitle = function ( ) {
return "Tap screen to add more sprites" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteBatchTouchTest , SpriteTouchTest ) ;
//------------------------------------------------------------------
//
// Sprite vs. SpriteBatch Animation
//
//------------------------------------------------------------------
var SpriteFrameTest = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
var cache = cc . SpriteFrameCache . getInstance ( ) ;
cache . addSpriteFrames ( "animations/grossini.plist" ) ;
cache . addSpriteFrames ( "animations/grossini_gray.plist" , "animations/grossini_gray.png" ) ;
cache . addSpriteFrames ( "animations/grossini_blue.plist" , "animations/grossini_blue.png" ) ;
//
// Animation using Sprite batch
//
// A CCSpriteBatchNode can reference one and only one texture (one .png file)
// Sprites that are contained in that texture can be instantiatied as CCSprites and then added to the CCSpriteBatchNode
// All CCSprites added to a CCSpriteBatchNode are drawn in one OpenGL ES draw call
// If the CCSprites are not added to a CCSpriteBatchNode then an OpenGL ES draw call will be needed for each one, which is less efficient
//
// When you animate a sprite, CCAnimation changes the frame of the sprite using setDisplayFrame: (this is why the animation must be in the same texture)
// When setDisplayFrame: is used in the CCAnimation it changes the frame to one specified by the CCSpriteFrames that were added to the animation,
// but texture id is still the same and so the sprite is still a child of the CCSpriteBatchNode,
// and therefore all the animation sprites are also drawn as part of the CCSpriteBatchNode
//
var sprite1 = cc . Sprite . createWithSpriteFrameName ( "grossini_dance_01.png" ) ;
sprite1 . setPosition ( cc . p ( winSize . width / 2 - 80 , winSize . height / 2 ) ) ;
var spritebatch = cc . SpriteBatchNode . create ( "animations/grossini.pvr.gz" ) ;
spritebatch . addChild ( sprite1 ) ;
this . addChild ( spritebatch ) ;
var frames = [ ]
for ( var i = 1 ; i < 15 ; i ++ ) {
if ( i < 10 ) {
var name = "grossini_dance_0" + i + ".png" ;
} else {
var name = "grossini_dance_" + i + ".png" ;
}
var frame = cache . getSpriteFrame ( name ) ;
frames . push ( frame ) ;
}
2012-08-31 21:23:23 +08:00
var animation = cc . Animation . createWithSpriteFrames ( frames , 0.3 ) ;
2012-08-28 12:04:51 +08:00
// 14 frames * 1sec = 14 seconds
sprite1 . runAction ( cc . RepeatForever . create ( cc . Animate . create ( animation ) ) ) ;
//
// Animation using standard Sprite
//
//
var sprite2 = cc . Sprite . createWithSpriteFrameName ( "grossini_dance_01.png" ) ;
sprite2 . setPosition ( cc . p ( winSize . width / 2 + 80 , winSize . height / 2 ) ) ;
this . addChild ( sprite2 ) ;
var moreFrames = [ ]
for ( var i = 1 ; i < 15 ; i ++ ) {
if ( i < 10 ) {
var name = "grossini_dance_gray_0" + i + ".png" ;
} else {
var name = "grossini_dance_gray_" + i + ".png" ;
}
var frame = cache . getSpriteFrame ( name ) ;
moreFrames . push ( frame ) ;
}
for ( var i = 1 ; i < 5 ; i ++ ) {
var name = "grossini_blue_0" + i + ".png" ;
var frame = cache . getSpriteFrame ( name ) ;
moreFrames . push ( frame ) ;
}
moreFrames . concat ( frames ) ;
2012-08-31 21:23:23 +08:00
var animMixed = cc . Animation . createWithSpriteFrames ( moreFrames , 0.3 ) ;
2012-08-28 12:04:51 +08:00
// 32 frames * 1 seconds = 32 seconds
sprite2 . runAction ( cc . RepeatForever . create ( cc . Animate . create ( animMixed ) ) ) ;
// to test issue #732, uncomment the following line
sprite2 . setFlipX ( false ) ;
sprite2 . setFlipY ( false ) ;
}
this . title = function ( ) {
return "Sprite vs. SpriteBatchNode animation" ;
}
this . subtitle = function ( ) {
return "Testing issue #792" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteFrameTest , BaseLayer ) ;
//------------------------------------------------------------------
//
// SpriteAnchorPoint
//
//------------------------------------------------------------------
var SpriteAnchorPoint = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
for ( var i = 0 ; i < 3 ; i ++ ) {
2012-08-31 19:50:20 +08:00
var sprite = cc . Sprite . create ( "Images/grossini_dance_atlas.png" , cc . rect ( 85 * i , 121 * 1 , 85 , 121 ) ) ;
2012-08-28 12:04:51 +08:00
sprite . setPosition ( cc . p ( winSize . width / 4 * ( i + 1 ) , winSize . height / 2 ) ) ;
2012-08-31 19:50:20 +08:00
var point = cc . Sprite . create ( "Images/r1.png" ) ;
2012-08-28 12:04:51 +08:00
point . setScale ( 0.25 ) ;
point . setPosition ( sprite . getPosition ( ) ) ;
this . addChild ( point , 10 ) ;
if ( i == 0 ) {
sprite . setAnchorPoint ( cc . p ( 0 , 0 ) ) ;
} else if ( i == 1 ) {
sprite . setAnchorPoint ( cc . p ( 0.5 , 0.5 ) ) ;
} else if ( i == 2 ) {
sprite . setAnchorPoint ( cc . p ( 1 , 1 ) ) ;
}
point . setPosition ( sprite . getPosition ( ) ) ;
var rotate = cc . RotateBy . create ( 10 , 360 ) ;
var action = cc . RepeatForever . create ( rotate ) ;
sprite . runAction ( action ) ;
this . addChild ( sprite , i ) ;
}
}
this . title = function ( ) {
return "Sprite: anchor point" ;
}
this . subtitle = function ( ) {
return "Testing 3 different anchor points" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteAnchorPoint , BaseLayer ) ;
//------------------------------------------------------------------
//
// SpriteBatchAnchorPoint
//
//------------------------------------------------------------------
var SpriteBatchAnchorPoint = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
2012-08-31 19:50:20 +08:00
var batch = cc . SpriteBatchNode . create ( "Images/grossini_dance_atlas.png" ) ;
2012-08-28 12:04:51 +08:00
for ( var i = 0 ; i < 3 ; i ++ ) {
2012-08-31 19:50:20 +08:00
var sprite = cc . Sprite . create ( "Images/grossini_dance_atlas.png" , cc . rect ( 85 * i , 121 * 1 , 85 , 121 ) ) ;
2012-08-28 12:04:51 +08:00
sprite . setPosition ( cc . p ( winSize . width / 4 * ( i + 1 ) , winSize . height / 2 ) ) ;
2012-08-31 19:50:20 +08:00
var point = cc . Sprite . create ( "Images/r1.png" ) ;
2012-08-28 12:04:51 +08:00
point . setScale ( 0.25 ) ;
point . setPosition ( sprite . getPosition ( ) ) ;
this . addChild ( point , 10 ) ;
if ( i == 0 ) {
sprite . setAnchorPoint ( cc . p ( 0 , 0 ) ) ;
} else if ( i == 1 ) {
sprite . setAnchorPoint ( cc . p ( 0.5 , 0.5 ) ) ;
} else if ( i == 2 ) {
sprite . setAnchorPoint ( cc . p ( 1 , 1 ) ) ;
}
point . setPosition ( sprite . getPosition ( ) ) ;
var rotate = cc . RotateBy . create ( 10 , 360 ) ;
var action = cc . RepeatForever . create ( rotate ) ;
sprite . runAction ( action ) ;
batch . addChild ( sprite , i ) ;
}
this . addChild ( batch ) ;
}
this . title = function ( ) {
return "Sprite Batch: anchor point" ;
}
this . subtitle = function ( ) {
return "Testing 3 different anchor points" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteBatchAnchorPoint , BaseLayer ) ;
//------------------------------------------------------------------
//
// SpriteOffsetAnchorFlip
//
//------------------------------------------------------------------
var SpriteOffsetAnchorFlip = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
var cache = cc . SpriteFrameCache . getInstance ( ) ;
cache . addSpriteFrames ( "animations/grossini.plist" ) ;
cache . addSpriteFrames ( "animations/grossini_gray.plist" , "animations/grossini_gray.png" ) ;
for ( var i = 0 ; i < 3 ; i ++ ) {
2012-08-31 19:50:20 +08:00
var sprite = cc . Sprite . create ( "Images/grossini_dance_atlas.png" , cc . rect ( 85 * i , 121 * 1 , 85 , 121 ) ) ;
2012-08-28 12:04:51 +08:00
sprite . setPosition ( cc . p ( winSize . width / 4 * ( i + 1 ) , winSize . height / 2 ) ) ;
2012-08-31 19:50:20 +08:00
var point = cc . Sprite . create ( "Images/r1.png" ) ;
2012-08-28 12:04:51 +08:00
point . setScale ( 0.25 ) ;
point . setPosition ( sprite . getPosition ( ) ) ;
this . addChild ( point , 10 ) ;
if ( i == 0 ) {
sprite . setAnchorPoint ( cc . p ( 0 , 0 ) ) ;
} else if ( i == 1 ) {
sprite . setAnchorPoint ( cc . p ( 0.5 , 0.5 ) ) ;
} else if ( i == 2 ) {
sprite . setAnchorPoint ( cc . p ( 1 , 1 ) ) ;
}
point . setPosition ( sprite . getPosition ( ) ) ;
var frames = [ ]
for ( var j = 1 ; j < 15 ; j ++ ) {
if ( j < 10 ) {
var name = "grossini_dance_0" + j + ".png" ;
} else {
var name = "grossini_dance_" + j + ".png" ;
}
var frame = cache . getSpriteFrame ( name ) ;
frames . push ( frame ) ;
}
2012-08-31 21:23:23 +08:00
var animation = cc . Animation . createWithSpriteFrames ( frames , 0.3 ) ;
2012-08-28 12:04:51 +08:00
sprite . runAction ( cc . RepeatForever . create ( cc . Animate . create ( animation ) ) ) ;
var flip = cc . FlipY . create ( true ) ;
var flip _back = cc . FlipY . create ( false ) ;
var delay = cc . DelayTime . create ( 1 ) ;
var delay2 = cc . DelayTime . create ( 1 ) ;
var seq = cc . Sequence . create ( delay , flip , delay2 , flip _back ) ;
sprite . runAction ( cc . RepeatForever . create ( seq ) ) ;
this . addChild ( sprite ) ;
}
}
this . title = function ( ) {
return "Sprite offset + anchor + flip" ;
}
this . subtitle = function ( ) {
return "issue #1078" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteOffsetAnchorFlip , BaseLayer ) ;
//------------------------------------------------------------------
//
// SpriteBatchOffsetAnchorFlip
//
//------------------------------------------------------------------
var SpriteBatchOffsetAnchorFlip = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
var cache = cc . SpriteFrameCache . getInstance ( ) ;
cache . addSpriteFrames ( "animations/grossini.plist" ) ;
cache . addSpriteFrames ( "animations/grossini_gray.plist" , "animations/grossini_gray.png" ) ;
var batch = cc . SpriteBatchNode . create ( "animations/grossini.pvr.gz" ) ;
for ( var i = 0 ; i < 3 ; i ++ ) {
var sprite = cc . Sprite . createWithSpriteFrameName ( "grossini_dance_01.png" ) ;
sprite . setPosition ( cc . p ( winSize . width / 4 * ( i + 1 ) , winSize . height / 2 ) ) ;
2012-08-31 19:50:20 +08:00
var point = cc . Sprite . create ( "Images/r1.png" ) ;
2012-08-28 12:04:51 +08:00
point . setScale ( 0.25 ) ;
point . setPosition ( sprite . getPosition ( ) ) ;
this . addChild ( point , 10 ) ;
if ( i == 0 ) {
sprite . setAnchorPoint ( cc . p ( 0 , 0 ) ) ;
} else if ( i == 1 ) {
sprite . setAnchorPoint ( cc . p ( 0.5 , 0.5 ) ) ;
} else if ( i == 2 ) {
sprite . setAnchorPoint ( cc . p ( 1 , 1 ) ) ;
}
point . setPosition ( sprite . getPosition ( ) ) ;
var frames = [ ]
for ( var j = 1 ; j < 15 ; j ++ ) {
if ( j < 10 ) {
var name = "grossini_dance_0" + j + ".png" ;
} else {
var name = "grossini_dance_" + j + ".png" ;
}
var frame = cache . getSpriteFrame ( name ) ;
frames . push ( frame ) ;
}
2012-08-31 21:23:23 +08:00
var animation = cc . Animation . createWithSpriteFrames ( frames , 0.3 ) ;
2012-08-28 12:04:51 +08:00
sprite . runAction ( cc . RepeatForever . create ( cc . Animate . create ( animation ) ) ) ;
var flip = cc . FlipY . create ( true ) ;
var flip _back = cc . FlipY . create ( false ) ;
var delay = cc . DelayTime . create ( 1 ) ;
var delay2 = cc . DelayTime . create ( 1 ) ;
var seq = cc . Sequence . create ( delay , flip , delay2 , flip _back ) ;
sprite . runAction ( cc . RepeatForever . create ( seq ) ) ;
batch . addChild ( sprite ) ;
}
this . addChild ( batch ) ;
}
this . title = function ( ) {
return "SpriteBatch offset + anchor + flip" ;
}
this . subtitle = function ( ) {
return "issue #1078" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteBatchOffsetAnchorFlip , BaseLayer ) ;
//------------------------------------------------------------------
//
// SpriteColorOpacity
//
//------------------------------------------------------------------
var SpriteColorOpacity = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
2012-08-31 19:50:20 +08:00
var sprite1 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 0 , 121 * 1 , 85 , 121 ) ) ;
var sprite2 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 1 , 121 * 1 , 85 , 121 ) ) ;
var sprite3 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 2 , 121 * 1 , 85 , 121 ) ) ;
var sprite4 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 3 , 121 * 1 , 85 , 121 ) ) ;
var sprite5 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 0 , 121 * 1 , 85 , 121 ) ) ;
var sprite6 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 1 , 121 * 1 , 85 , 121 ) ) ;
var sprite7 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 2 , 121 * 1 , 85 , 121 ) ) ;
var sprite8 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 3 , 121 * 1 , 85 , 121 ) ) ;
2012-08-28 12:04:51 +08:00
sprite1 . setPosition ( cc . p ( ( winSize . width / 5 ) * 1 , ( winSize . height / 3 ) * 1 ) ) ;
sprite2 . setPosition ( cc . p ( ( winSize . width / 5 ) * 2 , ( winSize . height / 3 ) * 1 ) ) ;
sprite3 . setPosition ( cc . p ( ( winSize . width / 5 ) * 3 , ( winSize . height / 3 ) * 1 ) ) ;
sprite4 . setPosition ( cc . p ( ( winSize . width / 5 ) * 4 , ( winSize . height / 3 ) * 1 ) ) ;
sprite5 . setPosition ( cc . p ( ( winSize . width / 5 ) * 1 , ( winSize . height / 3 ) * 2 ) ) ;
sprite6 . setPosition ( cc . p ( ( winSize . width / 5 ) * 2 , ( winSize . height / 3 ) * 2 ) ) ;
sprite7 . setPosition ( cc . p ( ( winSize . width / 5 ) * 3 , ( winSize . height / 3 ) * 2 ) ) ;
sprite8 . setPosition ( cc . p ( ( winSize . width / 5 ) * 4 , ( winSize . height / 3 ) * 2 ) ) ;
var action = cc . FadeIn . create ( 2 ) ;
var action _back = action . reverse ( ) ;
var fade = cc . RepeatForever . create ( cc . Sequence . create ( action , action _back ) ) ;
var tintRed = cc . TintBy . create ( 2 , 0 , - 255 , - 255 ) ;
// var tintRed = cc.RotateBy.create(2, 360 );
var tintRedBack = tintRed . reverse ( ) ;
var red = cc . RepeatForever . create ( cc . Sequence . create ( tintRed , tintRedBack ) ) ;
var tintGreen = cc . TintBy . create ( 2 , - 255 , 0 , - 255 ) ;
var tintGreenBack = tintGreen . reverse ( ) ;
var green = cc . RepeatForever . create ( cc . Sequence . create ( tintGreen , tintGreenBack ) ) ;
var tintBlue = cc . TintBy . create ( 2 , - 255 , - 255 , 0 ) ;
var tintBlueBack = tintBlue . reverse ( ) ;
var blue = cc . RepeatForever . create ( cc . Sequence . create ( tintBlue , tintBlueBack ) ) ;
sprite5 . runAction ( red ) ;
sprite6 . runAction ( green ) ;
sprite7 . runAction ( blue ) ;
sprite8 . runAction ( fade ) ;
// late add: test dirtyColor and dirtyPosition
this . addChild ( sprite1 ) ;
this . addChild ( sprite2 ) ;
this . addChild ( sprite3 ) ;
this . addChild ( sprite4 ) ;
this . addChild ( sprite5 ) ;
this . addChild ( sprite6 ) ;
this . addChild ( sprite7 ) ;
this . addChild ( sprite8 ) ;
}
//
// Instance methods
//
this . title = function ( ) {
return "Sprite: Color & Opacity" ;
}
this . subtitle = function ( ) {
return "testing opacity and color" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteColorOpacity , BaseLayer ) ;
//------------------------------------------------------------------
//
// SpriteBatchColorOpacity
//
//------------------------------------------------------------------
var SpriteBatchColorOpacity = function ( ) {
goog . base ( this ) ;
this . initialize = function ( ) {
2012-08-31 19:50:20 +08:00
var batch = cc . SpriteBatchNode . create ( 'Images/grossini_dance_atlas.png' , 10 ) ;
var sprite1 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 0 , 121 * 1 , 85 , 121 ) ) ;
var sprite2 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 1 , 121 * 1 , 85 , 121 ) ) ;
var sprite3 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 2 , 121 * 1 , 85 , 121 ) ) ;
var sprite4 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 3 , 121 * 1 , 85 , 121 ) ) ;
var sprite5 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 0 , 121 * 1 , 85 , 121 ) ) ;
var sprite6 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 1 , 121 * 1 , 85 , 121 ) ) ;
var sprite7 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 2 , 121 * 1 , 85 , 121 ) ) ;
var sprite8 = cc . Sprite . create ( 'Images/grossini_dance_atlas.png' , cc . rect ( 85 * 3 , 121 * 1 , 85 , 121 ) ) ;
2012-08-28 12:04:51 +08:00
sprite1 . setPosition ( cc . p ( ( winSize . width / 5 ) * 1 , ( winSize . height / 3 ) * 1 ) ) ;
sprite2 . setPosition ( cc . p ( ( winSize . width / 5 ) * 2 , ( winSize . height / 3 ) * 1 ) ) ;
sprite3 . setPosition ( cc . p ( ( winSize . width / 5 ) * 3 , ( winSize . height / 3 ) * 1 ) ) ;
sprite4 . setPosition ( cc . p ( ( winSize . width / 5 ) * 4 , ( winSize . height / 3 ) * 1 ) ) ;
sprite5 . setPosition ( cc . p ( ( winSize . width / 5 ) * 1 , ( winSize . height / 3 ) * 2 ) ) ;
sprite6 . setPosition ( cc . p ( ( winSize . width / 5 ) * 2 , ( winSize . height / 3 ) * 2 ) ) ;
sprite7 . setPosition ( cc . p ( ( winSize . width / 5 ) * 3 , ( winSize . height / 3 ) * 2 ) ) ;
sprite8 . setPosition ( cc . p ( ( winSize . width / 5 ) * 4 , ( winSize . height / 3 ) * 2 ) ) ;
var action = cc . FadeIn . create ( 2 ) ;
var action _back = action . reverse ( ) ;
var fade = cc . RepeatForever . create ( cc . Sequence . create ( action , action _back ) ) ;
var tintRed = cc . TintBy . create ( 2 , 0 , - 255 , - 255 ) ;
// var tintRed = cc.RotateBy.create(2, 360 );
var tintRedBack = tintRed . reverse ( ) ;
var red = cc . RepeatForever . create ( cc . Sequence . create ( tintRed , tintRedBack ) ) ;
var tintGreen = cc . TintBy . create ( 2 , - 255 , 0 , - 255 ) ;
var tintGreenBack = tintGreen . reverse ( ) ;
var green = cc . RepeatForever . create ( cc . Sequence . create ( tintGreen , tintGreenBack ) ) ;
var tintBlue = cc . TintBy . create ( 2 , - 255 , - 255 , 0 ) ;
var tintBlueBack = tintBlue . reverse ( ) ;
var blue = cc . RepeatForever . create ( cc . Sequence . create ( tintBlue , tintBlueBack ) ) ;
sprite5 . runAction ( red ) ;
sprite6 . runAction ( green ) ;
sprite7 . runAction ( blue ) ;
sprite8 . runAction ( fade ) ;
// late add: test dirtyColor and dirtyPosition
this . addChild ( batch ) ;
batch . addChild ( sprite1 ) ;
batch . addChild ( sprite2 ) ;
batch . addChild ( sprite3 ) ;
batch . addChild ( sprite4 ) ;
batch . addChild ( sprite5 ) ;
batch . addChild ( sprite6 ) ;
batch . addChild ( sprite7 ) ;
batch . addChild ( sprite8 ) ;
}
//
// Instance methods
//
this . title = function ( ) {
return "Sprite Batch: Color & Opacity" ;
}
this . subtitle = function ( ) {
return "testing opacity and color with batches" ;
}
this . initialize ( ) ;
}
goog . inherits ( SpriteBatchColorOpacity , BaseLayer ) ;
//
// Order of tests
//
scenes . push ( SpriteTouchTest ) ; scenes . push ( SpriteBatchTouchTest ) ;
scenes . push ( SpriteFrameTest ) ;
scenes . push ( SpriteAnchorPoint ) ; scenes . push ( SpriteBatchAnchorPoint ) ;
scenes . push ( SpriteOffsetAnchorFlip ) ; scenes . push ( SpriteBatchOffsetAnchorFlip ) ;
scenes . push ( SpriteColorOpacity ) ; scenes . push ( SpriteBatchColorOpacity ) ;
//------------------------------------------------------------------
//
// Main entry point
//
//------------------------------------------------------------------
function run ( )
{
var scene = cc . Scene . create ( ) ;
var layer = new scenes [ currentScene ] ( ) ;
scene . addChild ( layer ) ;
var runningScene = director . getRunningScene ( ) ;
if ( runningScene == null )
director . runWithScene ( scene ) ;
else
director . replaceScene ( cc . TransitionFade . create ( 0.5 , scene ) ) ;
}
run ( ) ;