游戏之路启程
2012-12-16 11:48
232 查看
作为一个悲剧的程序员,一直在磨练自己的剑。热爱游戏,被众多出色的游戏感动过,也一直有个梦想,开发一个自己的游戏 。
因为是一个python程序员,第一时间搜python的相关游戏引擎,pygame,OK,用了下,还挺简单的。于是想再封装一下,改为与公司引擎用法一样。
第一是GetParent(),看到公司引擎里的对象是一树状结构呢,根节点当然是游戏客户区了,每个节点都有一parent,子节点调用GetParent()来得到父节点。
第二是SetPos(),每个节点的坐标都是相对于parent而言的,是一相对坐标,当然要取出绝对坐标,可以回索到根,把各parent的pos加起来。
第三是SetZ(),Z轴由里向外,值大的会遮住小的节点,每个节点的Z也是相对于parent而言的,如果A节点的parent的Z值比B节点的parent的Z值大,积使B节点的Z比A的大,也会被A遮住,当然,也可以取绝对Z。
第四是事件,键盘事件还好,把键盘事件传给焦点对像就OK了。难点就在于鼠标事件,公司引擎的对象鼠标进入会响应Enter,立刻会Leave,左右键按下的释放是LeftDown,RigthDown,LeftUp,RightUp,中间滚轮MouseWheelUp,MouseWheelDown。来实现这些功能,关键在于要找到一个快速的方法,就叫GetMaxZObj吧,由一绝对坐标XY,取出当前XY下,绝对Z最大的节点。除了蛮力查找外,实在没想出个好方法。公司引擎还有支持不规则图片,而且节点的客户区不包括那些不可见的像素,这个或许可以在rect的基础上再判断下掩码。
但当一切准备就绪好,功能测试通过了,性能测试却一败涂地。3000个surface就30帧都到不了了……,这可怎么活啊,公司引擎把完包后可以上万个box。
然后把所有的检查分发都去掉,每帧只显示3000个surface,也不行……,看到先天下足啊。
就此,一个把pygame封装的计划失败了。当然,早就知道北伐之路艰辛无比,继续养精蓄锐。
因为是一个python程序员,第一时间搜python的相关游戏引擎,pygame,OK,用了下,还挺简单的。于是想再封装一下,改为与公司引擎用法一样。
第一是GetParent(),看到公司引擎里的对象是一树状结构呢,根节点当然是游戏客户区了,每个节点都有一parent,子节点调用GetParent()来得到父节点。
第二是SetPos(),每个节点的坐标都是相对于parent而言的,是一相对坐标,当然要取出绝对坐标,可以回索到根,把各parent的pos加起来。
第三是SetZ(),Z轴由里向外,值大的会遮住小的节点,每个节点的Z也是相对于parent而言的,如果A节点的parent的Z值比B节点的parent的Z值大,积使B节点的Z比A的大,也会被A遮住,当然,也可以取绝对Z。
第四是事件,键盘事件还好,把键盘事件传给焦点对像就OK了。难点就在于鼠标事件,公司引擎的对象鼠标进入会响应Enter,立刻会Leave,左右键按下的释放是LeftDown,RigthDown,LeftUp,RightUp,中间滚轮MouseWheelUp,MouseWheelDown。来实现这些功能,关键在于要找到一个快速的方法,就叫GetMaxZObj吧,由一绝对坐标XY,取出当前XY下,绝对Z最大的节点。除了蛮力查找外,实在没想出个好方法。公司引擎还有支持不规则图片,而且节点的客户区不包括那些不可见的像素,这个或许可以在rect的基础上再判断下掩码。
但当一切准备就绪好,功能测试通过了,性能测试却一败涂地。3000个surface就30帧都到不了了……,这可怎么活啊,公司引擎把完包后可以上万个box。
然后把所有的检查分发都去掉,每帧只显示3000个surface,也不行……,看到先天下足啊。
就此,一个把pygame封装的计划失败了。当然,早就知道北伐之路艰辛无比,继续养精蓄锐。
相关文章推荐
- 手机游戏开发之路:启程
- 游戏开发之路
- HTML5游戏制作之路_02_剖析项目目录结构&&在浏览器中输出helloworld
- SDL游戏之路(七)--屏幕自适应+图片加载+配置文件
- SDL游戏之路(十六)--中文输入法
- 《Cocos2D-iPhone 游戏开发之路》第3节 高仿<Flappy Bird>教程(1)
- 浩浩荡荡的linux学习之路即将启程,特开通此博客来总结自己的所学
- 我的游戏之路(1)
- Qt 游戏之路(一) 场景搭建 和 战车移动、地图拉伸
- 启程之路
- 通向云端之路 谈NVIDIA云游戏概念发展
- 屌丝程序员游戏从业8年之路
- Project Anarchy游戏引擎的研究之路
- Python挑战游戏( PythonChallenge)闯关之路Level 0
- 游戏引擎开发之路
- Python挑战游戏( PythonChallenge)闯关之路Level- 3
- Android破解学习之路(六)——Android游戏 方块冒险 破解
- 面试-----211小本的求职之路拿到腾讯阿里人人网易游戏offer
- csdn的朋友们帮忙支持下我的ios游戏~自学之路太艰难
- Unity游戏开发之路上的那些坑——NullReferenceException