axmol/samples/TestJavascript/js/test-sprite.js

782 lines
23 KiB
JavaScript

//
// 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
var item1 = cc.MenuItemImage.create("b1.png", "b2.png", this, this.backCallback);
var item2 = cc.MenuItemImage.create("r1.png", "r2.png", this, this.restartCallback);
var item3 = cc.MenuItemImage.create("f1.png", "f2.png", this, this.nextCallback);
var item4 = cc.MenuItemFont.create("back", this, function() { require("js/main.js"); } );
item4.setFontSize( 22 );
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;
var sprite = cc.Sprite.create("grossini_dance_atlas.png", cc.rect(x,y,85,121) );
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() {
this.batch = cc.SpriteBatchNode.create("grossini_dance_atlas.png", 50 );
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 );
}
var animation = cc.Animation.create( frames, 0.3 );
// 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 );
var animMixed = cc.Animation.create( moreFrames, 0.3 );
// 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++) {
var sprite = cc.Sprite.create("grossini_dance_atlas.png", cc.rect(85*i, 121*1, 85, 121) );
sprite.setPosition( cc.p( winSize.width/4*(i+1), winSize.height/2) );
var point = cc.Sprite.create( "r1.png" );
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() {
var batch = cc.SpriteBatchNode.create( "grossini_dance_atlas.png" );
for(var i=0;i<3;i++) {
var sprite = cc.Sprite.create("grossini_dance_atlas.png", cc.rect(85*i, 121*1, 85, 121) );
sprite.setPosition( cc.p( winSize.width/4*(i+1), winSize.height/2) );
var point = cc.Sprite.create( "r1.png" );
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++) {
var sprite = cc.Sprite.create("grossini_dance_atlas.png", cc.rect(85*i, 121*1, 85, 121) );
sprite.setPosition( cc.p( winSize.width/4*(i+1), winSize.height/2) );
var point = cc.Sprite.create( "r1.png" );
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 );
}
var animation = cc.Animation.create( frames, 0.3 );
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) );
var point = cc.Sprite.create( "r1.png" );
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 );
}
var animation = cc.Animation.create( frames, 0.3 );
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() {
var sprite1 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 0, 121 * 1, 85, 121));
var sprite2 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 1, 121 * 1, 85, 121));
var sprite3 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 2, 121 * 1, 85, 121));
var sprite4 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 3, 121 * 1, 85, 121));
var sprite5 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 0, 121 * 1, 85, 121));
var sprite6 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 1, 121 * 1, 85, 121));
var sprite7 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 2, 121 * 1, 85, 121));
var sprite8 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 3, 121 * 1, 85, 121));
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() {
var batch = cc.SpriteBatchNode.create('grossini_dance_atlas.png', 10);
var sprite1 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 0, 121 * 1, 85, 121));
var sprite2 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 1, 121 * 1, 85, 121));
var sprite3 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 2, 121 * 1, 85, 121));
var sprite4 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 3, 121 * 1, 85, 121));
var sprite5 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 0, 121 * 1, 85, 121));
var sprite6 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 1, 121 * 1, 85, 121));
var sprite7 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 2, 121 * 1, 85, 121));
var sprite8 = cc.Sprite.create('grossini_dance_atlas.png', cc.rect(85 * 3, 121 * 1, 85, 121));
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();