![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Game
文章平均质量分 61
inspironx
这个作者很懒,什么都没留下…
展开
-
项目环境搭建
项目开发环境搭建原创 2023-02-21 03:06:10 · 271 阅读 · 0 评论 -
AR儿童绘本技术实现
使用vuforia的AR技术+Unity3d实现儿童绘本,市面上的大部分是静态着色:我们在涂鸦了图片以后扫描图片,把图片上着色的部分贴到3d模型上,实现着色互动儿童绘本玩具。原创 2016-02-04 15:04:41 · 7885 阅读 · 5 评论 -
跨平台AR增强现实开发(一)(AR开发环境的搭建)
简介: AR,英文单词为AugmentedReality,增强现实;该技术在几十年前就被提出来了;但一直局限于设备,硬件的限制,无法在生活中应用开来,随着这几年移动互联网的快速发展以及市场的需求变更速度加快,AR开始流行起来 在国内,AR已经应用到了教育,医学,展览,旅游行业;开发环境: 我使用的高通的Vuforia + Unity3d 32bit进行开发的,这样开发的好处是跨平台,基于强大的原创 2015-11-30 21:43:27 · 6966 阅读 · 0 评论 -
跨平台AR增强现实开发(四)(高通识别图5星处理方式)
高通增强现实识别图的处理,针对各种情况下的识别图进行处理。原创 2016-05-06 14:53:04 · 5077 阅读 · 0 评论 -
跨平台AR增强现实开发(二)(Vuforia目录结构)
跨平台AR增强现实开发(二)(Vuforia目录结构)我使用的开发环境是高通vuforia 5.5.9 + unity 5.3.4f + win7 64,高通的AR可以免费使用,但非开源,免费的为最普通的版本,没云识别功能;且在App的左下角会有Vuforia的水印;key会过期;原创 2016-04-26 12:10:07 · 1723 阅读 · 0 评论 -
跨平台AR增强现实开发(三)(ARCamera功能与简介)
跨平台AR增强现实开发(二)(ARCamera功能与简介)ARCamera渲染AR场景的相机,只要使用AR功能必须要用到;我使用的是vuforia 5.5.9的版本,改版本全面支持微软的hololens,支持市面上的各种主流VR眼镜原创 2016-04-28 14:44:41 · 10170 阅读 · 0 评论 -
C++11 多线程高性能库ConcurrentQueue(多生产者、多消费者)
ConcurrentQueue是一个header only多线程库A fast multi-producer, multi-consumer lock-free concurrent queue for C++11原创 2022-07-01 10:58:14 · 2794 阅读 · 1 评论 -
Gameplay常用编写方法(持续更新)
三消游戏编写步骤1.将块当作SpriteRenderer,使用Row\Column来实例化一个范围2.制作多款子消除单位,将单位实例化到当前的模板单位下3.添加collision,添加点击事件,交换需要交换的块,更新到View4.约束交换限制,只能交换差值1以内的块5.检测3消块,检测水平方向以及竖直方向,添加到list6.有消除的话将上面的块往下移动,以消除的块的行列为准7.添加新的块,以消除的为准往下移动,再次检测消除8.功能完善,添加Tween效果和音效Thinking1..原创 2021-09-03 11:01:01 · 650 阅读 · 0 评论 -
C++ STL 常用容器
STL容器STL的常用容器有5个,分别是:vector list deque multiset unordered_multisetvector<T>定义:template < class T, class Alloc = allocator > class vector;基本概念vector(向量)是一个封装了大小和类型的动态容器,其本质和数组差不多;vector的数据存储是一维的,默认每次扩容一倍;正常使用情况,尽量指定容器的大小,对内存和速度有优化常用AP.原创 2020-09-12 18:32:52 · 249 阅读 · 0 评论 -
C++ 11(2.0)新特性 09(RValue Reference ROV技术)
C++2.0 右值引用void print(char* str){ cout << str << endl;}static size_t U_CTOR;static size_t U_COPY_CTOR;static size_t U_MOVE_CTOR;class ValueReference{public: ValueReference() { } ValueReference(int len, string data) : len(len), da.原创 2020-09-12 04:10:02 · 645 阅读 · 0 评论 -
C++ 语法关键字 const volatile mutable
关键字解释const 常量定义关键字const的全称是constant,不变的,在一个有效的作用范围内约束变量、指针、方法、对象;const不能和static关键字一起使用,因为static没有一个有效的作用范围。volatile 解指针关键字如果是被const修饰的变量,如果想通过指针对变量再次进行修改,需要使用volatile,多变的;mutable 解对象、方法变量关键字const修饰的方法,里面的变量不能修改,使用mutable修饰的变量可以修改;实例代码// const作为函数原创 2020-09-11 01:47:12 · 224 阅读 · 0 评论 -
C++ 11(2.0)新特性 08(lambda表达式 关键字汇总)
C++2.0新增了lambda(inline)表达式int main(int argc, char* argv[]){ // 定义一个lambda表达式 // lambda表达式语法:[capture var...](inType...) mutable(opt) throwAble(opt) -> returnType(opt) { BODY }; // lambda表达式的类型复制,一般使用auto来声明 auto lambda1 = []{cout << "Hello .原创 2020-09-10 18:23:03 · 284 阅读 · 0 评论 -
C++ 11(2.0)新特性 07(dealtype与auto并存)
C++2.0 dealtype关键字dealtype是为了替代typeof关键字设计的,typeof并不好用,有3个作用1、显式的明确一个返回类型2、修饰数据的明确类型3、通过lambda运算之后的结果类型显式的明确一个返回类型template<typename T1, typename T2>struct OpCustom{ // 用于模板的返回值,函数声明为auto,返回需要明确类型 // '->'是lambda表达式的返回值简写 auto Add(T1 t1,原创 2020-09-10 04:14:28 · 588 阅读 · 0 评论 -
C++ 11(2.0)新特性 06(模板、类型别名、noexcept override final)
模板C++2.0 动态模板// 定义一个类型名字为T的动态模板template<typename T>// 使用using来声明此模板需要协作的功能using VEC = vector<T, allocator<T>>;int main(int argc, char* argv[]){ VEC<string> VEC{ "DOG", "CAT", "FISH" }; // 等于 vector<string, allocator<.原创 2020-09-10 03:18:42 · 264 阅读 · 0 评论 -
C++ 11(2.0)新特性 05(增强for循环、=default、=delete)
增强for循环void print(short v){ cout << v << " ";}int main(int argc, char* argv[]){ vector<short> vt{ 3, 4, 5, 6, 7 }; // C++2.0新加了增强for循环,语法for(typedef[auto] item : initializer_list<typedef>) for (auto item : vt) { print.原创 2020-09-09 02:11:21 · 838 阅读 · 0 评论 -
C++ 11(2.0)新特性 04(initializer_list构造输入数据结构)
代码示例struct example{ example(int x, int y) { cout << "example1" << "\n"; } // C++2.0专门用来统一初始化的实例参数输入数据结构体 // 可以接收多个参数 // 对应的调用使用{param1, param2}方式 example(initializer_list<int> args) { cout << "example1 initializer_li.原创 2020-09-08 07:42:51 · 224 阅读 · 0 评论 -
C/C++ 指针专题(看完这一篇就够了)
指针相关概念指针既是内存地址,指针和内存地址有关系;什么是内存地址?1、内存是以字节为单位的连续存储介质2、内存的地址具有唯一性、和不可修改性3、内存是一维数组的存储模式空指针在内存模块组中,有一个起始地址,也就是0号对应位置的内存块中,这里就是NULL PONITER的内存地址;把数据指到这个地址,系统会自动进行回收。野指针当一个指针没有明确指向一个内存地址的时候,称为野指针;比如int *p;当定义一个指针的时候需要直接进行初始化int *p = nullptr;C语言的指针运算原创 2020-09-08 01:31:03 · 413 阅读 · 1 评论 -
C++ 11(2.0)新特性 03(变量统一初始化,auto、nullptr关键字)
代码示例void f(int) { }void f(void*) { }int main(int argc, char* argv[]){ // C++2.0以前初始分为小括号、中括号、大括号都可以初始化 string str("initialize"); int iarr[2] = { 1, 2 }; // C++2.0以后统一使用这样的方式初始化 int x { 100 }; // initialize value int arr[] {1, 2, 3}; // initial.原创 2020-09-08 00:31:16 · 193 阅读 · 0 评论 -
C++ 语法关键字 ‘&’ Reference
// 如果不添加‘&’,x和y的值不会变化// C++会给变量重新分配内存,方法结束变量销毁,和传入的xy没有任何关系void Swap(int &x, int &y){ int v = x; x = y; y = v;}// 操作内存,其实本质和操作‘&’一样,都是可以操作数据本身void SwapPointer(int *x, int *y){ int v = *x; *x = *y; *y = v;}int Add(int x, int原创 2020-09-07 20:14:16 · 420 阅读 · 0 评论 -
C++ 11(2.0)新特性 02(可变参数模板Variadic Templates)
可变参数模板说明在使用C++标准库的时候,里面大量使用了模板函数;比如printf(…),Tuple(…);在2.0之前,函数不支持可变参数模板;可变参数模板的作用是方便递归可变数据;代码示例void print(){ //cout << "empty" << endl;}//... 是可变参数声明包//typename...是模板可变参数包//Types... 是函数类型可变参数包//args... 是函数参数包// &原创 2020-09-07 16:55:01 · 469 阅读 · 0 评论 -
C++ 11(2.0)新特性 01(简介和API常用网址)
C/C++ 11标准C/C++是全能王,可以写客户端、写服务器,写系统,写嵌入式;速度王,仅次于汇编,由于直接操作内存,所有语言之中速度之最,其他语言是基于C/C++来封装的语言解释器。查看当前环境使用的C++版本int main(int argc, char* argv[]){ // __cplusplus可以查看当前使用的C++版本 // 199711 98版 1.0 // 201103 11版 2.0 cout << __cplusplus <<.原创 2020-09-07 09:29:37 · 283 阅读 · 0 评论 -
Unity 2019+导出安卓项目
Unity 2019+ 安卓项目在Unity 2019+使用arm64 + IL2CPP导出的原生安卓项目会包括两个gradle项目launcherunityLibraryUnity官方声明这样是为了把Unity的项目完全剥离出来,方便之后二次处理Unity Forum Unity Android Combine整合步骤基于网络上的多方的整合信息和个人的处理,优化了一套最快捷方便的处理方式导出Unity项目创建AS项目在项目级别的settings.gradle中添加引入项目声明原创 2020-08-15 02:18:51 · 5169 阅读 · 4 评论 -
Unity Cloud Content Delivery(Unity云端资源分发#02)
云端设置开通服务,绑定腾讯的账号,微信或者QQ都可以复制Cos密钥到项目的ProjectSettings如果云端没有你的项目,需要到Unity的Service把项目添加到Unity控制面板安装顺序设置云端编译资源上传到云端打开资源包更新Build Remote Catalog,确保路径位置编译远程资源,选择第三个打包选项上传资源然后就可以打apk去真机运行修改资源手机端自动更新修改资源,重新打包上传选择对应的bin文件资源上传然后手机端就会自动更新到新打包原创 2020-08-10 21:48:24 · 797 阅读 · 0 评论 -
Unity2018、2019和安卓通信,基于AAR包优化
说明和优点Unity高版本以后,把UnityPlayActivity.java从jar包分离了出来;Unity集成了安卓打包的全部环境,包括SDK、OpenJava,默认会下载一个最新的Platform编译平台classes.jar包和UnityPlayActivity.java文件位置\Unity\Hub\Editor\2019.4.6f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\Uni原创 2020-08-11 14:29:04 · 1540 阅读 · 3 评论 -
Unity Cloud Content Delivery(Unity云端资源分发#01)
什么是UCCD(Unity Cloud Content Delivery)UCCD是由腾讯和Unity合作开发的一套基于云端的资源分发系统,特点:1、游戏运行由云端来进行资源加载,先玩后加载2、大幅减少基础包的容量而不需要分包3、更新资源以后不需要重新打包4、无国界,全球化的云端资源,好像是CN2专线准备工作1、Addressable 可寻址资源加载,Unity的AssetBundle预备替代方案2、Cloud Content Delivery云端资源包3、Unity2019+ LTS的版原创 2020-08-10 21:21:52 · 1486 阅读 · 1 评论 -
cocos2d-x v3.0新特性及使用
cocos2d-x v3.0新特性及使用原创 2013-08-09 11:03:40 · 15195 阅读 · 2 评论 -
cocosbuilder Version 3 alpha5的使用
cocosbuilder Version 3 alpha5的使用原创 2013-08-11 12:51:24 · 2655 阅读 · 0 评论 -
2dx JniHelper的使用
(ps : 好久都没有关注博客了,现在从事2dx游戏开发,以后专心搞C++与2dx)我们都知道java与C可以相互调用,Java调用C写的代码一般是定义native方法,然后去编译生成.h头文件再由c来实现,然后编译运行。2dx里面为我们提供了一个JniHelper类,来满足与Java层的数据交互,JniHelper可以调用java层的动静态方法,当然还有native方法,先来看看原创 2013-11-01 11:05:58 · 5564 阅读 · 0 评论 -
cocos2d-x中CCComController的使用方法
cocos2dx-x中CCComController的个人理解,对于面向对象编程有很大的好处原创 2013-11-03 11:29:25 · 2126 阅读 · 0 评论 -
cocos2dx中使用多线程
推荐使用pthreadcc,已经封装好了方法,很方便使用,并且不用担心线程的并发与死锁问题,之前开发android的时候熟悉了一个类叫AsyncTask,今天自己也封装一个类似的类用来用项目开发的人调用。思路是:传进去一个url或者pMsg,开启一个线程来执行网络请求,当获取到结果以后,通知主线程更新、线程的使用很顺利,但是在线程与2dx相结合的时候,发现OpenGL渲染线程只允...原创 2013-12-22 19:39:28 · 3115 阅读 · 0 评论 -
RakNet官方文档学习笔记
RakNet官方文档学习笔记原创 2013-12-25 16:31:43 · 1965 阅读 · 0 评论 -
MySql学习笔记
MySql学习笔记原创 2013-12-27 18:31:19 · 1279 阅读 · 0 评论 -
Unity3d NGUI的使用(十四)(NGUI制作Tab形式UI)
使用NGUI制作Tab表格,使用到的NGUI组件有,UIToggle,UIToggled ObjectsUIToggle,负责按键的分组UIToggled Objects:负责当前按键激活哪个显示的内容原创 2014-04-07 20:57:17 · 4818 阅读 · 0 评论 -
Unity3d中对应各平台Path
Unity3d中对应各平台Path原创 2014-10-13 17:14:33 · 1995 阅读 · 0 评论 -
Unity3d依赖于平台的编译
Unity3d依赖于平台的编译原创 2014-10-14 18:02:45 · 1728 阅读 · 0 评论 -
Unity3d在各个平台读取Sqlite3数据库
写这篇文章最大的感慨是,无论是什么技术点,自己认证之后才是真的,不要轻易相信别人说的什么什么。其实不是那样的,得相信自己,如果是Unity3d开发的,可以多去官方的论坛查找问题。这也是我第一次在Unity3d中使用Sqlite来作为配置表文件,当然了,SQLite有优秀的读写性能。如果这个项目用着稳定的话,我会一直使用下去。原创 2015-03-12 20:04:19 · 4167 阅读 · 0 评论 -
QQ飞车玩家各技术阶段
qq飞车个人技术文档说明原创 2016-05-17 17:45:01 · 2481 阅读 · 0 评论 -
cocos2d-x 使用libjson解析json
cocos2d-x自带了json解析方法,也可以很方便进行json操作,使用方法1,引入json.h头文件2,代码示例://"svrId":6,//"name":"Andromeda&Pandora",//"ip":"69.162.106.170",//"port":8892,//"capacity":20,//"status原创 2013-07-08 15:20:15 · 3665 阅读 · 1 评论