摘要: 再分享一个小技巧,实现c#版本exe的自删除功能。代码如下:Process process = new Process(); Thread.CurrentThread.Priority = ThreadPriority.Highest; Process.G... 阅读全文
posted @ 2015-04-17 13:57 火月 阅读(458) 评论(0) 推荐(0) 编辑
摘要: winpcap是windows下的网络嗅探库,通常用于在程序中实现网络抓包分析。当然它也可以让网卡发送我们自己构造的数据包,从而实现一些特定的功能。通常情况下,winpcap是需要安装的,官方提供了一个exe的安装文件,会弹出对话框让用户点击下一步下一步来确认。在某些情况下,我们不希望用户知道这个安... 阅读全文
posted @ 2015-04-15 11:27 火月 阅读(1643) 评论(0) 推荐(0) 编辑
摘要: 最近阅读了《lean startup》一书,书中阐述的做产品的精要很像我早些忘了在哪看到的一句话“小步快跑 快速迭代”,项目开始不做大而全的目标和设计,没有全面详细的功能列表, 只做出一个最小化可行产品,快速推向市场,从反馈中学习,指导项目的走向。产品都会有一两个我们认为的卖点,但是在项目开始阶段我们也不确定这些卖点是否符合市场,在不确定的东西上再叠加功能,好的结果但是皆大欢喜,不好的结果就是做出一个大而全的但是没人要的产品。精益创业提出的是个做产品的大的指导思想,具体落实到开发过程上的话,快速,反馈,迭代等字眼很容易就让人想到敏捷开发。敏捷是种软件开发流程,强调也是快速应对变化,基本思想和精 阅读全文
posted @ 2013-04-17 11:48 火月 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 碰到个古老的问题,像素的alpha混合,于是查阅了mmx指令,写出了如下32位像素格式的alpha混合,不过alpha值固定为半透明,代码效率还能接受。如下: mov eax, dest;;dest是目的像素指针movd mm0, [eax];; 把目的像素值移入mm0寄存器的低32位movd mm1, color;; 把源像素值移入mm1寄存器的低32位pxor mm2, mm2;; mm2寄存... 阅读全文
posted @ 2011-11-02 22:35 火月 阅读(559) 评论(0) 推荐(0) 编辑
摘要: 自己老早以前就想写个局域网的三国杀,以前思考过其游戏逻辑的实现,觉得有点复杂,一直也没有真正动手,上个周末,真正动手做了起来,2天里写了大约2000来行代码。算是把整个框架有了个大致的实现。下面把整个思路整理一下。 既然是轻量级的局域网版本,就没必要把服务器和客户端分开来做,就让程序自带服务端和客户端,类似于quake,一个玩家创建了房间(主机),其他玩家可以搜索到局域网内的这个房间,并连接上来... 阅读全文
posted @ 2011-09-21 00:16 火月 阅读(626) 评论(1) 推荐(0) 编辑
摘要: 实现倒影的思路: 1.关闭z缓存,渲染地面。 2.开启z缓存,开启混合,用观察矩阵的反转矩阵绘制物体,将反转的物体与地面颜色混合,形成倒影。 3.正常绘制物体。 void RenderScene(){ glDisable(GL_DEPTH_TEST); Terrain(); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE); glMatri... 阅读全文
posted @ 2011-08-18 22:23 火月 阅读(952) 评论(0) 推荐(0) 编辑
摘要: 在游戏中,游戏人物根据玩家的输入以及人物与游戏世界交互,会有许多动作动画效果的转换。简单的比如马里奥,玩家没有输入,没有发生游戏事件(吃到蘑菇、碰到怪物)时,马里奥大叔静止不动。玩家按下移动按钮,马里奥开始走动,这时需要绘制走路的动画效果。按下跳跃键,绘制跳跃的动画效果。而按键和动作并不是一一对应的关系,比如跳跃过程中按下左右移动键,并不能绘制走路的动画效果。这些状态之间的转换可以使用if else,switch case,语句来完成,如下://这里把人物写成一个Role类class Role{public:enum STATE{IDLE,WALK,JUMP,}void JumpInput() 阅读全文
posted @ 2011-08-13 01:10 火月 阅读(301) 评论(0) 推荐(0) 编辑
摘要: c++是一种强类型的语言。对变量赋值时,如果类型不匹配,也不能隐式转换,编译就会报错。 在很多动态语言里,js,lua等,变量都是无类型的: 如: var a = 3; a = 3.1415; a = “Hello”; 这样任意类型赋值都可以,这个a其实只是对它保存内容的一个引用。 c++要实现这样的类型有几种方式: 1. 定义一个巨大的union,把所有的类型都包含进去。 2. 把所有类型都转换... 阅读全文
posted @ 2010-11-24 22:04 火月 阅读(902) 评论(0) 推荐(0) 编辑
摘要: 上个世纪80年代的Nintendo Entertainment System游戏主机算是被模拟最多的主机了。现在无论手机上,psp上都充斥着它的身影。一些经典的老游戏仍在继续发挥着余热。 nes内部主要部件有中央处理器cpu,图形处理器ppu,声音处理器apu,弄清楚这几块就基本上搞定了它的运行流程。虽然nes模拟器的源代码到处都可以找到,但不弄清楚nes的基本结构直接看源码是肯定看不懂的。 ... 阅读全文
posted @ 2010-11-12 12:42 火月 阅读(397) 评论(1) 推荐(0) 编辑