周末搞了个小游戏–大家来找茬

虽然说这是小女生喜欢玩的游戏,但我以前还是比较喜欢的,特别是休息的时候,玩玩这个有休息大脑的感觉,可能是心理作用吧,呵呵。

周末无聊就做了一个来玩玩,以前用as2做过,不过找不到原代码了,现在又拿as3做了个。as3做起来比as2要简单轻松得多了,游戏是加载xml的,可以动态添加自已制作的游戏。有兴趣的人也可以制作哦!游戏有列表功能,可以选择您添加的游戏~没事我也会添加一些,等以后存多了自己再来玩自己做的。。。

游戏制作器我发到下一个帖子了,链接在———> 这里 <————– 制作好了后可以回到这个帖子里来玩新加的游

Continue reading “周末搞了个小游戏–大家来找茬”

PHP模块by Nasm

用了这么多年的PHP,还真有幸地做过几次扩展,以前做的扩展,大都是在windows平台上,然后用的COM组件实现,也有一次写的应用程序,然后用TCP协议调用函数,却从来没有尝试过去写PHP模块,正好这次的PHP产品又有做扩展的需要,服务器也是多种操作系统的,这样的情况,何不尝试用PHP模块的方式来实现呢。我使用了NASM 汇编语言,这种开源的,跨平台的汇编语言。
为什么用汇编语言呢,其实PHP用C语言写模块的话,会有很多的宏调用,方便快捷,而我要用汇编语言去写第一个模块,主要就是想从PHP的文档和源代码共同地去研究PHP的内部,真正深入地了解它的执行。以后的开发肯定还是要用C语言的,因为它不仅仅是跨平台了,还可以跨CPU架构。
开始研究文档,PHP文档《PHP at the Core: A Hacker’s Guide to the Zend Engine》一章里很详细地讲述了PHP内核的运行机制及模块的加载方式,加上官方网站上下载的源代码,一切都不是秘密了。
Continue reading “PHP模块by Nasm”

哈哈,齐达内撞人小游戏

也不知道是哪一年了,反正就是齐达内撞人那年搞的,当时做的真是不行啊,画的也丑,呵呵,而且顶人的判断也不是很准确。精神还是可嘉。
这个顶人还有级别的,玩到后面的等级人都是一片一片的来,哈哈。
Continue reading “哈哈,齐达内撞人小游戏”

MASM32编写的表单提交库

这个库是以前用MASM32的时候写的,它的功能其实就是实现multipart/form-data的标准的方式去与HTTP WebServer交互。只是这个库是纯socket实现的模拟浏览器表单提交,包含提交文件的功能。

首先要承认,做这个库的时候,我没有去看相关的规范文档,而是截获的IE提交表单的数据包来分析,然后再用socket直接封装的这个库。Multipart的form其它字段跟post的也差不多,而上传文件的时候是用一个界限字符串来区分文件。我一直在想,如果文件是一个文本文件,文本文件里恰好又包含这个boundary的结束标记,那会出现什么情况呢。呵呵,当然,我的boundary标记是随机生成的,所以基本上是不大可能与文本文件里有相同的字符串,有就不知道是什么结果了。总之我觉得我们不用太关注这种基本上不可能发生的小概率事件。

有了这个库,应用程序就可以实现跟浏览器一样的向webserver上传文件功能了。

Continue reading “MASM32编写的表单提交库”

Firefox 的Add-on备忘

Firefox的扩展主要以动态链接库Plugin和js的Add-on为主。前者以开发动态链接库的方式,一般是firefox浏览器提供标准的NPAPI函数供插件调用,(NPAPI好像Opera浏览器也为它的插件提供的),现在要记录的是第二种方式,第一种就不多说了。

如果要直接访问页面元素,用Add-on方式肯定是比插件方式更简单的操作了。
Add-on模板生成地址:
https://addons.mozilla.org/en-US/developers/tools/builder
有了上面的制作工具,填填表单就可以生成基本的插件模板,用户可以自己选择自己需要的功能。生成的插件解压后放到firefox的extensions目录下,重启firefox就会看到插件已经成功安装。
\chrome\content目录下放了主程序和插件的主要配置,如插件的首选项配置,插件显示的位置配置。
\chrome\locale 目录下放了各种语言包,如果你想插件国际化的话就要写很多,不想的话可直接改en-US内的语言,中文的话存成UTF-8就OK了。
\chrome\skin 目录下放了一个css,这个css可以控制插件显示样式,如目录项的背景色,或工具条的样式。

Continue reading “Firefox 的Add-on备忘”

32bit ASM to 64bit ASM–汇编语言64bit心得

最近有个项目,我使用NASM编写的,运行在32位windows和linux主机上,但后来需求增加了,需要在64位windows和linux上运行,windows自身有个wow(windows on windows)机制,32位程序根本不用移植就能在64位机器上跑,而linux虽然没有LOL机制(是Linux on linux,不是laugth out loud哈,呵呵 ~),但linux 可以安装ia-libs库(ia 应该是 Intel x86 Archive的简写)达到LOL效果,不过,编译ELF64和WIN64OBJ也是我比较感兴趣的,所以我要移植程序! Continue reading “32bit ASM to 64bit ASM–汇编语言64bit心得”

搞了个手柄玩super mario RPG

最近突然想玩sfc了,以前的《时空之轮》,《最终幻想VI》给我的印象都非常好,square公司的游戏音乐,剧情,可玩性都非常棒!

最近又看到super mario rpg这个游戏,是任天堂和square公司合作出品的游戏!两个都是巨头,游戏肯定好玩,果然不出所料。为了玩它,特地去搞了个手柄,以便阿拉倘着玩。。。

Continue reading “搞了个手柄玩super mario RPG”

给朋友网站做的世界地图flash

这个flash应该是我最后一次拿AS2做flash了,AS2读GBK编码的XML的问题Linux上就会显现出来,而AS3可以统一用UTF-8就不会出现这个问题。自从这个Flash以后我都用的AS3。 呵呵。这个flash在朋友的网站上放了好几年了,看着挺舒服,就把它转到自己的博客上来了。

Flash地址是:http://www.ccbdd.com/hoverlees/worldmap/world.swf

Continue reading “给朋友网站做的世界地图flash”

应用微积分平滑连接Flash中两条二次贝赛尔曲线

大学里有一门很重要的课程,叫高等数学。这门课是既让人喜又让人忧的课,我觉得还是忧占多数吧,书上讲的很抽象,而且很少提到这些东西在实际中的运用,所以很难提起大学的兴趣,最终会被大多数人归为‘天书’,我当年就觉得没兴趣。
但最近要实现的功能里必须用到微积分的知识,终于体会到了它带来的乐趣。。。
这次是要做一个网络拓扑的flash,包含拓扑图的编辑和展现功能,遇到一个难点是两台主机之间如多有个连接时,连接需要用孤线。在flash中孤线有二次贝赛尔曲线的绘图函数,只要提供三个点就OK了。但是,我的需求里,每个连接是要表示连接的两个方向流量信息,所以实际上,我们是要两段线组成一段线。直线就最简单,知道两个点取中点,分别画两条线就OK了,但要两根二次贝赛尔曲线组合成一根圆滑的曲线,就成了难点了。
现在就是,我们有一个起始点和一个结束点的数据,还有中点的数据是自己规定的,现在需要用两根二次贝赛尔曲线来组合成这一根曲线,以达到“把一条曲线分成两部分”的效果。下图就是最终实现后的效果。我这儿故意多连了几根线,但设了不同的带宽来表示同一条线的流量,所以颜色是不一样的。根据带宽和当前流量值设置各段线的颜色不是难点,呵呵。

Continue reading “应用微积分平滑连接Flash中两条二次贝赛尔曲线”