Cocos2D-x权威指南:通过节点控制屏幕中的全体渲染对象

本节,已经能够利用我们眼下所学的知识做出一些有趣的东西。之前已经说过,CCNode类没有贴图,也就是说在屏幕上单独建立一个节点是没有不论什么效果的,可是能够通过这个“无形”的节点来控制屏幕上的节点。如今就開始吧!

    1. 增加节点
   
新建一个项目,并在HelloWorldScene.cpp文件里的init函数中做如代码清单3-2的代码所看到的的改动。

    代码清单3-2 增加节点

    bool HelloWorld::init()
{

if ( !CCLayer::init() )
{
return false;
}

//创建一个节点
CCNode *anode = CCNode::create();
//将节点作为子节点增加场景类中
this->addChild(anode,0);

CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(HelloWorld::menuCloseCallback) );
pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );

CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
pMenu->setPosition( CCPointZero );
//将菜单作为子节点增加之前定义的节点中
anode->addChild(pMenu, 1);

CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Thonburi", 34);

CCSize size = CCDirector::sharedDirector()->getWinSize();

pLabel->setPosition( ccp(size.width / 2, size.height - 20) );

//将标签作为子节点增加之前定义的节点中
anode->addChild(pLabel, 1);

CCSprite* pSprite = CCSprite::create("HelloWorld.png");

pSprite->setPosition( ccp(size.width/2, size.height/2) );

//将背景图片作为子节点增加之前定义的节点中
anode->addChild(pSprite, 0);
return true;}



   
首先通过create函数创建一个节点anode,把anode作为子节点使用addChild函数增加HelloWorld场景类对象中;然后把本来作为子节点增加HelloWorld场景类对象中的对象,使用addChild函数作为子节点增加anode中。这些对象包含菜单类对象、标签类对象、人物精灵类对象。这些对象的类都是CCNode类的子类。

    执行项目,发现和改动前的项目并无差别,如图3-4所看到的。  

    2. 改变位置
   
改动HelloWorldScene.cpp文件里的init方法,如代码清单3-3所看到的。
   
代码清单3-3 设置节点位置
        //设置节点位置

       
anode->setPosition(ccp(50,50));
    执行效果如图3-5所看到的。


     

    能够看到,总体都跟着节点移动了。

    3. 设置缩放
   
以下改动这段代码如代码清单3-4所看到的,看一下缩放的效果。
    代码清单3-4 设置缩放代码

    //设置缩放
    anode->setScale(0.5);

    执行效果如图3-6所看到的。

     

    4. 总体旋转
   
最后再来试验总体旋转,如代码清单3-5所看到的。由于默认锚点在左下角,因此须要首先移动一下总体的位置,否则总体一转,屏幕中将仅仅显示黑屏。注意角度设置为角度制。

    代码清单3-5 设置旋转
    //设置旋转

    anode->setPosition(ccp(200,200));   

    anode->setRotation(90.0);
   
执行效果如图3-7所看到的。

     

   
本节介绍了屏幕中渲染对象的基础类CCNode,下一节将介绍控制游戏显示的导演类CCDirector。

Cocos2D-x权威指南:通过节点控制屏幕中的全体渲染对象

时间: 2024-12-29 23:20:56

Cocos2D-x权威指南:通过节点控制屏幕中的全体渲染对象的相关文章

Node.js权威指南 (6) - 在Node.js中操作文件系统

6.1 同步方法与异步方法 / 856.2 对文件执行读写操作 / 86 6.2.1 文件的完整读写 / 86 6.2.2 从指定位置处开始读写文件 / 916.3 创建与读取目录 / 97 6.3.1 创建目录 / 97 6.3.2 读取目录 / 986.4 查看与修改文件或目录的信息 / 99 6.4.1 查看文件或目录的信息 / 99 6.4.2 检查文件或目录是否存在 / 101 6.4.3 获取文件或目录的绝对路径 / 102 6.4.4 修改文件访问时间及修改时间 / 103 6.4

《JavaScript权威指南》学习笔记 第三天 找个对象

现实生活中真的对象没有找到,在JavaScript 里左一个对象又一个对象,搞的我也是晕晕乎乎不知所云.人事复杂,人心难懂.我虽然是文科生,但是也不善于巧言.还是在js里面找找对象吧.那么我们今天就从js的对象开始入手. 昨天,我们讲过了js里面的数据类型分为两种,原始类型,对象类型.对象类型的组成又是由原始类型和对象类型共同组成的. 今天我们来了解一下对象的一些特征.使用对象无非是增(crate) .删(delete).改(set).查(query); 对象由键值对儿组成,那么对象的属性(ke

JavaScript权威指南(第六版) 初读笔记-对象

1 var book = { 2 "main title": "JavaScript", // 属性名字里有空格,必须用字符串表示 3 "sub-title": "The Definitive Guide", // 属性名字里有连字符,必须用字符串表示 4 "for": "all audiences", // "for"是保留字,因此必须用引号 5 author: {

angular js权威指南笔记三--向指令中传递数据

给指令添加属性,这个属性会成为指令内部作用域的属性 有好几种途径可以设置指令内部作用域中属性的值.最简单的方法就是使用由所属控制器提供的已经存在的作用域. 但是会导致很多其他问题.如果控制器被移除,或者在控制器的作用域中也定义了一个叫 相同的属性名,我们就被迫要修改代码 AngularJS 允许通过创建新的子作用域或者隔离作用域来解决这个常见问题 <div my-directive some-property="someProperty with @ binding">&l

201506111312_《JavaScript权威指南——找元素位置函数、数组类型、数组对象》(p159-?)

1. indexOf();    lastIndexOf(); 例如: 2. 找元素位置函数findAll(); var arr = [6,4,6,33,576,0.145,36,66,814,'apple','person',12];function findAll(a,x) { var results = [], len = a.length, pos = 0; while(pos < len) { pos = a.indexOf(x,pos); if(pos === -1) break;

201507010852_《Javascript权威指南(第六版)——判断值类型的type函数 、鸭式辩型》(P210-217)

一. 类的扩充 1. 只要扩充原型类,就能动态更新到实例.例如:xxx.prototype.do = function() {//...}; 2. 不建议采用污染JavaScript的方法,如:Object.prototype.methods = function() {//...};   采用<权威指南>9.8.1中的方法添加属性,如:Object.defineProperty(//...); 3. 二. 类和类型 1. isPrototypeOf(); 2. 三. constructor属

Python权威指南的10个项目(6~10)

6. 项目6:使用CGI进行远程编辑   这个项目主要用的是的CGI进行远程编辑--在另一台机器上通过Web来编辑 文档.你在一台机器上存储了一个文档,希望能够在另一台机器上通过Web来编辑它.这让多个用 户能够协作编辑一个文档,且无需使用FTP或类似的文件传输技术,也无需操心同步多个副本的 问题.要编辑文件,只要有Web浏览器就行. (1) 问题描述 能够以普通网页的方式显示文档. 能够在Web表单的文本区域内显示文档 用户能够保存表单中的文本 程序应使用密码对文档进行保护 程序应易于扩展,以

IDA.Pro权威指南 读书笔记

http://www.pediy.com/kssd/pediy12/142766.html 标 题:IDA.Pro权威指南 读书笔记[Made By C_lemon] 作 者:Dstlemoner 时 间:2011-11-14 11:56:17 链 接:http://bbs.pediy.com/showthread.php?t=142766    IDA为反汇编 和逆向破解的 静态分析利器 ! 虽然是利器,但是你不会用的话~那就另当别论了. →     唉.对于刚入门的新手来说,看前人走过的路程

Hadoop权威指南读书笔记

本书中提到的Hadoop项目简述 Common:一组分布式文件系统和通用I/O的组件与接口(序列化.javaRPC和持久化数据结构). Avro:一种支持高效.跨语言的RPC以及永久存储数据的序列化系统. MapReduce:分布式数据处理模型和执行环境,运行于大型商业集群. HDFS:分布式文件系统,运行于大型商用机集群. Pig:一种数据流语言和运行环境,用以检索非常大的数据集.Pig运行在MapReduce和HDFS的集群上. Hive:一个分布式.按列存储的数据仓库.Hive管理HDFS