关于Cocos2d-x中对其他某个类的某个属性的获得
类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中对其他某个类的某个属性的获得的更多相关文章
- moviepy音视频剪辑:moviepy中的剪辑基类Clip的属性和方法详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解
☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>和<moviepy音视频剪辑:moviepy中的剪辑基类Cl ...
- 【转载】 C++多继承中重写不同基类中相同原型的虚函数
本篇随笔为转载,原文地址:C++多继承中重写不同基类中相同原型的虚函数. 在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数.下面就是一个例子: class CBaseA { public: ...
- Myeclipse中打开接口实现类的快捷键
Myeclipse中打开接口实现类的快捷键-----Ctrl + T Myeclipse中 Open Type快捷键-----Ctrl + Shift + T
- C#正则表达式编程(一):C#中有关正则的类
正则表达式是一门灵活性非常强的语言,匹配同样的字符串可能在不同的开发人员那里会得到不同的结果,在平常的时候也是用的时候看看相关资料,不用的时候就丢在脑后了,尽管在处理大部分情况下都能迅速处理,但是处理 ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- 将Eclipse中现有的java类生成类图
需求:将Eclipse中现有的java类生成类图 一:什么是ModelGoon? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图). 二:安装 下载Mod ...
- 实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法
实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法 #import <Found ...
- 关于SWT中的表格(TableViewer类)
JFace是SWT的扩展.它提供了一组功能强大的界面组件.其中包含表格,树,列表.对话框,向导对话框等. 表格是一种在软件系统中很常用的数据表现形式.特别是基于数据库的应用系统.表格更是不可缺少的界面 ...
随机推荐
- Mysql 数据备份与恢复,用户创建,授权
Mysql 数据备份与恢复,用户创建,授权 1. Mysqldump >outfile.sql 2. Mysql –uxxx –pxxx < backfile.sql 3. Create ...
- C# GridView 给某行或某列绑定点击事件和鼠标事件
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType = ...
- matlab直方图均衡
clear all; i=imread('cameraman.tif'); figure; subplot(2,2,1); imshow(i); title('原始图像'); subplot(2,2, ...
- datagrid,treegrid携带参数刷新示例
datagrid携带参数刷新: var queryParams = $("#datagridId").datagrid("options").queryPara ...
- 请教中文的OCR软件哪个最好?
对原件,有这几种:1,全中文(含标点,一些英文符号)2,中英文(英文较多,或英文占大多数)3,全英文(这个用finereader8.0) 針對1.2 紫光 超星阅读器自带的OCR组件 尚书七号搞定全中 ...
- C++ 智能指针 shared_ptr
今天晚上去旁听了C++高级编程的课,其中提到智能指针.第一反映还以为是auto_ptr呢,一听才知道是share_ptr这个.哦,原来是C++11特性.大致的原因是auto_ptr有一点缺陷,而sha ...
- angular -- $routeParams API翻译
原api出处: https://docs.angularjs.org/api/ngRoute/service/$routeParams $routeParams 可以获取当前路径参数. 需要ngrou ...
- Oracle PLSQL Demo - 11.定义包头[Define PACKAGE]
CREATE OR REPLACE PACKAGE temp_package_demo is v_demo ); PROCEDURE p_demo_1(userid NUMBER DEFAULT v_ ...
- solr学习之一 搜索基本知识
学习了一段时间的solr了,用自己的方式总结下目前学到的内容,这是个系列文章,这里面的有些说法可能不准确,也可能有问题 欢迎大家指正. 一.搜索引擎目的 搜索引擎在我们的生活中,已经无处不在,除了我们 ...
- ES6新特性概览1
本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...