自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦幻DUO的游戏开发之路

“学者们都是很单纯的,如果他们不单纯的话,戏剧般的灵感就不会造访他们了。” ——东野圭吾

  • 博客(51)
  • 资源 (6)
  • 收藏
  • 关注

原创 记一次有趣的DirectX11程序闪屏的Debug过程

之前我做的DirectX11引擎发现有一个奇怪的问题:集显不会产生任何问题,而独显却发生了画面一闪一闪。这个问题以前没有出现,是在实现了脏矩形算法之后才出现的。而且闪屏的现象也是很奇怪,经过仔细发现后,应该是每次draw之前并没有保留下之前的画面,导致一个缓冲区有大量的黑色区域。但是我在代码中并没有清除RenderTargetView呀,而且为什么偏偏发生在独显,集显反而没事了呢? 于是我接下来,

2016-07-29 20:05:49 2197

原创 VS 不生成pdb和bsc文件

在项目属性的All Options中找到Debug Information Format改成None就不会生成pdb,找到Enable Browse Information改成否就不会生成bsc文件。

2016-07-29 10:12:12 3541

原创 无知也能是财富

我在入学初的时候,我的最高梦想是独立开发一个游戏引擎,这个远大的梦想吓到了很多有经验的长辈,他们纷纷说这是不切实际的。然而年少无知,心高气傲的我并没有被他们吓到,毅然走了这条路。今年的寒假,我在制作一款DirectX11的游戏Demo的时候,将通用部分抽离出来,无意中做出来了自己的2D引擎,虽然它的功能不比Cocos之类的大游戏引擎完善,但是的确是完成了我自己一件未了的心愿。它是一件完全基于Dire

2016-07-29 08:42:32 619 1

原创 VS 修改输出路径和文件名

修改General选项卡的Output Directory,还有TargetName。修改Linker选项卡的Output File。

2016-07-28 10:56:11 2588

原创 Cocos2dx C++与Lua合并开发的VS配置环境搭建

去官方网站下载一个最新版的Cocos2d-x,运行setup.py来设置好环境变量后(前提你电脑要装好python来运行),然后看文件夹下面的Readme.md,里面会教你如何新建项目,如:cocos new MyGame -l lua这样就创建了一个Lua项目。编译完成后,可以进入打开新建项目里面的.sln后缀的文件,用VS2013来打开,编译成功可以运行。但是现在这个.sln只是C++工程,我们

2016-07-27 16:00:45 1786

原创 经常利用文档与搜索引擎其实未必是好事

这几天在搞Cocos-Lua的环境搭建,看了很久官方的文档,还有百度+谷歌了很长时间,但是找到的资料要么就不全,要么就是很旧,都找不到完美的解决方案。Cocos在文档建设上的确不给力,估计是开发人员都在搞技术却疏于文档整理。但是想了下自己也不能推卸责任,虽说文档和搜索引擎在某些时候能帮到程序员,我也总是教别人要善用文档和善用搜索引擎。但是很多时候,这种方法并不是万能的。要做一个合格的程序员,应该自己

2016-07-26 21:43:40 538

转载 MySQL 常用函数

一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x的最大整数值 GREATEST(x1,x2,…,xn)返回集合中最大的值 LEAST(x1,x2,…,xn) 返回集合中最

2016-07-24 17:30:54 324

转载 MySQL 运算符

我一贯秉承着一点:通过自己的双手真实的操作一遍之后的信息是最可靠的,所以在您参考这个小文儿的时候请不要只是“看”,单纯的瞧一瞧是得不到真知滴~~~ 座右铭:纸上得来终觉浅,绝知此事要躬行! 1.算数运算符 加 mysql> select 1+2; 减 mysql> select 2-1; 乘 mysql> select 2*3; 除 mysql> select 5

2016-07-24 17:28:15 396

转载 MySQL 数据类型

Mysql支持的数据类型(总结) 2015-05-13 21:51:35 标签:数值类型 日期时间类型 字符串类型 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://mrxiong.blog.51cto.com/287318/1651098 一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(IN

2016-07-24 10:12:53 340

原创 MySQL 语句分类

SQL语句分类DDL(Data Definition Langaeges)语句:数据定义语言。DML(Data Manipulation Language)语句:数据操纵语言。DCL(Data Control Language)语句:数据控制语言。 连接服务器: mysql -uroot -pDDL语句创建数据库删除数据库创建表删除表修改表 修改表类型增加表字段删除表字段

2016-07-24 10:11:00 620 2

原创 MySQL Windows快速安装与配置

首先去官方网站下载一个Installer,然后按传统的方案下一步安装即可。途中可能会要求输入root用户的密码。将mysql目录下的bin文件夹加入path环境变量,以便在cmd命令行执行mysql命令。

2016-07-24 09:38:15 356

原创 Java网络编程 服务器Socket

对于接受连接的服务器,Java提供了一个ServerSocket表示服务器Socket。每个服务器Socket监听服务器机器上的一个特定端口,一旦ServerSocket建立了连接,服务器会使用一个常规的Socket对象向客户端发送数据。数据总是通过常规Socket传输。ServerSocket的基本方法构造函数ServerSocket() 创建非绑定服务器套接字。ServerSo

2016-07-23 09:21:25 800

原创 我所理解的Cocos2d-x 全新的绘制系统

新绘制系统的特点将逻辑绘制从主循环中分离。每个UI元素的类型更多的是根据它在应用程序中的特征而不是绘制方式的不同划分的,也就是说,多个不同类型的UI元素可能拥有相同绘制方式。采用应用程序级别的视口裁剪。采用自动批绘制技术。更简单地实现绘制的自定义。绘制系统概览绘制流程分为三个阶段:通过UI树的遍历生成绘制命令。对绘制命令进行排序。执行绘制命令。RenderCommandCocos2

2016-07-23 08:33:11 1238

原创 Java网络编程 客户端Socket

使用SocketSocket是两台主机之间的一个连接。它可以完成7个基本操作:连接远程机器发送数据接受数据关闭连接绑定端口监听入站数据在绑定端口上接受来自远程机器的连接Java的Socket类(客户端和服务端都可以使用)提供了前4个操作的方法。后面3个操作仅服务器需要,即等待客户端的连接,这些操作由ServerSocket类实现。Socket的基本方法基本构造函数Socket构造函数

2016-07-22 18:29:35 1050

原创 我所理解的Cocos2d-x OpenGL ES 2.0 概览

学习OpenGL ES是学习游戏引擎的基础。我们能清楚地知道每个UI元素是怎样被绘制的,知道怎样使用它们才能达到最高的性能,同时也能更灵活地使用着色器来增强游戏画面的表现力。GPU图形处理器简介CPU由专门为顺序串行处理而优化的几个核心组成,而GPU则由数以千计的更小、更高效的核心组成,这些核心专门为同时处理多任务而设计。 衡量GPU的性能高低的一个重要术语是每秒像素填充率,它是指GPU每秒所渲染

2016-07-22 11:11:37 827

原创 Java网络编程 Internet地址

InetAddress类java.net.InetAddress类是Java对IP地址(包括Ipv4和Ipv6)的高层表示。一般地讲,它包括一个主机名和一个IP地址。工厂方法OmetAddress类没有公共构造函数,InetAddress有一些静态工厂方法,可以连接到DNS服务器来解析主机。getByName() 你可以传入一个主机名得到一个InetAddress对象。 还可以反向查找,例如,

2016-07-22 09:58:23 903

原创 我所理解的Cocos2d-x 主线程

Cocos2d-x目前仍然是一个单线程的游戏引擎,使我们几乎不需要考虑游戏对象更新的线程安全性。然而,我们仍然需要关注一些情形,如网络请求、异步加载文件或者异步处理一些逻辑算法等。在主线程中执行异步处理其他线程有一些方法必须在主线程中执行,如GL相关的方法。另一些时候,为了保证Ref对象引用计数的线程安全,我们也应该在主线程中执行这些操作。 Cocos提供了该方法就是performFunction

2016-07-21 18:50:27 2073

原创 我所理解的Cocos2d-x 实时更新游戏对象

帧率我们可以通过Director::setAnimationInterval()方法来设置帧频,只不过它的参数是帧率的倒数,即每两帧之间的间隔。 Application的实现很简单:在执行一次循环后,如果距离下一次更新还有空闲时间,则休眠,直至下一次循环更新的时间。Scheduler除了游戏自身的各个子系统,游戏引擎还必须提供某种机制更新程序员自定义的各种游戏对象。 Cocos2d-x使用一种更

2016-07-21 18:40:42 1093

原创 我所理解的Cocos2d-x 应用程序架构

游戏声明周期一个游戏对应一个Application对象。Application的职责是管理游戏生命周期并设置默认游戏窗口,获取平台及本地化信息等。在Cocos2d-x中,通常不直接创建Application对象。Cocos2d-x脚本在帮助我们创建应用程序项目时,通常会实现一个Application的子类供程序员自定义生命周期的各个阶段的处理,这个子类教AppDelegate。 在applicat

2016-07-21 16:55:16 1177

原创 我所理解的Cocos2d-x UI树

UI树的遍历UI树的遍历有两个重要的目的:遍历的顺序决定了元素被绘制的顺序。在遍历过程中实现元素的模型视图变换矩阵的计算,其计算结果供OpenGL ES渲染管线计算顶点位置。逻辑深度在遍历之前,先要对所有子元素按逻辑深度从小到大的顺序进行排序。 使用globalZOrder也有一个限制,那就是不能对SpriteBatchNode的子元素单独设置globalZOrder。因为Sprit

2016-07-21 16:13:03 1168

原创 我所理解的Cocos2d-x Cocos2d-x 内存管理机制

C++内存管理C++显式堆内存管理性能上有一定优势,但有如下缺点:野指针:指针指向的内容已经被释放,但是其他指针还可能指向它。重复释放:重复释放一个已经释放的内存单元,或者释放一个野指针,都会导致C++运行时错误。内存泄露:不再被使用的内存单元如果不被释放,就会一直占用内存单元。C++11智能指针主要有如下三种:unique_ptr:不能与其他智能指针共享所指对象的内存。一旦转移成功,就不

2016-07-21 15:15:03 1345

原创 Java网络编程 线程

线程作用当服务器需要大量并发连接的时候,一般使用轻量级的线程来处理大量的连接,而不是重量级的进程。线程在资源使用上更宽松,因为它们会共享内存。使用线程来代替进程,可以再让你的服务器性能提升三倍。再结合使用可重用的线程池,在同样的硬件和网络连接下,服务器的运行可以快9倍多!采用多线程设计设计会更容易,可以将程序分解为多个线程,分别执行独立的操作。 由于现代虚拟机和操作系统中线程可以提供很高的性能,

2016-07-21 10:23:12 1022

原创 我所理解的Cocos2d-x 全新的Cocos2d-x3.0

新特性回归C++风格对于一个纯C++语言的引擎来说,那种原汁原味的C++风格才是开发者最为习惯的。使用命名空间代替“CC”前缀。使用clone()代替copyt()方法。与以前的copy方法不同是,clone()方法直接返回一个加入自动回收池的对象。用getInstance()和destroyInstance()方法代替shared()和endXXX()来使用单例。使用更明确的get前缀来表

2016-07-20 12:23:42 1464

原创 Java网络编程 流

流的概述网络程序的很大一部分工作都是简单的输入和输出(I/O),而Java的I/O建立于流(stream)。输入流读取数据,输出流写入数据。过滤器(filter)流可以串链到输入流或输出流上。读/写数据时,过滤器流可以修改数据(例如,通过加密或压缩),或只是提供额外的方法,将读/写的数据转换为其他格式。阅读器(reader)和书写器(writer)可以串链到输入流和输出流上,允许程序读/写文本

2016-07-20 00:00:19 1650

原创 如何阅读一本书 全书笔记

如何做一个自我要求的读者主动阅读的核心就是:在阅读时要提出问题来,并在阅读的过程中,你自己必须去尝试去回答。 关于一本书,你一定要提出的四个主要的问题:整体来说,这本书到底在谈什么?作者细部说了什么,怎么说的?这本书说得有道理吗?这本书跟你有什么关系?而通过阅读的层次(主要是分析层次)就在回答这个问题。如何做笔记所谓阅读的规则,就是用一种比较正式的说法来说明这件事而已。此外,我们鼓励你“

2016-07-18 18:31:10 701

原创 Java网络编程 基本网络概念

网络网络是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络的分层TCP/IP模型:应用层传输层(TCP,UDP)网际层(IP)主机网络层(物理路径)主机网络层作为Java程序员,不需要担心这一层。网际层实际上,这是两个协议:IPv4和IPv6,数据按包在网际层进行传输,这些包称为数据报(datagram)。传输层传输层(transport layer)负责确认各包以发送的顺序接

2016-07-14 22:43:54 503

原创 Cocos2d-x 事件分发机制

新事件分发机制新事件分发机制:在新的事件分发机制中,只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分发器_eventDispatcher,所有事件监听器有这个分发器统一管理,即可完成事件响应。事件监听器有以下几种:触摸事件 (EventListenerTouch)键盘响应事件 (EventListenerKeyboard)鼠标响应事件 (EventListenerMous

2016-07-14 15:46:57 486

原创 Cocos2d-x 如何优化内存使用

认识瓶颈寻找方案可用一些代码获取游戏内存使用的其他信息,如下所示: CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo();调用这个代码后,游戏便会在DEBUG模式运行,这时你会在Xcode控制台窗口看到一些格式工整的日志信息。 Cocos2d: cocos2d: “cc_fps_images” rc=5 id=3 256

2016-07-14 15:13:52 634

原创 Cocos2d-x 纹理缓存(Texture Cache)

简介纹理缓存是将纹理缓存起来方便之后的绘制工作。每一个缓存的图像的大小,颜色和区域范围都是可以被修改的。这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU。CCTextureCache当你创建一个精灵,你一般会使用CCSprite::create(pszFileName)。假如你去看CCSprite::create(pszFileName)的实现方式,你将看到它将这个图片增加到纹理缓存

2016-07-14 15:08:39 679

原创 Cocos2d-x 内存管理——引用计数

引用计数引用计数是c/c++项目中一种古老的内存管理方式。当我8年前在研究一款名叫TCPMP的开源项目的时候,引用计数就已经有了。在Cocos2d-x中克隆了一套CCAutoreleasePool。CCAutoreleasePool有两点需要注意:CCAutoreleasePool不能被开发者自己创建。Cocos2d-x会为我们每一个游戏创建一个自动释放池实例对象,游戏开发者不能新建自动释放池,仅

2016-07-14 13:41:11 783

原创 Cocos2d-x 声音和音效

使用音效引擎我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎。CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文件即可:#include "SimpleAudioEngine.h"由于SimpleAudioEngine是单例类,因此要这样取得该类对象:SimpleAudioEngine::getInstance()

2016-07-14 13:31:05 656

原创 自控力 全书笔记

意志力入门选择意志力挑战:“我要做”意志力挑战:你逃避的事情或者你想要改掉的习惯“我不要”意志力挑战:你想改掉的习惯“我想要”意志力挑战:你愿意花更多的精力去关注的重要目标什么是意志力意志力实验:记录一下你的决定。请至少选择一天,把你作的决定都记下来,回想你的作的决定,分析哪些有助于你实现目标,哪些会消磨你的意志。坚持记录你的决定,有助于减少在注意力分散时作决定,同时增强你的意志力。意志

2016-07-14 12:04:03 853

原创 Cocos2d-x 3.0数据结构——cocos2d::Value

cocos2d::Value是许多基本类型(int,float,double,bool,unsigned char,char*和std::string)还有std::vector<Value>, std::unordered_map<std::string,Value>和std::unordered_map<int,Value>这些类的包装类型。你可以将上面提及的基本类放进cocos2d::Valu

2016-07-14 08:15:07 497

原创 Cocos2d-x 3.0数据结构——cocos2d::Map

cocos2d::Map<K,V>是使用std::unordered_map作为底层结构的关联式容器。 而std::unordered_map是一个存储键值对的关联式容器,它可以通过它们的键快速检索对应的值。 使用unordered_map,键通常是唯一的,而值则与这个键对应。模版参数注意:使用现代的c++,本地存储对象比堆存储对象好。所以请不要用new操作来分配cocos2d::Map<K,V>的

2016-07-14 08:01:06 601

原创 Cocos2d-x 3.0数据结构——cocos2d::Vector

cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器。 cocos2d::Vector<T>中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector。 在Cocos2d-x v3.0 beta之前,使用的是另外一个顺序访问容器cocos2d::CCArray,不过它将会被废弃。模版参数T - 元素类型 T的类型必须是继承自cocos2d:

2016-07-14 07:50:14 676

原创 Cocos2d-x 图像渲染和动画——裁剪(ClippingNode)

概述ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。ClippingNode 常用方法create可以使用static ClippingNode* create();方法创建一个ClippingNode对象。如下:auto clip

2016-07-14 07:27:47 808

原创 Cocos2d-x 图像渲染和动画——粒子系统

简介粒子系统是指计算机图形学中模拟特定现象的技术,它在模仿自然现象、物理现象及空间扭曲上具备得天独厚的优势,为我们实现一些真实自然而又带有随机性的特效(如爆炸、烟花、水流)提供了方便。Cocos2d-x引擎中就为我们提供了强大的粒子系统,以下是粒子系统的继承关系图: 粒子属性主要属性:_duration 发射器生存时间,即它可以发射粒子的时间,注意这个时间和粒子生存时间不同。单位秒,-1表示永远

2016-07-14 07:09:22 1719

原创 Cocos2d-x 图像渲染和动画——场景转换(Transitions)

Cocos2d-x最爽的一个特性之一就是提供了在两个不同场景之间直接转换的能力。例如:淡入淡出,放大缩小,旋转,跳动等。从技术上来说,一个场景转换就是在展示并控制一个新场景之前执行一个转换效果。场景之间通过TransitionScene系列类来实现过渡跳转的效果。TransitionScene继承于Scene,该系列类主要是与场景切换特效相关的一些使用类。如TransitionFadeDown、Tr

2016-07-13 22:21:15 633

原创 Cocos2d-x 图像渲染和动画——序列帧动画

创建方法手动添加序列帧到Animation类在创建Animation实例时会用到以下几个接口:addSpriteFrame,添加精灵帧到Animation实例setDelayUnits,设置每一帧持续时间,以秒为单位setRestoreOriginalFrame,设置是否在动画播放结束后恢复到第一帧clone,克隆一个该Animation实例 auto animation = Ani

2016-07-13 22:04:42 1896

原创 Cocos2d-x 图像渲染和动画——动作

原理介绍动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作。动作作用于Node,因此每个动作都需要由Node对象执行。动作类(Action)作为基类,实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类(FiniteTimeAction)。在实际开发中我们通常用到两类动作-即时动作和持续动作,它们均继承于有限时间动作类。 即时动作即时动作只能够立刻完成的动作,这类动作是在

2016-07-13 21:50:26 745

win7 64位汇编开发环境合集

集成了所有win7 64位下的汇编开发环境的程序,包括了DOSBOX、edit、masm、link、debug。使用说明可以见本人博文:《win7 64 汇编开发环境搭建》: http://blog.csdn.net/sinat_24229853/article/details/50133741

2015-12-01

DirectX11程序初始化

DirectX11程序初始化,出自龙书,本人博客有DirectX11学习笔记:http://blog.csdn.net/sinat_24229853

2015-09-28

泡泡堂 DirectX11 Demo

本程序是模仿泡泡堂游戏功能的Demo,使用DirectX11图形库和C++语言,在VS2010环境下编译。4500行左右。更多内容见本人博客:http://blog.csdn.net/sinat_24229853

2015-09-06

C++实现状态驱动智能体设计——消息功能

设计精度的游戏趋向于事件驱动。即当一个事件发生了(武器发射了子弹等),事件被广播给游戏中的相关的对象。这样它们可以恰当地做出反应。而这个消息可以是立即执行,也可以设定多久后才执行。更多详情参见本人博客:http://blog.csdn.net/sinat_24229853

2015-08-17

有限状态机(FSM)

游戏人工智能,状态驱动智能体设计——有限状态机(FSM),编译环境:VS2010。本人博客:http://blog.csdn.net/sinat_24229853

2015-08-17

C++控制台网络聊天室源代码

用C++和socket编程、多线程技术组成的控制台网络聊天室,1000行之内。之所以在控制台运行而不是用MFC等图形库是为了方便从底层理解socket编程和多线程,只有从深入理解技术原理后才能在实际应用如鱼得水。本人大一学生,我的CSDN博客是http://blog.csdn.net/sinat_24229853

2015-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除