自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 shader与cg简介

1.what? shader?      shader的定义,需要从显卡的渲染管线开始说起。     渲染管线是显卡内部处理图形信号相互独立的的并行处理单元。我们把顶点位置、法线、纹理坐标等数据参数提供出来,然后再定义光源,通过渲染管线,就可以得到一幅渲染出来的画面。早期的渲染管线只有固定渲染管线:即在提供给GPU待绘制的模型单元之后,程序的设计者是无法干预渲染过程的。后来,显卡商将可编程

2012-08-01 18:38:37 786

原创 游戏编程中的有限状态机

所谓定义:“有限状态机就是一个具有有限数量状态,并且能够根据相应的操作从一个状态变换到另一个状态,而在同一时刻只能处在一种状态下的智能体。”(来自google----《Android游戏开发大全》)游戏中的有限状态机是一个由多种状态组成的机制。他包括:1.状态:多种互斥的状态元素,某个实体同时只能处于一个状态之中2.刺激:  这个“刺激”可以影响状态的改变3.转换机制:

2011-12-29 01:32:21 2258 1

原创 ios audioplayer播放声音失败是由于最简单的错误

如题。。。网上下了某播放音频的demo工程,真机调试一切正常。自己照着写了一个,竟然播放不出任何声音,查询所有的代码,找不到不对的地方,一个很诡异的状况是:正常运行播放不了任何声音,单步调试到audio player播放的地方,声音竟然出来了。。。。。。难道是主线程中断了audio player的播放?AVAudioPlayer * avPlayer = [[AVAudioPlay

2011-12-23 01:29:50 2682

原创 cocos2d-x添加快速OBB碰撞检测

-by yuchenl原理:       根据 Stefan Gottschalk的理论(Collision Queries using Oriented Bounding Boxes, Ph

2011-08-03 15:16:41 1651

原创 二维数组与二维指针

1.二维数组的储存是线性的,可以通过一维指针的方式访问。如一下代码:int map[5][5] = {1,2,3,4,5,5,4,3,2,1,-1,-2,-3,-4,-5,-5,-4,-3,-2,-1,-2,-1,0,1,2};int *mapd = & map[0][0];则 map[i][j] == mapd[i*5+j];        而利用二维数组线性存储的特性,可以将二维数组当作一维指针方便的在函数之间传递如:将一个二维数组赋值给一个动态二维数组,参数设置为一维指针fun( int* map,

2011-03-25 16:14:00 890

原创 cocos2d调用虚拟键盘

cocos2d没有自己的键盘输入(当然也不需要有,一个ios的游戏引擎做键盘干嘛。。。。。。),在网上查找资料,发现大家都是代码建立一个UITextField控件,通过激活此控件,来达到显示键盘的目的。总结如下:1.建立UITextField为了方便将来关闭键盘,我将此UITextField作为我的menu layer的一个成员。    @interface MainMenuLayer : CCLayer {IBOutlet UITextField *textField;}@property(retain,

2011-02-28 00:44:00 2994 2

原创 C++存储tga图片

网上有很多关于TGA图片读取的代码,但是还没有相关的存储代码,工作需要,自己写了一个。工作只要求到写32位,未压缩的,RGBA颜色格式的图片,所以channels没有设置参数,我这里默认是4了_void SaveTGA( const _char *filename, _dword width, _dword height, const _byte *data ){// 自定义写数据类型typedef unsigned char _pixel;// 打开文件FILE *savefile = fopen(fil

2011-02-25 18:01:00 1268 1

原创 cocos2d的多点触控

<br /><br />1:<br />StandardTouchDelegate协议,<br /> <br />@protocol CCStandardTouchDelegate <NSObject><br />@optional<br />- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;<br />- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)

2011-02-25 01:53:00 2337

原创 递归实现MFC TreeControl动态建树

void CFileView::BulidTreeView( HTREEITEM tree_node){//我的控制类MySingletonManager& my_manager = MySingletonManager::GetSingleton( );//通过名字找到我的对象MyStaff* my_staff = my_manager .SearchStaff(mTreeControl.GetItemText(tree_node).GetBuffer(0) );//遍历这个对象的所有孩子,并添加至Tre

2011-01-17 18:04:00 1527

原创 使用OgreMax自定义数据(CDATA)

<br />前提:<br />1.Ogitor附带的DotSceneLoader,其使用rapidxml进行xml解析;<br />2.OgreMax导出场景,导出的用户自定义以CDATA格式存在于生成的xml中。<br /> <br />实例:<br />1.编写OgreMax自定义数据{<br />我编写的自定义类型:路点<br /> <userDataTypes> <class name="WayPoint"> <data name="ID" type="int"/> <dat

2010-12-13 21:54:00 859

原创 利用Ogre的场景查询器做简单的物理检测

Ogre的场景查询器具有强大的功能,而合理地利用掩码QueryMask,能够完成在游戏中对诸如“道具”,“墙壁”,“敌人”的分类处理。场景查询器分为:光线查询(Ray Queries)、球体查询(Sphere Queries)、边界盒查询(Bounding-Box Queries)、边界平面查询(Bounding-Plane Queries)以及相交查询(Intersection Queries)。我利用主角的位置mBodyNode->getPosition(),以半径1.5建立一个球体,通过该球体

2010-11-15 17:41:00 1409

原创 Advanced Ogre Framework中的两个小瑕疵

<br />错误一:很不值得一提的一个小错误,但是毕竟也是一个错误,作者在GameState退出时没有将Current_Object指针置空,导致在返回MenuState之后,如果再次进入GameState,点击一下鼠标左键这段代码就会发作:<br />    if(m_pCurrentObject)<br />    {<br />        m_pCurrentObject->showBoundingBox(false);<br />        m_pCurrentEntity->getSubE

2010-11-14 15:56:00 1421 1

转载 mt.exe:general error c101008d(最终原因已查明)

<br />该错误为: <br /><br />mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "./Release/*****.exe". f <br />其最终原因已查明见最后一部分<br />上网找了一下,只有英文网页有相关讨论,懒得去翻译了。中文网页中倒是有一个,而且有解决办法,那就是在项目属性——配置属性——链接器——清单文件中, 把生成清单改成否就行了。 <

2010-11-08 21:44:00 708

原创 Google C++ 编码风格精简

头文件:1.头文件防多重定义define格式:___H_2.能使用前置声明尽量不用头文件包含3.只有当函数只有 10 行甚至更少时才将其定义为内联函数(注意虚函数,递归函数,以及使用了循环语句的函数)4.复杂的内联函数的定义, 放在后缀名为 -inl.h 的头文件中5.定义函数时,输入参数永远放在输出参数之前6.项目内头文件应按照项目源代码目录树结构排列7.Example.cc包含头文件顺序:Example.h,C系统文件,C++ 系统文件,其他库的h文件,本项目内h文件作用域:1.在.cc文件中, 允许甚

2010-11-08 17:40:00 1117 2

原创 CdialogBar的建立

 1.加入普通的dialog类并与对应的dialogBar资源关联。 2.更改此类的继承关系   如:     class LightDlg : public CDialog   改为:     class LightDlg : public CDialogBar  注意对应的 IMPLEMENT_DYNAMIC , BEGIN_MESSAGE_MAP 等中的CDialog

2009-11-12 19:31:00 467

原创 关于CMainFrame的鼠标响应

       今天碰到一个在工具栏处添加坐标显示鼠标当前位置的小问题。       前辈留下的代码的处理方式,是把Cmainframe中的工具栏权限直接改成了public,而后在CView中的Mousemove添加编辑。很直接的方法,我却觉得更改MFC代码的方式不大合适。       在网上查找了一些资料。发现如下:        1.Cmainframe确实是完全可以相应鼠标事件的。

2009-10-06 20:19:00 1656

空空如也

空空如也

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

TA关注的人

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