- 博客(108)
- 资源 (1)
- 收藏
- 关注

原创 基于Cocos2d-x的迷宫探索演示程序
本文展示了使用cocos2d-x来实现的一个迷宫探索演示程序,一种简单粗暴的寻路算法,算法来自经典的严蔚敏c语言数据结构里的迷宫探索算法,使用栈来实现。
2016-09-30 08:35:50
1528

原创 【Programming In Lua (2E) 笔记】5:使用C++为Lua编写扩展库(macOS上两种动态库格式的坑)
本文记录了在macOS上使用c++为lua编写动态库的过程,分享一个容易翻车的坑
2016-08-31 20:39:29
2960
1

原创 【使用CMake组织C++工程】3:CMake 函数和宏
这篇文章分享一下CMake中函数:function, 和宏:macro的使用。本文先从二者区别说起,由于二者区别很小,所以后文就仅对函数的用法进行讨论,因为函数有作用域的概念,适用范围更广。后文分享一个很实用的递归函数用于包含指定目录的所有子目录。
2016-04-12 09:26:11
10305
4

原创 【使用CMake组织C++工程】2:CMake 常用命令和变量
前面的文章介绍了一个最简单的CMake工程,这篇文章将介绍一个稍微复杂一些的CMake工程,结合这个工程总结一下在组织一个C/C++工程时最为常用的一些CMake命令和变量。对于涉及到的命令和变量,介绍的原则是点到即止,先仅需掌握基本用法即可,让工程跑起来。
2016-04-12 00:22:53
5179
8

原创 Visual Studio环境变量使用实例:使用环境变量来组织工程
前言在前一篇文章Visual Studio中的环境变量(以Visual Studio 2013为例)中介绍了VS中的环境变量,本文将以实际例子说明如何合理使用这些环境变量来组织VC++工程。使用vs环境变量来组织工程通常一个解决方案包含多个项目,这些项目相互之间可能存在依赖关系,以下面这个解决方案为例
2016-03-30 20:42:43
3409
1

原创 Visual Studio中的环境变量(以Visual Studio 2013为例)
本文总结了Visual Studio中常见的环境变量及其在组织解决方案、工程中的作用。注:本文使用的是Visual Studio 2013,由于作者主要从事C/C++开发,所以是以Visual C++的工作环境配置来描述
2016-03-29 22:55:22
42898
2

原创 使用宏来作为C++单元测试开关
本文介绍了如何使用宏来控制C++单元测试的开启和关闭,本文的单元测试工具指的是google的C++单元测试工具gtest。
2016-01-27 08:03:40
2428

原创 【cocos2d-x 2.x 学习与应用总结】13: 借助CCGLProgram实现自定义绘制
本文总结了如何借助CCGLProgram来实现自定义绘制的节点类,使用自定义的顶点着色器和片段着色器,实现一个绘制彩色矩形的节点类。绘制的效果图如下所示:
2016-01-21 01:42:26
2716

原创 【cocos2d-x 2.x 学习与应用总结】11: 理解CCGLProgram
本文介绍了cocos2d-x中CCGLProgram这个类, 这篇文章假设读者已经了解OpenGL ES程序的基本渲染流程:顶点和片段着色器的源代码的编写、着色器的创建、program的创建、源代码绑定、编译、链接、OpenGL客户端-服务端传值等。CCGLProgram这个类正是对OpenGL ES渲染流程中涉及到着色器的编译、链接、传值等部分的抽象。本文先总起介绍CCGLProgram所做的工作,然后分析其源
2016-01-20 01:09:44
3653

原创 【C++ STL应用与实现】19: 迭代器特性-iterator traits
本文介绍了STL中的迭代器相关的类型和特性,它们用来定义和区分不同的迭代器类型。如iterator tag作为迭代器的“标签”用来区分迭代器的类型;iterator traits定义了所有类型的迭代器都应该有的公共信息。那标准库为什么提供这些东西呢?答案是我们可以根据这些信息来编写泛型代码,在泛型代码里根据iterator traits来判定迭代器的类型以做相应处理、可以自己定义迭代器实现自定义的迭代器操作。
2015-12-30 00:42:31
2180
1

原创 【C++ STL应用与实现】18: 如何使用迭代器适配器
本文介绍了STL中的迭代器适配器(iterator adapter)的概念及其使用方法示例。迭代器适配器可以和标准库中的算法配合使用,达到一些特殊的效果。迭代器适配器分为以下几类:- reverse iterator : 反向迭代器- insert iterator : 插入型迭代器- stream iterator : 流迭代器- move iterator : 移动型迭代器
2015-12-29 01:15:05
1492

原创 【C++ STL应用与实现】17: 如何使用迭代器辅助函数
本文介绍了STL中的迭代器辅助函数的用法及注意事项,这些迭代器辅助函数包括:advance, next (since C++11), prev (since C++11), distance, iter_swap.使用这些辅助函数需要包含头文件:#include <iterator>advance, next, prev, distance这四个辅助函数使得所有迭代器都拥有类似随机访问迭代器的特性,比如adv
2015-12-26 23:33:23
2093

原创 【C++ STL应用与实现】7: 如何使用std::forward_list 单链表 (since C++11)
本文介绍了STL中的序列式容器`std::forward_list`, 从它的名字就能推测出来,它是单向的,只能前进(forward). 确实如此,它其实就是对C语言风格的单链表的封装,仅提供有限的接口,相对于std::list(双向链表,并且定义很多接口)来说它节省了内存,同时又有比list更好的运行时性能;
2015-12-25 23:46:01
5797

原创 【C++ STL应用与实现】5: 如何使用std::array (since C++11)
本文总结了STL中的序列式容器array的用法及注意事项。array的出现代表着C++的代码更进一步“现代化”,就像std::string的出现代替了c风格字符串并且能和STL配合工作一样,array的出现则将取代语言内置的数组以及c风格的数组字符串,它提供了data()接口,使得能够获得内部数组的首地址,它提供了size(), 能够得其固定的长度,使得C++的数组也可以像Java等语言那样知道自己的length;它
2015-12-24 00:52:44
12132
2

原创 【C++ STL应用与实现】26: 如何使用std::for_each以及基于范围的for循环 (since C++11)
本文总结了STL算法中for_each, for_each算法很常用,以致于C++11定义了一个新的语法: `range based for loop`, 也就是基于范围的for循环,直接在语法层面把for_each的功能给实现了。本文给出一些使用`for_each`和rang-based for loops的用法,并说明for loops的实现原理和使用注意事项。
2015-12-23 00:25:23
14268

原创 【C++ STL应用与实现】目录
这篇文章是《STL应用与实现》系列的目录, 也是这系列文章的写作计划。STL的总结主要分成四大块:容器、迭代器、函数对象和算法。每个大块细分成的每个叶子节点就对应着一篇文章,文章标题在目录里以超链接的形式展现,作为一个索引。已经完成的文章,我会在后面加上【完成】标识。跳转不过去的就是未完成的文章,作为写作计划。
2015-12-19 08:07:18
15780
3

原创 【C++ STL应用与实现】0: 感恩STL——STL, ACM和年轻的我们
本文是一篇洗脑文,鼓吹STL的好处, 回忆作者第一次认识STL,并给出STL的学习路线。
2015-12-17 13:50:39
10464

原创 【C++ STL应用与实现】22: 函数组合之1:如何使用std::bind (since C++11)
本文总结了std::bind这个模板函数的用法,给出了std::bind绑定普通函数(函数指针)、lambda表达式、成员函数、成员变量、模板函数、嵌套std::bind等的语法细节及注意的问题。
2015-12-16 07:31:05
15929
3

原创 【C++ STL应用与实现】1: STL概览和分类
本文从整体上对STL的内容和功能做了一个概览,并根据其组成部分功能的不同对STL的组件进行分类。在后续的文章中会对每个分类中的组件进行展开说明。
2015-12-15 22:32:14
8376
原创 【cygwin的包管理器】通过命令行为cygwin添加新package
这两年主力开发环境从mac切回到windows了,最近买了高配PC,在搭建开发环境。本文记录了如何在安装完成的cygwin环境里,通过敲命令添加新的package,而不是重新用setup.exe来重新勾选安装package。本文以在cygwin命令行里安装lua为例。瞬间看完lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-c...
2020-02-15 20:50:14
2773
原创 Mac版Rider加载、编译.Net失败,Unity插件安装失败问题
前言本文记录了mac上解决Rider加载、编译.Net项目失败的问题, 以及Rider的Unity插件安装失败,导致Rider中无法正确加载Unity solution,无代码提示问题。总结出现的问题及原因1). 提示MSBuild无法正确加载 Console Application安装了dotnet sdk,重启Rider , 设置(Build, Executio...
2018-06-16 05:53:16
3264
1
原创 【C++ STL应用与实现】6: 如何使用std::list
list是stl对链表数据结构的一种支持,其通常被实现为双向链表。本文介绍了list的基本用法以及在使用list时需要注意的一些问题。
2017-01-31 19:11:14
929
原创 【C++ STL应用与实现】2: 如何使用std::vector
本文介绍vector容器。vector是STL容器中最为常用的一个,它是序列式容器的代表,是对动态数组的抽象封装。
2017-01-29 23:35:04
1512
原创 【cocos2d-x 学习与应用总结】最近一段时间使用cocos2d-x lua的总结
本文总结了近期使用cocos2d-x lua过程中的一些思考和收获。
2016-12-31 23:04:52
1022
原创 如何使用vsprintf, vsnprintf等函数
在一些c++的框架中,有很多小的util函数,通常每个框架里都会有一个log函数,用法类似于printf(fmt, ...), 比如cocos2d-x的log函数用法大概像下面这样:log("size is %d, %d", w, h);它们的实现就是借助于vsnprintf族函数。本质在于格式化一个字符串。下面通过一个例子来说明如何使用vsnprintf族函数来实现一个字符串格式化函数
2016-12-31 23:01:20
4908
原创 【C++ STL应用与实现】72: 标准库里的堆--如何使用标准库的heap算法
本文介绍如何使用STL里的heap(堆)算法。第一次接触heap这种数据结构是在大学的数据结构教材上,它是一棵完全二叉树。在STL中,heap是算法的形式提供给我们使用的。包括下面几个函数:make_heap: 根据指定的迭代器区间以及一个可选的比较函数,来创建一个heappush_heap: 把指定区间的最后一个元素插入到heap中pop_heap: 弹出heap顶元素, 将其放置于区间末尾
2016-11-29 23:41:09
4630
2
原创 【OpenGL Programming On macOS using glfw 】0: Build a Simple OpenGL Program
OpenGL红宝书第九版已经开始使用glfw作为窗口管理和Context创建工具, 取代了第八版里的freeglut和glew。本文讲解如何使用glfw在macOS上来构建一个OpenGL程序(OpenGL 3.0+)包括以下步骤:从github下载glfw源码使用CMake构建glfw,并运行示例,以确保glfw确实可用编写自己的OpenGL代码,并链接glfw来展示结果
2016-11-18 09:06:15
1644
4
原创 【cocos2d-x 3D实战】开发一款体素游戏--1. 准备工作
最近cocos官网推荐了一款使用cocos2d-x开发的3D游戏,叫《Steps》(信步),是一个乌克兰小伙的作品,是一款休闲小游戏,正是类似MineCraft那种体素(voxel)风格的,看起来效果还不错,于是自己也打算尝试搞一个这样的游戏玩玩。本文是使用c3d开发一款体素风游戏系列的第一篇,记录了开发环境的配置和界面编辑器的选择和实验。引擎:cocos2d-x 3.10体素模型编辑器:Ma
2016-10-31 22:14:41
2765
2
原创 【C++ STL应用与实现】95: 如何使用Allocator
本文展示了如何使用Allocator,例子取自《STL源码剖析》里实现的一个简单的Allocator,从中可以看到Allocator最基本的用法。
2016-09-30 20:52:25
1409
Cool Reader 3-1-0 - lib(so)文件压缩包
2013-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人