- 博客(32)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 VS 调试中文显示乱码问题
解决方法:找到VS安装目录下D:\worksoft\VS2015\Common7\Packages\Debugger\Visualizers的st l.natvis文件查找Name=”std::basic_string<char,*>将DisplayString 和StringView 的值{_Mypair._Myval2._Bx._Buf,na} 后面...
2016-11-22 18:50:34
5502
原创 cocostudio显示位置结果和程序加载出来的不一样
问题:用了个panel,但是把锚点设置成了(0.5,0.5)结果程序加载出来后,panel里的东西相对panel的位置跟cocostudio1.6里显示的不一样。原因:panel是layer,锚点在程序里是忽略不计的,都是左下角。但是cocostudio1.6存在bug,他是算上锚点的。于是就存在偏差
2015-05-08 14:22:51
715
转载 【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。如下图所示:GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5
2015-01-22 16:20:59
689
原创 COCOS2DX引擎深入四————图片的异步加载
游戏刚启动时,最常见的画面就是进度条了。而进度条展示的都是资源的加载进度。包括图片资源的。cocos2dx引擎的整体流程都是基于单线程的,但是加载图片资源是个很耗时的操作,如果放在主线程中执行,很容易让画面卡顿。所以cocos2dx提供了异步加载图片资源的方法。先看看test里怎么用的,再看看具体如何实现。首先就是加载你的资源TextureCacheTest::
2015-01-09 18:42:57
2076
转载 C++11学习之匿名函数lambda表达式
声明:本文参考了Alex Allain的文章http://www.cprogramming.com/c++11/c++11-lambda-closures.html加入了自己的理解,不是简单的翻译C++11终于知道要在语言中加入匿名函数了。匿名函数在很多时候可以为编码提供便利,还能保证不被外部反问。这在下文会提到。很多语言中的匿名函数,如C++,都是用Lambda表达式
2015-01-07 16:38:24
754
原创 IMEDelegate
这个类定义了键盘处理接口。如果想对键盘输入做处理,可以继承这个委托类。看看他在哪被用到。 从这幅图看出他的使用过程。先是CCTextFieldTTF继承了CCIMEDelegate,创建时,就会被加入到键盘输入分发器的分发对象中。@brief A simple text input field with TTF font.*/class CC_DLL TextFi
2014-12-09 09:27:44
1368
转载 键盘输入
键盘输入在Cocos2Dx分为两个部分。第一部分是一些功能键的处理:后退键和菜单键。第二部分是处理字符输入。功能键相关的代码位于cocos2dx\keypad_dispatcher。字符输入的代码位于\cocos2dx\text_input_node。我们先看功能键的处理部分。功能键的处理比较简单,只是支持后退键和菜单键。而且功能键的支持只是对WP和Android有效。功能键部分的类关系如下图
2014-12-09 09:14:27
925
原创 opengl版本支持和shader支持判断
#include #include #include void renderScene(){ // 清除颜色缓存 glClear(GL_COLOR_BUFFER_BIT); const GLfloat vertices[3][2]={ {0.0,0.0}, {50.0,0.0}, {25.0,50.0} }; // 设置顶点颜色 glC
2014-12-05 13:00:17
3433
转载 GLSL 使用demo
/* Simple Demo for GLSL 2.0 www.lighthouse3d.com*/#include #include #include #include #include "textfile.h"GLuint v,f,f2,p;float lpos[4] = {1,0.5,1,0};void changeSize(int w
2014-12-05 11:46:57
964
转载 深度测试(消隐)demo
#include #include #include bool mouseisdown=false;bool loopr=false;int mx,my;int ry=30;int rx=30;void timer(int p){ ry-=5; glutPostRedisplay(); if (loopr)
2014-12-05 11:39:02
1023
转载 opengl从固定渲染管线到可编程渲染管线
这是一些列来自lighthouse3d的GLSL教程,非常适合入门。我将边学习边翻译该教程的内容,同时记录在这里,方便以后查询。流水线概述下图描述了一个简化的图形处理流水线,虽然简略但仍然可以展示着色器编程(shader programming)的一些重要概念。一个固定流水线包括如下功能:顶点变换(Vertex Transformation)这里一个顶点是一
2014-12-05 10:28:05
4970
转载 固定管线和可编程管线的区别
固定渲染管线与可编程渲染管线 2012-07-29 18:31:51| 分类:dierct | 标签:|举报|字号大中小 订阅1.固定渲染管线与可编程渲染管线的区别: 1)、固定渲染管线 ——这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。
2014-12-05 08:58:08
2671
转载 Opengl渲染管线
学习着色器,并理解着色器的工作机制,就要对OpenGL的固定功能管线有深入的了解。首先要知道几个OpenGL的术语渲染(rendering):计算机根据模型(model)创建图像的过程。模型(model):根据几何图元创建的物体(object)。几何图元:包括点、直线和多边形等,它是通过顶点(vertex)指定的。最终完成了渲染的图像是由在屏幕上绘制的像素组成的。在内存
2014-12-05 08:35:58
587
原创 GroupCommand
这个类不包含具体的绘制命令,主要是cocos2dx提供用来完成分组绘制的功能。比如你有一批绘制命令他们可能类型不同,有的是BatchCommand,有的是QuadCommand类,但这些命令必须依次被执行,中间不能插入其他来源的命令。就比如RenderTexture动态创建纹理。举个例子 RenderTexture* tex = RenderTexture::create(s.width,
2014-12-02 17:01:36
940
原创 RenderTexture
以下一些内容摘自http://www.cnblogs.com/newlist/p/3552340.html CCRenderTexture,它允许你来动态创建纹理,并且可以在游戏中重用这些纹理。也可用它来读取你想要的纹理信息。 使用 CCRenderTexture非常简单 – 你只需要做以下5步就行了:创建一个新的CCRenderTexture. 这里,你可以指定将要创建的纹理的
2014-12-02 08:24:22
1124
原创 COCOS2DX引擎深入三———渲染结构(3.0)
3.0之前cocos2dx渲染机制上存在着一些弊端:不易扩展,不易针对绘制进行优化。 不易扩展:3.0之前每个元素的绘制逻辑全在元素元素内部的draw()方法里。绘制顺序紧密的依赖于UI树。导致无法在多层级之间调整绘制顺序。 不易针对绘制进行优化:各个绘制都分布在每个元素内部,不利于针对绘制进行优化。
2014-11-30 17:16:08
1366
转载 connect
使用格式#include sys/socket.h>int bind(int sockfd, const struct sockaddr *addr,socklen_t *addrlen);
2014-11-19 08:37:54
686
转载 accept
在一个套接口接受一个连接。#include SOCKET PASCAL FAR accept( SOCKET s, struct sockaddr FAR* addr,int FAR* addrlen);s:套接口描述字,该套接口在listen()后监听连接。addr:(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。Addr参数的实际格式由套接口创建时所产生的
2014-11-18 13:15:03
829
转载 recv
int recv( SOCKET s, char FAR *buf, int len, int flags);不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据; 第三个参数指明buf的长度; 第四个参数一般置0。这里只描述同步Socke
2014-11-18 11:59:25
698
转载 bind
在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于
2014-11-18 10:47:42
754
转载 listen
listen()函数 是换换内容得时候了。假如你不希望与远程的一个地址相连,或者说, 仅仅是将它踢开,那你就需要等待接入请求并且用各种方法处理它们。处 理过程分两步:首先,你听--listen(),然后,你接受--accept() (请看下面的 内容)。 除了要一点解释外,系统调用 listen 也相当简单。 int listen(int sockfd, int backlog);
2014-11-17 17:31:06
544
原创 COCOS2DX引擎深入一————调度原理
main.cppint APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmd
2014-11-13 17:31:06
1124
转载 关于string.c_str()的那点事
转载自 http://blog.youkuaiyun.com/xiaoniba10631/article/details/6705214
2014-10-28 16:04:23
1341
转载 ParticleBatchNode
ParticleBatchNode 和批处理节点一样,它将通过一次调用OpenGL来绘制它的子节点。 ParticleBatchNode 实例可以引用一个且只能引用一个 texture 的对象。 只有 ParticleSystem 包含 texture 的时候它才可以被添加到SpriteBatchNode中。 所有添加到SpriteBatchNode里面的ParticleSystem都会在同一Op
2014-09-10 11:12:09
726
转载 CCClippingNode
CCClipingNode API:注:getStencil:返回一个节点对象,这个对象就是之前提到的“裁减模板”。setStencil:设置“裁减模板”。getAlphaThreshold::这种裁减是可以改变裁减的透明度的,修改这个透明度就是通过设置这个阈值。setAlphaThreshold:获得这个透明度阈值。isInverted:之前说过的剪刀剪形状的例子
2014-08-24 09:49:42
682
转载 CCSpriteFrameCache
CCSpriteFrameCache它是管理CCSpriteFrame的内存池,跟CCTextureCache功能一样,不过跟CCTextureCache不同的是,如果内存池中不存在要查找的帧,它会提示找不到,而不会去本地加载图片。它的内部封装了一个字典:CCDictionary *m_pSpriteFrames,key为帧的名称。CCSpriteFrameCache一般用来处理plist文件
2014-08-17 08:26:40
653
转载 CCSpriteBatchNode
精灵是游戏中十分重要的组成部分,随处可见,如:游戏背景、NPC、人物、道具等。在cocos2d-x引擎中,只要是用图片展示的,基本上需要使用精灵类。1. 首先来了解一下跟精灵相关的几个类:(1) CCTexture2D可以把它看成一个纹理,它是cocos2d-x渲染图形的重要参数,用来贴图,因为cocos2d-x使用opengl es绘制2d图形的,它的尺寸是2的n次方。一般通过以下方
2014-08-17 08:21:44
1286
MarshalAs里的SizeConst可以动态修改吗?
2015-07-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人