类A要获得类B中的某个属性,可以是节点属性

方法一

1.先在B类中定义一个_edge的节点属性(可以在B类中进行各种对_edge的操作),然后写一个方法
Node* GameController::getEdge(){
  return _edge;
}

2.接着在A类中先实例化一个B类的对象,然后用这个对象调用刚才写在B类中的那个方法,就可以获得B类中的那个属性。

if (gc->getEdge()->getBoundingBox().containsPoint(t->getLocation())) {

}

方法二

1.先在B类中定义一个_edge的节点属性(可以在B类中进行各种对_edge的操作)

2.接着在A类中先实例化一个B类的对象,因为这个对象本身是一个指针,所以再用“*”可以变成一个真实的对象,真实的实例,这时候就可以直接用“.属性值”的方法来获得想要的B类中的_edge的节点属性。

if ((*gamecontroller)._hero->getPositionX() < 0) {

}

有时候恰巧B类是GameScene类,这时候不能在A类中实例化一个B类的对象Scene实例,这时候就要用到

方法三

1.在B类GameScene.h中声明

private:
  static GameScene* m_gamelayer; //游戏场景层的单例对象

public:
  static GameScene* sharedGameLayer() { return m_gamelayer; } //获取该游戏层单例对象

2.在B类GameScene.cpp的createScene函数中,把GameScene::create(heroCount)赋值给m_gamelayer

Scene * GameScene::createScene(int heroCount){
  auto s = Scene::createWithPhysics();

  s->getPhysicsWorld()->setDebugDrawMask(PhysicsWorld::DEBUGDRAW_ALL); //物理引擎调试框

  s->getPhysicsWorld()->setGravity(Vec2(0, -1000));

  m_gamelayer = GameScene::create(heroCount);

  s->addChild(m_gamelayer);

  return s;
}

3.再在B类GameScene.h中声明一个将要用到的实用的方法和一个属性

private:

int _myScore; //当前游戏分数

public:

int getScore();//获取游戏分数

4.在B类GameScene.cpp中定义将要用到的实用的方法

//返回此时的分数
int GameScene::getScore()
{
  return _myScore;
}

5.在A类Baby.cpp对象类中使用(Baby类是场景中的层中的一个对象)

int m_score=GameScene::sharedGameLayer()->getScore(); //静态函数和静态变量是可以不用对象来引用的,就是说可以直接用  "类名::方法名();"  的格式去调用想要的方法,而不是  "实例化对象->方法名();"

因为static成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。

在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果静态成员函数中要引用非静态成员时,可通过对象来引用。这句话很好理解,因为对象是一个实实在在的东西,通过对象来引用非static数据成员,该数据成员只属于他的

对象,不会是别的对象。但是如果直接使用,static成员函数并不知道一个非static数据成员到底是从哪里来,属于那个对象(一个类可以有多个对象,当然对于sington的实现例外),所以static成员函数中不能直接操作类中的非static数据成员。

关于Cocos2d-x中对其他某个类的某个属性的获得的更多相关文章

  1. moviepy音视频剪辑:moviepy中的剪辑基类Clip的属性和方法详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  2. moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>和<moviepy音视频剪辑:moviepy中的剪辑基类Cl ...

  3. 【转载】 C++多继承中重写不同基类中相同原型的虚函数

    本篇随笔为转载,原文地址:C++多继承中重写不同基类中相同原型的虚函数. 在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数.下面就是一个例子: class CBaseA { public: ...

  4. Myeclipse中打开接口实现类的快捷键

    Myeclipse中打开接口实现类的快捷键-----Ctrl + T Myeclipse中 Open Type快捷键-----Ctrl + Shift + T

  5. C#正则表达式编程(一):C#中有关正则的类

    正则表达式是一门灵活性非常强的语言,匹配同样的字符串可能在不同的开发人员那里会得到不同的结果,在平常的时候也是用的时候看看相关资料,不用的时候就丢在脑后了,尽管在处理大部分情况下都能迅速处理,但是处理 ...

  6. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

  7. 将Eclipse中现有的java类生成类图

    需求:将Eclipse中现有的java类生成类图 一:什么是ModelGoon? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图). 二:安装 下载Mod ...

  8. 实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法

    实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法 #import <Found ...

  9. 关于SWT中的表格(TableViewer类)

    JFace是SWT的扩展.它提供了一组功能强大的界面组件.其中包含表格,树,列表.对话框,向导对话框等. 表格是一种在软件系统中很常用的数据表现形式.特别是基于数据库的应用系统.表格更是不可缺少的界面 ...

随机推荐

  1. 图解最小生成树 - 普里姆(Prim)算法

    我们在图的定义中说过,带有权值的图就是网结构.一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边.所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接 ...

  2. Memcached Windows 测试

    一.安装 打开CMD 到memcached根目录 1.安装 memcached.exe –d install 2.启动 memcached.exe -d start 经实验使用命令修改端口无效,相应的 ...

  3. 微服务架构的进程间通信(IPC)

    先抛出几个问题: 微服务架构的交互模式有哪些? 微服务常用的进程间通信技术有哪些? 如何处理部分请求失败? API的定义需要注意的事项有哪些 微服务的通信机制与SOA的通信机制之间的关系与区别 微服务 ...

  4. Spark核心概念理解

    本文主要内容来自于<Hadoop权威指南>英文版中的Spark章节,能够说是个人的翻译版本号,涵盖了基本的Spark概念.假设想获得更好地阅读体验,能够訪问这里. 安装Spark 首先从s ...

  5. 漂亮的Qt控件 QSS代码例子

    Qt Style Sheets Examples We will now see a few examples to get started with using Qt Style Sheets. S ...

  6. .net程序调试一:快速定位异常

    作为一个程序员,解BUG是我们工作中常做的工作,甚至可以说解决问题能力是一个人工作能力的重要体现.因为这体现了一个程序员的技术水平.技术深度.经验等等. 那么在我们解决BUG的过程中,定位问题是非常重 ...

  7. Sqlite 常用函数推荐

    Sqlite 常用函数 1 .打开数据库: 说明:打开一个数据库,文件名不一定要存在,如果此文件不存在, sqlite 会自动创建.第一个参数指文件名,第二个参数则是定义的 sqlite3 ** 结构 ...

  8. js innerHTML 改变div内容的方法

    永远不知道你可以改变的内容,一个HTML元素?也许你要取代的文字段落中,以反映什么访客选定刚刚从下拉框中.通过操纵一个元素的innerHtml您可以变更您的文本和HTML多达你喜欢.改变文字inner ...

  9. [svc]logstash和filebeat之间ssl加密

    cfssl生成证书 wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/local/bin/cfssl wget https://pkg ...

  10. 前端开发中Cookie那些事儿

    前段时间做了项目,在前端实现中频繁的操作cookie,记录几点供大家参考! cookie操作在前端开发过程中经常遇到,当然如果只是用来存储一些简单用户数据,还是比较简单的,我们要做的可能只是设置coo ...