Cocos2d-x学习笔记(二) —— 如何添加一个精灵
教程中的源码可以在这下载:
https://github.com/flyingpacer/Cocos2dxSimpleGame
你可以自己按照文章一步步来完成游戏,或者直接下载完整的代码,简单地编译运行。
1.加入图片资源
创建新的cocos2d-x项目后,你现在应该有一个cocos2d-1.0.1-x-0.10.0/MyGame文件夹。请下载这些图片,并把它们复制到cocos2d-1.0.1-x-0.10.0/MyGame/Resources文件夹里。如图所示:

2.添加一个精灵
你现在会发现把cocos2d游戏从objc移植到c++是多么的简单。打开HelloWorldScene.cpp,替换init方法如下所示:
1 bool HelloWorld::init() 2 { 3 bool bRet = false; 4 do 5 { 6 ////////////////////////////////////////////////////////////////////////// 7 // super init first 8 ////////////////////////////////////////////////////////////////////////// 9 10 CC_BREAK_IF(! CCLayerColor::initWithColor(ccc4(255,255,255,255))); 11 12 ////////////////////////////////////////////////////////////////////////// 13 // add your codes below... 14 ////////////////////////////////////////////////////////////////////////// 15 16 // 1. Add a menu item with "X" image, which is clicked to quit the program. 17 18 // Create a "close" menu item with close icon, it's an auto release object. 19 CCMenuItemImage *pCloseItem = CCMenuItemImage::itemFromNormalImage( 20 "CloseNormal.png", 21 "CloseSelected.png", 22 this, 23 menu_selector(HelloWorld::menuCloseCallback)); 24 CC_BREAK_IF(! pCloseItem); 25 26 // Place the menu item bottom-right conner. 27 pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20)); 28 29 // Create a menu with the "close" menu item, it's an auto release object. 30 CCMenu* pMenu = CCMenu::menuWithItems(pCloseItem, NULL); 31 pMenu->setPosition(CCPointZero); 32 CC_BREAK_IF(! pMenu); 33 34 // Add the menu to HelloWorld layer as a child layer. 35 this->addChild(pMenu, 1); 36 37 // 添加一个精灵 38 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); 39 CCSprite *player = CCSprite::spriteWithFile("Player.png"); 40 player->setPosition(ccp(player->getContentSize().width/2,winSize.height/2)); 41 this->addChild(player); 42 43 bRet = true; 44 } while (0); 45 46 return bRet; 47 }
好了,我们可以编译并运行代码了。现在忍者一袭黑衣,躲在黑暗中闪着红眼。要玩游戏的话,我们必须把背景改成白色的。这非常简单,修改HelloWorld,使它继承CCLayerColor,而不是CCLayer。
首先,修改HelloWorldScene.h的声明部分
class HelloWorld : public cocos2d::CCLayerColor
之后修改HelloWorld::init()内的初始部分
把
CC_BREAK_IF(! CCLayer::init());
改成
CC_BREAK_IF(! CCLayerColor::initWithColor(ccc4(255,255,255,255)));
要点1
1. 在c++里继承默认为private继承,因此需要在CCLayerColor类声明前加上“public”。
2. Cocos2d-iphone的主要作者RicardoQuesada建议我们在cocos2d-x中使用命名空间。检查你所调用的cocos2d-x类是在“cocos2d”命名空间还是在“CocosDenshion”命名空间是非常重要的。
编译并运行,之后你就会看到小英雄孤单地站在白色的背景里。

posted on 2012-07-20 22:04 〃ωǒ系﹄条噚氺dē魚ぐ 阅读(371) 评论(0) 收藏 举报
浙公网安备 33010602011771号