游戏开发-梦开始的地方笔记
2011-05-12 00:18
309 查看
1. 游戏编程分块:图像图像;AI部分;基本逻辑与UI部分。
2.代码优化:
使用二进制移位代替乘除法;
适当使用全局变量,可以避免调用函数时的参数传递,提高速度;
使用32位变量;
尽量避免类型转换,如果必须使用类型转换的话将其放到最后;
使用inline函数;
使用速查表。如果程序中用到一些数学函数,比如y=f(x),实时计算太耗费时间了,可以预先计算出相应的x,y数值放到一个大表里,在程序运行时只需要到表里查相应的x,y数据即可,这就是用空间换时间的做法;
齐次坐标可以将矩阵的各种变换统一表示成矩阵的乘法,二维坐标系的齐次坐标是三维,三维坐标系的齐次坐标则是四维;
窗口-视图变换:游戏中有2中坐标,世界坐标系和屏幕坐标系,内存中存在的是一个大的世界地图,而屏幕上显示的只是世界地图的一部分。屏幕上的一部分叫视图,用来显示世界地图的一部分,而其对应的世界地图的方形区域叫做窗口。一般来说,游戏中的人物,物品的当前位置数据、相互关系和移动操作等都是在世界坐标系下进行的,然后才转换到屏幕坐标系中输出到屏幕。对三维游戏来说窗口视图变换就是在三维世界内取一个平面,先把三维世界中的物体投影到这个平面上,然后再做二维的窗口视图变换,,,
2.代码优化:
使用二进制移位代替乘除法;
适当使用全局变量,可以避免调用函数时的参数传递,提高速度;
使用32位变量;
尽量避免类型转换,如果必须使用类型转换的话将其放到最后;
使用inline函数;
使用速查表。如果程序中用到一些数学函数,比如y=f(x),实时计算太耗费时间了,可以预先计算出相应的x,y数值放到一个大表里,在程序运行时只需要到表里查相应的x,y数据即可,这就是用空间换时间的做法;
齐次坐标可以将矩阵的各种变换统一表示成矩阵的乘法,二维坐标系的齐次坐标是三维,三维坐标系的齐次坐标则是四维;
窗口-视图变换:游戏中有2中坐标,世界坐标系和屏幕坐标系,内存中存在的是一个大的世界地图,而屏幕上显示的只是世界地图的一部分。屏幕上的一部分叫视图,用来显示世界地图的一部分,而其对应的世界地图的方形区域叫做窗口。一般来说,游戏中的人物,物品的当前位置数据、相互关系和移动操作等都是在世界坐标系下进行的,然后才转换到屏幕坐标系中输出到屏幕。对三维游戏来说窗口视图变换就是在三维世界内取一个平面,先把三维世界中的物体投影到这个平面上,然后再做二维的窗口视图变换,,,
相关文章推荐
- 游戏开发学习笔记(一)游戏开始场景的制作
- 【代码笔记】多线程游戏开发——伏魔记:第一步——开始游戏界面实现(一)
- Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin
- cocos2dx游戏开发学习笔记2-从helloworld开始
- 关于李三影【Unity 游戏开发教程】装备系统 - 01. JSON数据创建与使用要做笔记的地方
- 我的游戏开发笔记(五):Animator的运用二
- android游戏开发学习笔记二(学习书籍 Android游戏编程之从零开始)
- 【Visual C++】游戏开发笔记十七 游戏基础算法(一) 游戏随机系统初步
- cocos2d-x 3.x游戏开发学习笔记(2)--cocos2d-x 3.x文件目录结构分析
- 【Visual C++】游戏开发笔记之十一 基础动画显示(四) 排序贴图
- 【Visual C++】游戏开发笔记二十五 最简化的DirectX开发环境的配置
- android游戏开发学习笔记六(学习书籍 Android游戏编程之从零开始)
- 【Visual C++】游戏开发笔记十二 游戏输入消息处理(一) 键盘消息处理
- iOS开发笔记——TableView Separatorinset 分割线从边框顶端开始
- 一款SNS战略休闲游戏开发笔记01——分布式系统逻辑架构设计的补充与讨论
- 小韵游戏开发学习笔记——第二期:初识Unity3D
- libgdx游戏引擎开发笔记(十三)SuperJumper游戏例子的讲解(篇七)----各个物体的创建及其碰撞检测
- 【Cocos2d-x游戏引擎开发笔记(15)】Tiled Map Editor(三)
- 【 Visual C++】游戏开发笔记之三——绘制图元
- 【 Visual C++】游戏开发笔记之二——最简单的DirectX,vc窗口的编写