C++
文章平均质量分 82
_Captain
这个作者很懒,什么都没留下…
展开
-
C++ 需要返回值的函数却没有返回值的情况 单例模式
CPU中有个寄存器exa,就是用来存放函数返回值的。在new 操作的时候返回了singleton实例的指针。保存到exa中。原创 2013-12-12 11:46:53 · 4194 阅读 · 2 评论 -
该怎么样用C++来实现类Unity3d的AddComponent
Unity3d 越来越完善,朝着它学习的人也越来越多。一是因为Unity3d是一整套开发工具,使用起来简单快捷。二是 Mono C#的快速开发上手简单。在Unity编辑器中,添加一个GameObject , 然后把一个继承自MonoBehavior的脚本拖到GameObject上,即可对GameObject进行操作。或者在代码中new 一个GameObject,然后用AddComponet 挂载一个脚本到GameObject上。原创 2015-04-11 01:22:08 · 3618 阅读 · 1 评论 -
C++调用Android函数弹出一个提示框中出现的问题总结
使用C++编写游戏然后在Android上面运行,使用NDK编译过程中难免出现一些问题,在这里把这些问题记录下面。今天解决的是JNIEnv、jobject全局变量的使用!原创 2015-03-23 19:46:26 · 2269 阅读 · 0 评论 -
C++ 操作符重载 operator = 、operator <
正常情况下我们不能对两个Class进行 = 、这里有一个 类 person ,我们对这个类进行 = 、#pragma onceclass person{public: person(int _age=0):age(_age) { } person& operator = (const person& a) { age=a.age; ret原创 2013-10-24 10:58:38 · 1811 阅读 · 0 评论 -
C/C++ 不带参数的回调函数 与 带参数的回调函数 函数指针数组 例子
先来不带参数的回调函数例子#include #include void printFunc(){ std::cout<<"printFunc"<<std::endl;}void CallFunc(void (*FuncPoint)()){ FuncPoint();}int main(int argc,char* argv[]){ CallFunc(pr原创 2013-10-13 17:16:58 · 5424 阅读 · 0 评论 -
Cocos2d-x C++调用Android弹出提示框
转载请注明地址,谢谢。。Cocos2d-x中提供了一个JniHelper类来让我们对Jni进行操作。(PS:弄了一天想自己写代码操作Jni的,但是总是出错,技术差不得不使用Cocos2d-x现成的了)。我们有一个Android工程 :CocosDemoAndroid还有一个Win32工程:Cocos2dDemo.win32这个是必备的。。。在C+原创 2013-09-16 11:42:17 · 5491 阅读 · 0 评论 -
CCScrollView的使用
CCScrollViewTest.h#pragma once#include "cocos2d.h"#include "cocos-ext.h"#include "TristanaLayer.h"using namespace cocos2d;using namespace cocos2d::extension;class CCScrollViewTest : pu转载 2013-09-02 22:26:50 · 1725 阅读 · 0 评论 -
Android NDK 第一个例子 HelloNDK
Android NDK 里面Samples里面有很多例子。我这里是第一个例子,从C++层返回一个String到Java层。然后显示在Android TextView上面。我们新建一个Android工程,默认新建工程是没有jni文件夹的,我们自己新建一个(虾米,这东西有什么用? TT:这文件夹就是用来放NDK编译相关文件的)。在jni文件里面,一定需要一个Android.m原创 2013-09-06 22:58:38 · 2251 阅读 · 0 评论 -
Cocos2d-x 中使用多线程
一直以为Cocos2d-x中只有事件队列,只有一个主线程。。。pthread_mutex_init(&mutex,NULL);理解为初始化互斥锁吧。。pthread_create(&pidgo,NULL,thread_go,0);创建一个线程,第一个参数是线程ID,第二个描述为空,第三个是线程函数,在这个函数里写需要在线程里执行的事件,第四个是传递参数给函数。转载 2013-08-11 01:13:31 · 4884 阅读 · 4 评论 -
C++ 模板类
ClassTemplate.h#pragma oncetemplate class myClass{private : T1 x; T2 y;public: myClass(T1 a,T2 b); //构造函数 void show();};templatemyClass::myClass(T1 a,T2 b):x(a),y(b){}template转载 2013-08-07 23:14:12 · 1144 阅读 · 0 评论 -
Cocos2d-x 让飞机随着触摸移动起来
首先要在GameLayer init() 中设置支持单点触摸,然后要重载触摸处理的函数//设置可触摸this->setTouchEnabled(true)重载函数: //重载函数,对单点触摸有效 virtual void registerWithTouchDispatcher(); virtual bool ccTouchBegan(CCTouch *pTouch, C原创 2013-11-17 15:51:57 · 2220 阅读 · 0 评论 -
CCNode
CCNode应该是Cocos2d的最顶点了,下面分出了很多CCLayer,CCSprite等。在看Cocos2d-x 微信打飞机的教程的时候,里面的Enemy 类就继承了CCNode。用CCNode的addChild() 函数来加入一个敌机的Sprite,这样Enemy 这个CCNode就拥有了一个Sprite敌机图片,再加上敌机的life 血量属性以及其它的速度之类的,就成了一个原创 2013-11-17 20:15:39 · 1275 阅读 · 0 评论 -
加快VS2010 运行速度方法
一、VS2010选项视觉体验设置工具->选项->环境视觉体验的勾选都去掉。不解释,你懂得。二、禁用Intellisense工具->选项->文本编辑器->C/C++->高级禁用IntelliSense设为True这个功能很好用。相较于Visual Assist X,Intellisence结果更加准确,但活动也更加频繁,项目一庞大时修改头起来就会使VS变得很卡。三转载 2013-11-04 19:28:23 · 2013 阅读 · 0 评论 -
RakNet 消息与函数的绑定 一个消息对应多个函数
上一篇做了RakNet 一个消息与一个函数的绑定,但实际上一个消息有时候会对应多个函数,这时候我们可以用Vector把消息处理函数存起来,然后当消息发过来的时候,循环执行所有的处理函数在上一篇的源代码做了 添加Vector 的修改。#include #include #include#include #include using namespace std原创 2013-11-12 21:48:40 · 1793 阅读 · 0 评论 -
RakNet 消息、函数注册
#include #include #include#include using namespace std;enum GameMessage{ GM_LoginReturn, GM_EverydayDrawReturn, GM_FriendExtendReturn};void getRequestLoginReturn(){ int i=0;}void原创 2013-11-11 22:35:38 · 1307 阅读 · 0 评论 -
RakNet Client和公网Server通信 例子 -- 修改远程电脑时间
很多游戏引擎都是不带网络操作的,比如Cocos2d-x ,那我们只好自己去写或者使用现有的,技术有限的我们只能用现有的了。RakNet是一个开源的C语言网络操作库,被广泛应用于各种网络程序中,当然我这里只关注手机网络游戏。。。。这算是RakNet的入门一个例子。原创 2013-11-10 23:33:27 · 6211 阅读 · 0 评论 -
C 标准库获取当前系统时间
尽量用C标准库、不用系统API首先包含头文件#include 返回一个string吧string getCurrentTime(){ time_t t=time(0); char tmp[64]; strftime(tmp,sizeof(tmp),"%Y/%m/%d %X %A",localtime((&t))); string timeStr=tmp; ret原创 2013-11-24 14:25:42 · 2459 阅读 · 0 评论 -
C++ 重载 () 简单例子
这个例子重载了 () #pragma onceclass stack{public: stack(); ~stack(); int operator()();private: int a;};stack::stack(){ a=3;}stack::~stack(){}int stack::operator()(){ return a;原创 2013-11-22 00:42:37 · 1526 阅读 · 0 评论 -
C++ 简单工厂模式
假设有如下的场景: 卖pizza的, 可以有很多种pizza(CheesePizza, GreekPizza, PepperoniPizza),我们该如何处理它呢,当然我们可以声明一个类,类中创建每一个种类的pizza。但是这样有什么问题吗?我们没有把需要改变的部分剥离出来。软件设计的一个原则就是“是易于扩充而不是修改”,另一个是“对接口编程而不是对实现编程”。 这里就轮到工厂模式出手了转载 2013-08-06 00:09:48 · 1198 阅读 · 0 评论