因为在游戏开发中 画面经常切换是经常用到的是 所以把几个经常用到的方法测试下 :
首先我们需要2个CCSence类 一个用作切换前的背景 一个用作切换后的配置 分别在2个scence中添加一个图片精灵 目的很简单 就是能直观的反映出 切换效果。
我们定义2个实现类
1:backgroundscence
代码如下:
#import "BackGroundScence.h"
#import "OnTopScence.h"
//imple scence
@implementation BackGroundScence
@synthesize layer=_layer;
-(id)init{
self=[super init];
if (self) {
//add layer to scene;
self.layer=[BackGroundLayer node];
[self addChild:_layer];
}
return self;
}
-(void)dealloc{
[_layer release];
_layer=nil;
[super dealloc];
}
@end
@implementation BackGroundLayer
-(id)init{
self=[super init];
if (self) {
//detemine sprite
CCSprite *sprite=[CCSprite spriteWithFile:@"bg.jpg"];
sprite.anchorPoint=CGPointZero;
[self addChild:sprite z:0 tag:1];
//detemine font
[CCMenuItemFont setFontSize:25];
CCMenuItem *newGame=[CCMenuItemFont itemFromString:@"click me"
target:self
selector:@selector(OnClick:)];
CCMenu *mn=[CCMenu menuWithItems:newGame,nil];
[mn alignItemsVertically];
[self addChild:mn z:1 tag:2];
}
return self;
}
-(void)OnClick:(id)sender{
CCScene *sc=[CCScene node];
[sc addChild:[OnTopScence node]];
[[CCDirector sharedDirector]replaceScene:
[CCTransitionSlideInR transitionWithDuration:1.2f scene:sc]];
}
-(void)dealloc{
}
@end
显示出来的效果如下:
当你点击click me的时候 会执行屏幕切换 replace CCTransactionSlideInR 顾明思议下一个图片从右边开始进行
感觉效果屏幕左移。 然后显示另一个scene上的图片精灵
这里不在演示了 你们自己可以试试 代码如下
//
// OnTopScence.m
// InitGame
//
// Created by 邱 铁军 on 12-4-17.
// Copyright 2012 西安航专. All rights reserved.
//
#import "OnTopScence.h"
@implementation OnTopScence
@synthesize layer=_layer;
-(id)init{
self=[super init];
if (self) {
//add layer to scene;
self.layer=[OnTopLayer node];
[self addChild:_layer];
}
return self;
}
-(void)dealloc{
[_layer release];
_layer=nil;
[super dealloc];
}
@end
@implementation OnTopLayer
-(id)init{
self=[super init];
if (self) {
CCSprite *sprite=[CCSprite spriteWithFile:@"Space.png"];
sprite.anchorPoint=CGPointZero;
[self addChild:sprite z:0 tag:1];
}
return self;
}
-(void)dealloc{
[super dealloc];
}
@end