C++
文章平均质量分 50
TX98337
这个作者很懒,什么都没留下…
展开
-
C++类和对象,结构体
趁着中秋放假要多补补知识了,感觉自己对C++了解的不够扎实,,为了更好的工作,只好再来看看。 C和C++规定可以用一个结构体,里面即可有数组,也可以有其他变量。C中成员只能是数据,C++除了数据,还可以是函数。 但是,C++提供了类这个东西,所以不需要包含函数的结构体。1,结构体:#includeusing namespace std;int main(){原创 2016-09-15 10:48:24 · 4577 阅读 · 0 评论 -
C++字符串格式化
printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。格式化值:%% -返回百分号%b –返回二进制数%c –返回与ASCII值相原创 2016-11-01 11:17:54 · 1135 阅读 · 0 评论 -
#pragma once
#pragma once 表示该文件只运行一次,,因为文件中如果加载了很多东西,每次需要的时候都要加载的话会浪费运行速度。原创 2016-10-08 17:23:32 · 662 阅读 · 0 评论 -
C++stl容器类使用
C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。关联容器主要有map和set。map是key-value形式,set是单值。map和set只能存放唯一的key,multimap和multise转载 2016-10-20 09:45:04 · 298 阅读 · 0 评论 -
C++里面表达(a/b)的写法
比如两个数a,b,如果是在js 里面,我果断写成ss.setString(a+"/"+b);但在C++里面,这样写不报错,但值为空,,,搞得我空欢喜一场,,应该写成ss->setString(_string::createWithFormat("%d/%d",a,b)->getCstring());原创 2016-10-18 18:03:59 · 2598 阅读 · 0 评论 -
CC_BREAK_IF
我们时常会调用某个函数来创建一个对象,但由于内存不足或其他异常情况发生时对象可能会创建失败,创建失败我们就要结束当前程序转到错误处理地方去处理错误或释放已生成的对象。CC_BREAK_IF 一个内置的判断方法,如CC_BREAK_IF (! sence)就是判断sence是否为null,如果为null则不执行后面的代码。CC_BREAK_IF的宏定义如下:[code]#define CC_原创 2016-09-30 11:04:19 · 532 阅读 · 0 评论 -
cocos2d-x 3.10 C++加载动画
//加载动画auto animation = Animation::create(); animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("hero_blowup_n1.png")); animation->addSpriteFrame(SpriteFrameCache::ge原创 2016-09-27 14:33:56 · 1294 阅读 · 0 评论 -
EditBox
首先使用命名空间 using namespace cocos2d::ui;定义:EditBox * 名字EditBox和TextField配合使用:EditBox* PageClubLayer::ReplaceTextField(TextField* pTField){cocos2d::ui::EditBox* editname = cocos2d::ui::EditB原创 2016-10-09 17:12:18 · 568 阅读 · 0 评论 -
COCOS2D-x封装物理引擎Phsics
首先创建场景://创建一个没有重力的物理世界 auto scene = Scene::createWithPhysics(); scene->getPhysicsWorld()->setGravity(Vect(0, 0)); //物理调试绘图 m_gamelayer = GameScene::create(); scene->addChild(m_gamelayer);原创 2016-09-27 15:39:20 · 489 阅读 · 0 评论 -
Cocos2d-x 3.10把文本设置为空
把文本设置为空时,,a.setString("");可能会在清空地方用到;之前设置的是a.setString(nullptr);这样是不对的。原创 2016-11-01 11:34:11 · 324 阅读 · 0 评论 -
cocos2d-x sudio和程序编辑注意事项
当你在UI里面拖出来一个button,text,imageview时,,导出生成文件,在程序里面获取到这些控件,并添加侦听时,,会发现只有按钮的侦听添加成功了,,图片,文本什么的,,明明一模一样,,感觉没错啊,可点击就是没反应,,,这种时候,,就要到studio里面勾选一个东西,,就是属性->常规里面,,把交互性勾上。。。可以弱弱地说一声蛋疼么,,,,因为UI是我自己搭的,,程序需要我自己写,,,原创 2016-11-02 10:16:59 · 401 阅读 · 0 评论 -
Mac 上用命令行创建cocos工程
创建之前mac上需要配好环境变量,这个我后期再写进来。还有,可以输入open .bash_profile 来看一下配好的环境或者环境是否配好。另外,创建工程时最后输入的com.a.b,是包名。原创 2017-11-24 17:39:16 · 897 阅读 · 0 评论 -
cocos2dx C++ 遮罩使玩家头像为圆形
auto clipnode =ClippingNode::create(); clipnode->addChild(headimage); auto circleNode =DrawNode::create(); constint maxTrangle = 360; Vec2 circleVec2[maxTrangle];原创 2017-09-21 15:04:18 · 958 阅读 · 0 评论 -
cocos2dx C++ 嵌入一个网页
auto webview =cocos2d::experimental::ui::WebView::create(); Size *_size =new Size(visibleSize.width-100, visibleSize.height-100); webview->setContentSize(*_size); webview->s原创 2017-09-19 15:47:16 · 1909 阅读 · 0 评论 -
rapidJson::Document doc
RapidJSON是一个C++的JSON解析器及生成器。解析一个JSON字符串至一个document (DOM),对DOM作出简单修改,最终把DOM转换(stringify)至JSON字符串。#include "rapidjson/document.h"#include "rapidjson/writer.h"#include "rapidjson/string原创 2016-12-27 16:20:35 · 5104 阅读 · 0 评论 -
cocos2d-x ListView列表
用这个列表时,,我真是头大,,学习了2个多星期,,足以可见我是有多笨。然而还没有全理解。基本上往里面添加东西时的步骤为(代码为例):Button* oitem = (Button*)m_oneBtnClub->clone();oitem->setVisible(true);oitem->setTag(allianceInfo.second.idAlliance);//oitem原创 2016-11-02 10:05:34 · 3241 阅读 · 0 评论 -
map容器的遍历
在用列表时用到了map容器,,他的遍历是这样的:for(auto allianceInfo:map){(中间赋值用:auto name=map.second.szName)}原创 2016-11-02 15:57:21 · 768 阅读 · 0 评论 -
cocos2d-x给Text,imageView添加侦听
其实很简单,跟button一样的。auto Text_cancelcreate = static_cast(m_ClubLayer[Panel_ccreateclub]->getChildByName("TextField_14cancel"));Text_cancelcreate->addTouchEventListener(CC_CALLBACK_2(PageClubLayer::on原创 2016-11-02 10:39:20 · 1347 阅读 · 0 评论 -
cocos2d-x CheckBox添加侦听
之前写文本,按钮,图片时,,侦听用的如鱼得水,,但是到了复选框CheckBox,有那么一瞬的迷茫,,只知道大概是有个什么判断,,是点开还是关闭,然后做相应的处理,,应该是跟按钮什么的不一样的吧,,但又不知道怎么写,,查了资料才发现,,不是那么复杂,,可以看看。 CheckBox* checkbox = static_cast(Helper::seekWidgetByName(ro原创 2016-11-02 09:43:27 · 1590 阅读 · 0 评论 -
syntax error : missing ';' before 'using'
额,,写这个博客,主要是感觉很郁闷,因为找这个错误大半天,感觉并没有错,,也试了很久,最后实在没办法,查了下才知道,要在class后加一个分号,,,我的天类声明后面有一个分号比如:class test{public: test()private: //};那个大括号后有一个分号的.宝宝受到了惊吓,,,原创 2016-09-26 11:37:56 · 793 阅读 · 0 评论 -
initialization of 'nret' is skipped by 'default' label
用到了一个switch语句,switch (event){case EventTypeCreateAlliance:int * nret = (int*)data; if(){}break;default:break;}然后里面就会报错,如题目,,百度了下,说是在case里面定义变量时,要用{}括起来,,这是解决办法。详解如下:原创 2016-10-11 15:07:09 · 593 阅读 · 0 评论 -
C++加载csb文件
Node* root=CSLoader::createNode("名字");this->addChile(root);Layer* 666=(Layer*)root->getChildByName("名字"); 当然头文件需要:#include "cocostudio/CocoStudio.h"#include "ui\CocosGUI.h"using namesp原创 2016-10-08 18:22:43 · 849 阅读 · 0 评论 -
Cocos2d-x-3.10 创建没有重力的物理世界
//创建一个没有重力的物理世界auto scene = Scene::createWithPhysics();scene->getPhysicsWorld()->setGravity(Vec2(0, 0)); my_gameLayer = GameScene::create();scene->addChild(my_gameLayer);createWithPhy原创 2016-09-22 18:08:51 · 796 阅读 · 0 评论 -
Cocos2d-x-3.10 SpriteBatchNode渲染
Cocos2d-x-3.10 为了降低渲染批次,专门建立的一个管理精灵的类,可优化程序。原创 2016-09-22 17:50:57 · 317 阅读 · 0 评论 -
Cocos2d-x 3.10版本 UserDefault
这是一个以XML文件格式来存放简单数据的,可存储数据类型为bool, int, float, double, string。他的部分源文件为:std::string getStringForKey(const char* key); /** * Get string value by key, if the key doesn't exist, will原创 2016-09-19 15:23:14 · 538 阅读 · 0 评论 -
Cocos2d-x 3.10版本 进度条
C++里面,有一个LoadingBar的API,有了进度条的框形图片后,直接定义,看代码://倒计时条bonusbar_fill.pngmy_bonusBar = LoadingBar::create("bonusbar_fill.png");my_bonusBar->setPercent(100);my_bonusBar->setPosition(bonusBar->getPos原创 2016-09-20 09:50:52 · 483 阅读 · 0 评论 -
Cocos2d-x 3.10版本 创建文本
基本上和js一样,先创建Label,然后Item,Menu,添加,只不过写法不同罢了,再次感叹一下发个博客下面为代码部分:auto backLabel = Label::createWithTTF("Again", "fonts/Marker Felt.ttf", 36);backLabel->setColor(Color3B::BLACK);auto backItem = Men原创 2016-09-20 09:58:15 · 867 阅读 · 0 评论 -
Cocos2Dx_3,10版本定时器
我接触最多的是:schedule(schedule_selector(jewelsGrid::afterSwap));schedule_selector函数源码为:typedef void (Ref::*SEL_CallFunc)();typedef void (Ref::*SEL_CallFuncN)(Node*);typedef void (Ref::*SEL_CallFunc原创 2016-09-20 10:57:23 · 1401 阅读 · 0 评论 -
enum枚举
先看一段代码://游戏关卡enum level{level1,level2,level3,level4,level5,};enum是用来定义枚举常量或变量的,但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作。原创 2016-09-22 17:31:27 · 334 阅读 · 0 评论 -
C++static
创建静态变量,程序结束时释放空间,程序初始化默认为0,用static声明的变量,在下一次调用时还可以保持原来的赋值,仅在变量作用范围内可见,函数中必须要使用static变量情况:比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。 函数前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,原创 2016-09-20 09:38:44 · 638 阅读 · 0 评论 -
static_cast
cast:强制类型转换,标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。static_cast用法:static_cast(expression); //把expression转换为type-id类型,主要用于把vo原创 2016-10-09 11:16:33 · 310 阅读 · 0 评论 -
CCAction
CCFiniteTimeAction:有限次动作执行类,按时间顺序执行,执行完后动作结束,CCSpeed:调整实体(节点)的速度,CCFiniteTimeAction又分为CCActionInstanse(瞬时动作的基类)和CCActionInterval(延时动作的基类)。CCActionInstanse:没什么特别,跟CCActionInterval主要区别是没有执行过程,动作原创 2016-10-11 12:11:56 · 374 阅读 · 0 评论 -
设置按钮点击后一直保持被点击时的状态
昨天写游戏时,需要实现一个点击按钮后跳转到相应界面,然后在该界面时,那个按钮要一直保持点击时的颜色,或状态,,考虑了两种办法,第一种按钮用图片来做imageView,做Ui时也是把button换成了image,但我刚开始没写过C++的图片按钮,,找度娘也没得办法,,,第二种是就用Button,点击后再设置button的图片,,但我找不到设置图片的函数,,,刚开始用button->setEnable原创 2016-10-11 11:43:18 · 10264 阅读 · 0 评论 -
TextField
TextField * textField = TextField::create("input words here", "Arial", 30);textField->setPosition(Vec2(widgetSize.width / 2.0f, widgetSize.height / 2.0f));textField->addEventListener(CC_CALLBA原创 2016-10-09 16:55:48 · 860 阅读 · 0 评论 -
宏定义
宏定义是替换,不做计算,也不做表达式求解。简称宏。格式:#define 标识符 字符串说明:(1)宏名一般用大写(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。(4)宏定义末尾不加分号;(5)宏定义写在原创 2016-10-09 14:17:22 · 1325 阅读 · 1 评论 -
列表容器list
相对于vector来说,list比较复杂,允许插入,删除,List节点不保证在存储空间连续存在,所以必须有指向它的节点,它是双向环状链表,需要一个指针,API为:push_front(x):把元素x推入(插入)到链表头部pop_front():弹出(删除)链表首元素merge(listref):把listref所引用的链表中的所有元素插入到链表中,可指定合并规则splice()原创 2016-09-20 13:01:00 · 473 阅读 · 0 评论 -
c_str
c_str返回一个字符串的指针(它的地址),内容和string类的本身对象是一样的,string类c_str函数原型: const char *c_str()const;//返回一个以null终止的c字符串 char* c; string s="1234"; c = s.c_str(); //c最后指向的内容是垃圾,因为s对原创 2016-09-19 15:46:32 · 246 阅读 · 0 评论 -
C++Sprintf
sprintf(scoreArr, "%d", my_score);首先看上面这行代码,sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这行代码,先以%d占据一个位置,再在后面的变参列表中提供变量,产生一个想要的字符串, //把整数123 打印成一个字符串保存在s 中。 sprintf(s, "%d", 1原创 2016-09-20 10:32:51 · 575 阅读 · 0 评论 -
C++设计模式-Observer观察者模式
观察者模式概念:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。“Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automat转载 2016-10-09 12:10:42 · 314 阅读 · 0 评论 -
翻牌
#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"USING_NS_CC;class HelloWorld : publiccocos2d::Scene{public: staticcocos2d原创 2017-12-18 14:07:27 · 289 阅读 · 0 评论