1、前一篇文章最后,运行程序后窗口内一片黑,没有任何内容。是因为场景内没有添加任何东西,现在就来逐一添加相应的内容。

2、首先,来添加背景图片和文字,使用两个类:CCSprite和CCLabelTTF

(1)代码如下:

#include "MyHelloWorldScene.h"
USING_NS_CC;
bool MyHelloWorldScene::init()
{
    bool bRct = false;
    do 
    {
        CC_BREAK_IF( !CCScene::init() );
        // 获取窗口尺寸
        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
        CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
        // 背景
        CCSprite* pSprite = CCSprite::create("HelloWorld.png");
        pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
        this->addChild(pSprite, 0);
        // 文字
        CCLabelTTF* pLabel = CCLabelTTF::create("Hello World""Arial", 24);
        pLabel->setPosition(ccp(origin.x + visibleSize.width/2,
            origin.y + visibleSize.height - pLabel->getContentSize().height));
        this->addChild(pLabel, 1);
        bRct = true;
    while (0);
    return bRct;
}

(2)坐标系:上述代码中涉及到坐标的问题,主要是setPosition这个函数的参数如何确定的问题。

(3)一般来说,坐标原点在左上角,往右是x轴,往下是y轴;但是在Cocos2d中,坐标原点在左下角,同样是x轴向右,y轴向下。

(4)实际上,坐标系除了x、y两个方向,还有一个z方向,这样构成一个立体的空间:

笛卡尔坐标系

(4)setPosition函数,设置的是精灵的位置,这个位置是二维的,也就是一个由x、y构成的平面内的位置,那么z方向体现在哪儿呢?体现在另一个函数addChild中,这个函数有一个int型的参数zOrder,就是我们通常说的z序,也就是精灵(或是别的内容)在z轴方向上的位置。可是尝试将文字的z序设置的比背景的小,这时文字就在背景后面了,当然显示的时候就看不见了。

(5)关于CCDirector::sharedDirector()这句将会反复的使用,它是导演,一切场景由它来控制。当然此处,是通过它获得显示尺寸;

(6)我们设置背景的时候,是刚好充满整个屏幕的,那么如何确定setPosition的参数呢?许多人的第一反应也许是(0,0),当然此处显然不是如此;这里的坐标实际上应该是精灵中心(对角线交点)的坐标(240,160)。

(7)关于这句CCDirector::sharedDirector()->getVisibleOrigin();貌似获取到的就是坐标原点(0,0),好像没有什么意义,实际上涉及到另外一些更复杂的坐标知识,你可以想象一个游戏的地图不可能只是窗口显示的那么点大,此时的坐标该如何描述位置呢?在此先略过不提。

(8)根据以上内容,尝试将文字“HelloWorld”移动到下侧:

3、本文总结

(1)继上文详细介绍init中的背景和文字,即往空的场景中添加内容;

(2)添加内容,用到一个函数addChild,通过该函数将创建好的对象添加到场景中,这样场景中就有内容了;

(3)但是,此时场景中的内容是静态的,程序与用户是无交互的。

Cocos2dx学习笔记(三)背景、文字相关推荐

  1. Cocos2d-x学习笔记三之飞机游戏详解之GameOver类的讲解

    游戏下载链接:http://download.csdn.net/detail/a402813378/6275427 这个Demo的最后一篇,是制作GameOver窗口,这个窗口是游戏结束的窗口,讲完这 ...

  2. cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)

    cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明) 1.问:什么是cocos2d-x? 是一套开放源代码,主要基于c,c++语言,针对windows,linux, ...

  3. OpenCasCade学习笔记(三):加载显示STEP格式图片,并实现平移、缩放和旋转操作

    OpenCasCade学习笔记(三):加载显示STEP格式图片,并实现平移.缩放和旋转操作 C3DWidget.h #pragma once#include <QtWidgets/QApplic ...

  4. cocos2d-x学习笔记16:记录存储1:CCUserDefault

    cocos2d-x学习笔记16:记录存储1:CCUserDefault 一.简述 CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录 ...

  5. cocos2d-x 学习笔记(2)cocos2d-x重要概念,项目结构及 CCDirector 导演控件

    cocos2d-x 学习笔记(2)cocos2d-x重要概念及项目结构 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色. 导演(CCDirector)在cocos2d-x引擎中, ...

  6. Hive学习笔记三之函数操作

    文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...

  7. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  8. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  9. cocos2d-x学习笔记15:cocos2d-x教程资源总结

    注:cocos2d可作为cocos2dx的参考,两者接口很相似. 名称:知易的<知易Cocos2D-iPhone开发教程> 官方地址:http://blog.sina.com.cn/s/a ...

  10. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

最新文章

  1. 机器学习让3D设计速度提升7倍!Adobe最新Substance 3D小白也能入门
  2. Java高级技术笔记
  3. 慢保刚办下来如何使用_在科目二离合和方向没学好的学员如何备考科目三?
  4. 关于HTML Object中三个Style实例的区别
  5. Python之pip:Python语言中的pip的简介、安装、使用方法之详细攻略
  6. CentOS7安装MySQL并设置远程登录
  7. c语言产生随机数_C语言 求的近似值
  8. 王者荣耀在线服务器,王者荣耀实时对战服务器Photon之PUN介绍
  9. Android 热补丁动态修复框架小结
  10. C# XML字符串与DataTable相互转换
  11. Android开发笔记(一百六十)休眠模式下的定时器控制
  12. “聆听”升级,阿里云智能喜迎首席聆听官
  13. 工作中学习,学习中成长
  14. 大数据(二)Elasticsearch 分布式搜索引擎(存索引、索引搜索)
  15. Nginx+php+fastcgi的原理与关系
  16. pku 2976 Dropping tests 01分数规划
  17. 计算机二级excel高级筛选,Excel高级筛选怎么用之相关案例:excel高级筛选多个条件(并且、或用法)...
  18. Block insecure private network requests
  19. mysql 磁盘组_Oracle asm 添加磁盘组
  20. 服务器配置443端口报错

热门文章

  1. 海康摄像机rtsp地址格式(官方最新版)
  2. 2PSK调制解调实验
  3. 【秋招笔试】卓望笔试
  4. 大专计算机办公应用,计算机办公软件应用: 高级
  5. 适合新手--特征点匹配及消除误匹配点-python语言-适用于深度学习提取的特征点和描述符(超简单)
  6. BGP协议原理(一)BGP协议基本概念:BGP作用与特点、BGP邻居关系建立与配置
  7. jsp使用自定义标签taglib分页系列——SearchForm - cao_david的专栏 - CSDNBlog
  8. 三角形面积用C语言编程来写
  9. ISC 2021第九届互联网安全大会正式开启!!!
  10. 人生学会随缘,才能活得自在