- 博客(43)
- 资源 (14)
- 收藏
- 关注
原创 cocos2d-x 3.0 beta 中 新增json搜索路径
// 新增json搜索路径FileUtils* pFileUtils = FileUtils::getInstance();std::vector searchPaths; searchPaths.push_back("scene"); pFileUtils->setSearchPaths(searchPaths);
2014-02-13 10:40:38 1129 2
原创 大型程序注意点
1. 内存相关 可使用内存检测工具(valgrind) 推荐没做完一个模块之后 都运行检查一次2. 使用队列 注意循环调用和回调思想3. 第三方开源库的使用 4. 使用静态代码分析工具 分析可能出现的笔误 如 pvs5. 各个环节的测试, 比如通讯框架搭建好后,一定完整全面的测试 保证底层的稳定,否则上层查找bug很困难6.
2013-12-14 16:21:03 828
原创 为Cocos2d-x的Android平台添加Protobuffer支持
软件: cocos2d-x版本protobuffer版本:NDK版本:Eclipse: 之前在网上搜索了很多文章,发现大多文章都没有一个完整的流程,自己摸索了2天,成功添加了protobuffer支持。这里记录下同时分享给其他人。这里的添加方式雷同于添加cocos2d-x所需要的第三方库。1. 利用cocos2d-x提供的python脚本新生成一个项目。(进
2013-11-27 18:00:40 6413 2
转载 如何使用automake来管理你的编译
原文作者:赵杨很多入门级Linux编程书籍并没有透露:其实你不用手动编写Makefile文件,GNU老早就提供了一套好用的工具链,可以很方便的生成Makefile文件。 �0�2 你一定知道Linux下很多软件包,特别是GNU的,安装一般只需要执行命令:./configure; make install; 即可方便的完成源码的编译和安装。听说这叫做符合GNU规范的软件源码包 �0�2 这篇短文
2013-10-19 14:38:17 1295
原创 8. 异步操作
对于游戏开发而言,经常使用到异步相关操作,因此在使用moduleframework之前应该提供一个异步操作的类。 以后相关的异步操作均继承这个类AsyncOperation:先贴出代码:#ifndef __ASYNC_OPERATION_H__#define __ASYNC_OPERATION_H__#include class AsyncOperation{publi
2013-09-15 16:39:56 1613 5
原创 7. 对通信数据包进行打包
在章节6 我们实现了利用protbuffer进行数据传送。在实际传送过程中,我们往往还需要对数据添加一些额外的信息,以便接收方能正确处理该数据包。对此,可采用一些符合自定义要求的结构。这里就以如下结构作为代表:其中msgId代表该协议对应的消息Id, bodyLength表明body占用长度, serialNo对应请求序列号,sessionId,对应回话Id, from 表明来原
2013-09-15 15:39:56 2832
原创 6.基于ZMQ的游戏网络层基础架构
对于内网服务器的通信采用zmq来进行,对于和客户端的通信采用boost的asio来。这里先来搭建zmq的基础结构。zmq相关的知识可以去zmq官方网站查询。这里使用zmq的push 和pull来进行通信。先放一张结构图:其中PushZmq是推管道, PullZmq是拉管道:对于Push的流程是:zmq_init()----> zmq_socket()---->zmq
2013-09-14 17:32:40 4588
原创 5.开发环境搭建4
测试boost是否安装成功:测试源码:#include using namespace boost;using namespace std;int main(){ cout (12.2); return 0;}记得编译加上链接库 -lboost_filesystem运行结果:安装成功
2013-09-14 17:07:18 1131
原创 4.开发环境搭建3
测试Glog是否安装成功:测试文件:#include #include using namespace std;int main(){ google::InitGoogleLogging(""); google::SetLogDestination(google::INFO, "../"); google::SetLogFilenameExtension("log_"
2013-09-14 17:04:20 1213
原创 3.开发环境搭建2
测试zmq是否安装成功:zmqClient.cpp:#include #include #include int main(){ zmq::context_t context(1); zmq::socket_t socket(context, ZMQ_REQ); socket.connect("tcp://127.0.0.1:5559"); for(int i=
2013-09-14 17:01:01 1631 3
原创 2.开发环境搭建1
step1:采用语言: c++ 开发环境: centos6.3 首先需要安装相关的软件。这里使用到的有 protobuffer zmq boost glog 各个软件的具体作用可以百度一下。安装过程基本上按照 ./configure && make && make install 一路下来。接下来需要测试一下安装是否成功,需要编写最简单的代码来测试各个软件:首先是protob
2013-09-14 16:54:37 1455
原创 1.游戏服务器相关技术
做游戏开发也差不多有大半年的时间了。 从这半年的接触来看,游戏行业还是不错感觉。 下面就记录一下服务器端可能用到的一些技术。1. 数据库 --->不用多说。 但是游戏行业与web开发的数据库设计思想不太一样。 游戏中,只是将一些区别性的东西保存在数据库,对于共享的数据都做成xml,在服务器启动的时候加载到内存中。 例如:对于道具而言,小血瓶每次固定补满1000hp,那对于这个道具没有必要保
2013-09-08 16:31:49 2978
原创 使用distcc进行分布式编译来提高编译速度。
最近公司的项目快上线了《战甲online》 由于在GameServer中添加的业务模块太多,导致编译速度越来越慢。早期的时候通过C++的前置声明可以提高一些。但是后期发现还是跟不上。 公司的主程安排我来搭建一个分布式编译环境。环境:centos6.3 1. 要使用distcc当然需要先去安装。这里使用官方源码编译安装。 下载地址:https://code.google.com/p/dist
2013-09-08 10:53:03 7470 1
原创 身份证校验及其18岁判定(包含18位身份证和15位身份证)
// IDCardVerifyDemo.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;bool CheckEighteenCard(const string& idCard){ int size = idCard.size(); // 验证出生日
2013-04-17 15:47:33 4094
转载 引用和指针在交换中的区别
1.首先我们来先看看一个使用引用来交换的例子#define DEMO 1#include using namespace std;void ptr_swap( int &v1, int &v2){ v1=v1+v2; v2=v1-v2; v1=v1-v2;}int main(){ int ia = 1; int ib = 2; c
2013-04-15 09:55:22 802
原创 boost::function 用来注册函数(switch N多case的解决方案)
在现在做的游戏开发的项目中,需要根据道具类型调用不同的接口,通常的写法是用switch(itemType){ case ...;case ...;...}这样写的话,如果将来有新增情况会导致case越来越多 ,不好。正好项目中使用了boost库,结果老大给了个解决方案: typedef boost::function TypeOnUseItemHandle
2013-03-28 12:54:43 1385
原创 使用boost向回调函数传值
Function(boost::bind(&callback,_1,_2,yourParam1, yourParam2)) // _1,_2是占位符,表明callback本来需要的参数,这里对应int a int b 两个void callback(int a, int b ,param1,param2){ .....} _game->iServer->iDbServer.G
2013-03-22 13:20:27 1769
原创 tinyxml库使用
tinyxml是c++中用来解析xml的工具库#ifndef __ROLE_CAREER_LEVEL_NUMTABLE_H__#define __ROLE_CAREER_LEVEL_NUMTABLE_H__#include "../../../common/tinyxml/tinyxml.h"#include "../../../serverinterface/protos
2013-03-22 13:10:26 1273
原创 C++ 中list容器,自定义sort排序规则,stl中sort自定义排序规则
最近做游戏开发,其中容器(背包,仓库)中的整理功能需要对容器中的所有道具按照一定的规则来进行整理和排序,这里有两种解决方案,一是重载list.sort()的操作运算符,二是通过list.sort(greater) 指定类似与回调函数的方式来排序。// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #includ
2013-03-22 13:05:55 23176
转载 Linux资源合集
linux内核源代码情景分析 非扫描版 上下册合订版 字清楚 带书签 1575页 pdfhttp://download.csdn.net/source/2002579*************************************************************linux设备驱动开发详解 pdf,针对ARM9 s3c2410 经典 宋宝华http://
2013-01-11 09:20:47 1452
原创 本人将陆续发布自己所做的无线视频监控小车视频及资料
本人将陆续发布自己所做的无线视频监控小车视频及资料,其中包括源码,对源码的视频讲解,以及在做的过程中所使用到的参考资料。给和我类似的同学提供一个参考。硬件环境: real6410开发板,ov9650摄像头,直流电机驱动电路,无线路由器,real6410配套无线网卡,pc机总体思路: 视频传
2012-05-04 23:27:12 4823 15
原创 include\smdk6410.h分析
由于最近看uboot一头雾水,感觉一个头两个大,所以决定好好的看下s3c6410的硬件 对照s3c6310.h看了下 先将其记录如下:/* * (C) Copyright 2007 * Byungjae Lee, Samsung Erectronics, bjlee@samsung.com. * - only support for S3C6400 * $Id: s3c
2012-04-12 19:56:21 2651
转载 uboot阅读笔记之cpu工作模式(SVC32)
日期:2008.9.25目的:熟悉S3C2410初始化过程细节题目:设置cpu工作在超级保护模式(SVC32)明细:@set the cpu to SVC32 modemrs r0,cpsr @把CPSR内容存入r0.使用了mrs指令:专用寄存器到通过寄存器的存取.@CPSR当前程序状态寄存器格式如下:@ 31 30 29 2
2012-03-27 22:24:33 6875
原创 设备驱动开发详解第一章读书笔记
设备驱动开发详解第一章 Linux设备驱动概述硬件是基础,代码最终会落实为硬件的组合逻辑和时序逻辑。OS适合于多任务环境。计算机硬件:1. CPU 2. 存储器 3. 外设 驱动针对存储器与外设,而不是CPU核字符设备:串行顺序访问块设备:可随机访问网络设备:不对应文件系统节点Linux设备驱动重点:良好的硬件基础,懂得SRAM Fla
2012-03-24 21:12:58 809
原创 Linux系统架构与目录解析读书笔记_第5至第6章
第四章 用户的主目录主目录是从用户一开始登录系统后即被允许在该目录下做任何事情的目录当管理员新增用户时,系统会自动为该用户新建一个主目录,取名方式就是以新增用户名作为该目录的名字。Useradd jcracker //新增用户jcracker对新建主目录,其默认文件跟/etc/skel配置相关 将其复制且改变所有者与用户组将用户主目录搬至 /home平级:1.
2012-03-24 19:28:28 678
原创 Linux系统架构与目录解析读书笔记_第1至第4章
第一章Linux启动流程图系统使用mount可产生根目录加载示意图根目录:一个目录中最基本的地址代号,理解为最顶层的目录。FHS:FileSystem Hierarchy Standard Group 定义Linux标准的目录结构第二章 不同启动模式的目录启动方式:本地启动、网络启动本地启动与网络启
2012-03-24 16:32:56 1296 1
转载 CentOS yum安装mysql后 Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
CentOS Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’如果仅仅只yum 安装了mysql这个包,启动mysql时就会提示:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/
2012-03-08 18:33:16 4809
转载 SPI CAN IIC简介
一、SPI总线说明串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI 用于CPU与各种外围器件进行全双工、同步串行通讯。SPI可以同时发出和接收串行数据。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条
2012-02-09 13:13:42 5890 2
转载 给xt800(手机)写一个hello world的内核模块
http://blog.chinaunix.net/space.php?uid=24030346&do=blog&id=145339我用的是xt800,由于要使用insmod这些命令,所以首先就是获得手机的root权限(adb shell获得root权限)我看了手机,我的内核是2.6.29-omap1,我就上linux上面去下了一个这个内核。然后是配置,如果这几项不配置直接将hel
2012-01-15 14:05:51 2694
转载 用电脑控制手机,就像运行超级终端的方法,使用的是LINUX命令 可进行手机调试等
http://www.angeeks.com/thread-1847434-1-1.html简介:Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器的状态。可以通过下列几种方法加入adb:·在设备上运行shell命令·通过端口转发来管理模拟器或设备·从模拟器或设备上拷贝来或拷贝走文件下面对
2012-01-15 13:41:56 12459
转载 NDK Hello
转载:http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html前段时间,工作中需要用android的应用程序访问android的根文件系统中的文件,但是由于应用程序的权限限制,无法访问这些文件,怎么办? 所以这就要用到了NDK编程了,既用C/C++代码实现访问系统文件,并将其生成本地库,供android中的jav
2012-01-14 21:18:45 951
转载 编译内核模块 .ko文件的注意事项 缺少:mmzone.h bounds.h
前两天新到手一个6410的板子,按照说明在上面跑了一下android和QT,都成了。今天想试试helloworld模块的装载发现了一些需要注意的问题。出现的问题:编译的时候提示缺少头文件 mmzone.h ....bounds.h...等include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or dire
2012-01-14 10:31:10 2293
转载 驱动头文件说明
驱动程序:#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include //最基本的
2012-01-13 22:32:30 556
转载 C语言字符串函数集锦(二)
说起字符串函数,我想大家都不陌生。字符串函数对二进制数据、字符串和表达式执行不同的运算。下面总结了C语言中的字符串函数。13、函数名: strncmpi功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写用 法:int strncmpi(char *str1, char *str2); 程序例:#include #includ
2011-12-27 10:44:41 582
转载 C语言字符串函数集锦(一)
说起字符串函数,我想大家都不陌生。字符串函数对二进制数据、字符串和表达式执行不同的运算。下面总结了C语言中的字符串函数。1、函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法:char *stpcpy(char *destin, char *source); 程序例:#include #include int main
2011-12-27 10:43:40 711
转载 GPIO接口编程
GPIO接口编程一、S3C2410有117个I/O口,共分为A~H共8组,可以通过设置寄存器来确定某个引脚用于输入、输出还是其他特殊功能。和I/O操作相关的寄存器:1、GPxCON 用于配置引脚功能; GPACON中每一位对应一个引脚(共23根),0——输出,1——用于地址线或地址控制,一般GPACON通常设为全1,以便访问外部存储器件;
2011-12-26 16:39:11 4416
转载 rmmod chdir no such file or directory 的最终解决办法_针对real6410
1.创建/lib/modules/2.6.28空目录就.2.使用如下源码生成rmmod命令,就可以没有任何提示的卸载ko模块了#include stdio.h>#include stdlib.h>#include unistd.h>#include fcntl.h>#include string.h>#include errno.h>int main(i
2011-12-26 12:17:29 803
转载 mini6410利用定时器1把GPE2 和GPE4口输出可调PWM
mini6410 定时器中断驱动 io口利用GPE2和GPE4口 定时器用定时器1 ------------------------------------------------------------------驱动程序分割线-------------------------------------------------------------------
2011-12-22 18:47:03 976 1
转载 FriendlyARM mini6410 pwm0 输出驱动 对照之前的pwm驱动文章 即可读懂
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2011-12-22 12:28:51 1562
Android自己写库模块Win&Android联调总结.rar
2014-07-29
为cocos2d-x3.2添加protobuffer2.5.0支持
2014-07-26
无线视频监控小车之x264学习
2012-05-05
无线视频监控小车之系统后台视频显示部分
2012-05-05
无线视频监控小车之小车控制部分源码
2012-05-05
无线视频监控小车视频采集部分源码
2012-05-05
X264学习代码
2012-05-05
Linux照相程序分析,用于学习v4l2接口的使用
2012-05-05
最新andEngineSamples导入Eclipse即可使用
2012-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人