如何在Cocos2D 1.0 中掩饰一个精灵(二)

翻译 2015年11月19日 20:56:30

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)


让我们开始吧

打开Xcode,从New Project中选择cocos2d模板,点击下一步.命名新项目为MaskedCal,点击下一步,选择目标文件夹,然后点击Create.

接下来下载该项目的资源文件:
http://haosou.xqiju.com/browse.php?u=sDrnThWlVVAzW8rIeQpXWRtJQhNB2ji0W8bJoRwh3eLdkttyzhmu26EpJAMSqFoZxzYzSEBUQg0ePg%3D%3D&b=13

并把解压后的文件夹拖到你的Xcode项目中.确保选中”Copy items into destination group’s folder(if needed)”,然后点击Finish.

让我们从一些爵士乐开始,打开AppDelegate.m并作出如下修改:

// Add to top of file
#import "SimpleAudioEngine.h"

// At end of applicationDidFinishLaunching, replace last line with the following 2 lines:
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"TeaRoots.mp3" loop:YES];
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer sceneWithLastCalendar:0]];

代码首先播放的这些很酷的音乐是Kevin MacLeod制作的,然后调用了一个新的初始化场景,我们下面将会描述.

下一步,打开HelloWorldLayer.h,完成如下修改:

// Add new instance variable
int calendarNum;

// Replace the +(CCScene*) scene declaration at the bottom with the following:
+ (CCScene *) sceneWithLastCalendar:(int)lastCalendar;
- (id)initWithLastCalendar:(int)lastCalendar;

在该场景中,我们将显示一个随机的日历图片(从3张中选一张).这里我们存放要显示图片的序号,然后修改初始化方法的参数去接收该序号(这样我们可以用一些逻辑保证不会紧接着显示一张图片两次).

然后切换至HelloWorldLayer.m,做出如下修改:

// Replace +(CCScene *) scene with the following
+(CCScene *) sceneWithLastCalendar:(int)lastCalendar // new
{
    CCScene *scene = [CCScene node];
    HelloWorldLayer *layer = [[[HelloWorldLayer alloc] 
        initWithLastCalendar:lastCalendar] autorelease]; // new
    [scene addChild: layer];    
    return scene;
}

// Replace init with the following
-(id) initWithLastCalendar:(int)lastCalendar
{
    if( (self=[super init])) {

        CGSize winSize = [CCDirector sharedDirector].winSize;

        do {
            calendarNum = arc4random() % 3 + 1;
        } while (calendarNum == lastCalendar);

        NSString * spriteName = [NSString 
            stringWithFormat:@"Calendar%d.png", calendarNum];

        CCSprite * cal = [CCSprite spriteWithFile:spriteName];

        // BEGINTEMP
        cal.position = ccp(winSize.width/2, winSize.height/2);        
        [self addChild:cal];
        // ENDTEMP

        self.isTouchEnabled = YES;
    }
    return self;
}

// Add new methods
- (void)registerWithTouchDispatcher {
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self 
        priority:0 swallowsTouches:YES];
}

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    CCScene *scene = [HelloWorldLayer sceneWithLastCalendar:calendarNum];
    [[CCDirector sharedDirector] replaceScene:
        [CCTransitionJumpZoom transitionWithDuration:1.0 scene:scene]];
    return TRUE;
}

以上仅仅是Cocos2D中随机在屏幕中心显示日历图片的基本代码.它同样包括了一些触摸屏幕时回调的基本逻辑代码,它将会展示出切换场景的弹性效果.

如何在Cocos2D 1.0 中掩饰一个精灵(六)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰一个精灵:实现代码打开HelloWorldLayer....
  • mydo
  • mydo
  • 2015年11月20日 09:08
  • 943

如何在Cocos2D 1.0 中掩饰一个精灵(五)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰和CCRenderTextureCCRenderTex...
  • mydo
  • mydo
  • 2015年11月20日 08:47
  • 565

如何在Cocos2D 1.0 中掩饰一个精灵(四)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了完成需要的效果,我们将使用如下策略: 我们将首先绘制掩...
  • mydo
  • mydo
  • 2015年11月19日 21:22
  • 493

如何在Cocos2D 1.0 中掩饰一个精灵(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 原帖来自Ray Wunderlich写的精彩的文章 How...
  • mydo
  • mydo
  • 2015年11月19日 20:42
  • 1085

如何在Cocos2D 1.0 中掩饰一个精灵(三)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 尝试编译运行,在你每一次点击屏幕的时候,你将看到我可爱的妻...
  • mydo
  • mydo
  • 2015年11月19日 21:06
  • 1100

cocos2d-x 精灵的创建和基本使用

在cocos2d-x中,精灵可以说是一个最重要的组成元素,它代表游戏中一个最小的可见单位。同时也是CCNode一个最为灵活的子类,因为它可以通过装载一个平面纹理,从而具有丰富的表现力。       ...
  • decajes
  • decajes
  • 2014年05月12日 17:26
  • 3439

cocos2d-x 使用plist创建精灵并执行动画

素材图: 然后使用Texture Packer放到一张图片上,并生成plist文件 接下来直接上代码 [cpp] view plaincopy ...
  • Liar0606
  • Liar0606
  • 2014年01月20日 22:11
  • 1624

Cocos2d-x精灵,上下跳动,设置比例,旋转,扭曲,透明度

创建一个Cocos2d-X工程,工程的目录如下图所示: 在Resourcees文件夹中添加一张png格式的图片 在HelloWorldScene.cpp文件中的bool Hello...
  • u013007305
  • u013007305
  • 2014年10月09日 11:09
  • 1015

Cocos2D-x游戏开发之十六:创建会运动的精灵

今天我们试着让我们的精灵动起来,当然我们知道所谓的动就是让精灵在多副图之间切换,所以我们开始之前先准备15张精灵运动图片,然后用工具将这些图片打包。所以当我们准备好这一切之后就可以开始编码了。 vo...
  • vanquishedzxl
  • vanquishedzxl
  • 2014年04月01日 22:10
  • 1832

在Cocos2d-X中玩转精灵

创建一个Cocos2d-X
  • u010105970
  • u010105970
  • 2014年09月28日 11:37
  • 1930
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在Cocos2D 1.0 中掩饰一个精灵(二)
举报原因:
原因补充:

(最多只允许输入30个字)