Cocos2d-X菜单教程:第三部分
2012-05-11 01:58
387 查看
本文的Cocos2d版本由子龙山人 翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!首发于泰然论坛
原文链接地址:
http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial-part-3/
现在,我们已经在菜单上面做了大量文章了。可能你会问,我们还能干嘛?耐心点,我的朋友!今天我们将接触menu item
的图片。很期待吧?呵呵
老实说,如果你没有图片资源,你啥事也做不好。你真的需要一些教程来教你如果为菜单定制图片,这也是这篇教程的来由
好了,我们这次要完成哪些内容呢---下面是今天的日程表:
为所有已经存在的 Layer添加一个
BaseLayer作为背景。
给“Start Game”和“Credits”按钮添加“on”和“off”状态。也就是normal
状态和selected状态。
好,让我们开始吧
首先,创建一个 BaseLayer.h和.cpp文件,加错的不会加的,请自觉面壁弹JJ
cocos2d的所有资源
上面是cocos2d版的所有资源,由于我们这是用cocos2d-x实现,所以 我们只需要把里面的图片资源取出来就好
之后修改BaseLayer.h 和.cpp文
BaseLayer.h内容如下
BaseLayer.cpp内容如下
cpp里面我们使用图片设置了背景精灵,现在我们把它导入的工程中,
右击“Resources”分组,然后选择 Add,到点击“Existing files”,然后从弹出的对话框里选择你需要的png
文件
和添加Classes的方式一样,这里就不多说了.
之后在每个Layer中导入BaseLayer
MenuLayer.h
CreditsLayer.h
原先以上三个Layer都是继承CCLayer的 现在他们继承BaseLayer,
而且 注意所有原先继承Layer的 cpp文件中也要改..
一个是增加
#include “BaseLayer.h”
另一个是将init中的if语句修改为
if (!BaseLayer::init())
.......
现在初始化的时候就会把 backgroud.png设为背景了
接下来,我们增加菜单按钮,图片在资源包里面有..当然你们也可以自己用Ps做 或者找美术朋友帮你们弄
每个菜单项对应两张图片:(对应两种状态)
newGameBtn.png
newGameBtn_over.png
creditsBtn.png
creditsBtn_over.png
一种状态是按钮空闲时候显示的图片,另一种状态是用户按住菜单项的状态。我们会把这
4张图片全部添加到
Resource
文件夹中,和之间添加 background.png
图片一样。
因此,我们项目中有图片了,接下来呢?
首先,找到 MenuLayer.cpp文件,把
startNew
从文本形式:
CCMenuItemFont* startNew=CCMenuItemFont::itemFromString("New Game", this, menu_selector(MenuLayer::onNewGame));
改为图片形式
CCMenuItemImage* startNew=CCMenuItemImage::itemFromNormalImage("newGameBtn.png", "newGameBtn_over.png","newGameBtn.png",this,menu_selector(MenuLayer::onNewGame));
disabledImage
是可选的,如果你有一个 disabled
图片就更好了,其它我完全可以输入一个 nil,但是,这里我只是向你展示,可以这样使用。
![](http://my.csdn.net/uploads/201205/11/1336703683_6558.jpg)
大家可以利用这种方式,吧Credits也用图片替换下来
下篇教程再见吧..
原文链接地址:
http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial-part-3/
现在,我们已经在菜单上面做了大量文章了。可能你会问,我们还能干嘛?耐心点,我的朋友!今天我们将接触menu item
的图片。很期待吧?呵呵
老实说,如果你没有图片资源,你啥事也做不好。你真的需要一些教程来教你如果为菜单定制图片,这也是这篇教程的来由
好了,我们这次要完成哪些内容呢---下面是今天的日程表:
为所有已经存在的 Layer添加一个
BaseLayer作为背景。
给“Start Game”和“Credits”按钮添加“on”和“off”状态。也就是normal
状态和selected状态。
好,让我们开始吧
首先,创建一个 BaseLayer.h和.cpp文件,加错的不会加的,请自觉面壁弹JJ
cocos2d的所有资源
上面是cocos2d版的所有资源,由于我们这是用cocos2d-x实现,所以 我们只需要把里面的图片资源取出来就好
之后修改BaseLayer.h 和.cpp文
BaseLayer.h内容如下
#ifndef menu_test_part1_BaseLayer_h #define menu_test_part1_BaseLayer_h #include "cocos2d.h" using namespace cocos2d; class BaseLayer:public CCLayer { public: virtual bool init(); LAYER_NODE_FUNC(BaseLayer); }; #endif
BaseLayer.cpp内容如下
#include <iostream> #include "BaseLayer.h" #include "cocos2d.h" bool BaseLayer::init() { if (!CCLayer::init()) { return false; } this->setIsTouchEnabled(true); //启用触摸 CCSprite *bg=CCSprite::spriteWithFile("background.png"); bg->setPosition(ccp(160,240)); this->addChild(bg,0); return true; }
cpp里面我们使用图片设置了背景精灵,现在我们把它导入的工程中,
右击“Resources”分组,然后选择 Add,到点击“Existing files”,然后从弹出的对话框里选择你需要的png
文件
和添加Classes的方式一样,这里就不多说了.
之后在每个Layer中导入BaseLayer
MenuLayer.h
#include "BaseLayer.h" class MenuLayer:public BaseLayerPlayLayer.h
#include "BaseLayer.h"class PlayerLayer:public BaseLayer
CreditsLayer.h
#include "BaseLayer.h"class CreditsLayer:public BaseLayer
原先以上三个Layer都是继承CCLayer的 现在他们继承BaseLayer,
而且 注意所有原先继承Layer的 cpp文件中也要改..
一个是增加
#include “BaseLayer.h”
另一个是将init中的if语句修改为
if (!BaseLayer::init())
.......
现在初始化的时候就会把 backgroud.png设为背景了
接下来,我们增加菜单按钮,图片在资源包里面有..当然你们也可以自己用Ps做 或者找美术朋友帮你们弄
每个菜单项对应两张图片:(对应两种状态)
newGameBtn.png
newGameBtn_over.png
creditsBtn.png
creditsBtn_over.png
一种状态是按钮空闲时候显示的图片,另一种状态是用户按住菜单项的状态。我们会把这
4张图片全部添加到
Resource
文件夹中,和之间添加 background.png
图片一样。
因此,我们项目中有图片了,接下来呢?
首先,找到 MenuLayer.cpp文件,把
startNew
从文本形式:
CCMenuItemFont* startNew=CCMenuItemFont::itemFromString("New Game", this, menu_selector(MenuLayer::onNewGame));
改为图片形式
CCMenuItemImage* startNew=CCMenuItemImage::itemFromNormalImage("newGameBtn.png", "newGameBtn_over.png","newGameBtn.png",this,menu_selector(MenuLayer::onNewGame));
disabledImage
是可选的,如果你有一个 disabled
图片就更好了,其它我完全可以输入一个 nil,但是,这里我只是向你展示,可以这样使用。
![](http://my.csdn.net/uploads/201205/11/1336703683_6558.jpg)
大家可以利用这种方式,吧Credits也用图片替换下来
下篇教程再见吧..
相关文章推荐
- (译)cocos2d菜单教程:第三部分(完)
- Cocos2d-x 3.0菜单教程:第三部分·完
- (译)cocos2d菜单教程:第三部分(完)
- (译)cocos2d菜单教程:第二部分
- Cocos2d-x 3.0菜单教程:第二部分
- (译)cocos2d菜单教程:第二部分
- Cocos2d-X菜单教程:第二部分
- Cocos2d-x 精灵教程:第三部分
- Cocos2d-x简单游戏<捕鱼达人>代码实现|第三部分:菜单类
- (译)cocos2d精灵教程:第三部分
- Cocos2d-x 3.2 大富翁游戏项目开发-第三部分 菜单场景
- (译)cocos2d精灵教程:第三部分
- JavaScript教程 - 第三部分 window 和 frame 对象
- Flask 教程,第三部分:Web 表单
- EJB3.0 学习教程(连载) 第三部分
- LAJP系列教程-第三部分-LAJP使用注意事项
- 苹果消息推送服务教程:第三部分
- cocos2d入门教程5:为我们的程序加入菜单
- 构建基于通用导航器架构(CNF)的视图 第三部分:配置菜单