寒战结局个人看法

今天看了《寒战》,结局有个悬念就是有个神秘人要求释放李家俊,同时还有李家俊那神秘的表情。

个人认为这是两种理解

如果不拍续集的话,那这个结局就是结局时文字写到的,还有很多人没有落网,那些人可能是如刘德华客串的保安局长等高层,剧中经常可以看到警局内的官员很多都想升职,甚至尝试越权执法以求升官,所以最终boss早晚还是要出来挑战的。但肯定不是李文斌,不然他是boss的话就代表这戏没完,肯定需要续集,与假设矛盾。所以这种情况就代表李文斌是个有能力的副处长,哪怕是自己儿子犯法也不偏袒。

我觉得最可能的情况还是这次最大的幕后就是李文斌,理由剧情里也说的很明白(甚至有更深的内情),而郭富城演的刘sir也很厉害,虽然受到些小挫折,但借助其它部门成功找出了李dir的儿子是歹徒之一,还得到厉害的帮手张sir。打了这么好个基础,没有续集太可惜了。李sir跟儿子对话那场父子有太多的暗号可以打,在众人面前演个戏也很容易,而电影最后的对话也很有深意:“看来是我小看你的工作能力了”,“本来是可以避免的不必要战争,没有说什么战争都不必要,在某本书的第一页”,其实意思就是表达本来以为不用太复杂就可以搞定刘sir,但这次有必要进行一次战争了。最后刘sir 在车上也正在看这一页,看表情可能就觉得有可能书上不是这么写的,而打电话时那人问还记得我吗,刘sir说记得。

至于林家栋演的邝sir,一开始是歹徒的一份子,后来被招安,但在死前问了一句话,“告诉我,还有谁”,说明他一开始都不知道整个计划。

HTML5仿的半熟英雄游戏

记得以前玩红白机时代最喜欢的一款游戏,可以存盘,通过攻占城池的方式占领整个大陆,简单又好玩的游戏。一直都想自己也做一个。所以就基于HTML5做了一个这样的游戏。找了很多的素材可惜还是不大好看。不过玩起来确实还是很有意思的。

这是年前比较闲的时候做的,过完年后回来完善了,添加到了游戏的列表页中去了,有兴趣的朋友可以玩来试试。

游戏对战时具有魔法系统,可以使用五种魔法,魔法通过购买魔法符使用的。电脑做得有点强,困难游戏比较难打,我到现在基本上最多打到三个城然后就被电脑占领到两个城。游戏中的人物除了国王是按照用户的登录名设置的之外,其它将军名字都是用程序组成的,所以有时候会看到比较搞笑的名字。不过这种概率也不高。每个城隐藏有50个隐藏将军,够的请。另外,游戏需要通过右下角的菜单展开后手动保存,下次进入才能载入进度。

游戏还是按iphone4s的全屏设计,如果用电脑玩只会显示比较小一块区域。

   

Continue reading “HTML5仿的半熟英雄游戏”

Windows五子棋

过年也有没事做耍电脑的时候,就用C在windows上写了个websocket客户端的五子棋,这个是用opengl画的,棋盘是3D的但做得简陋,用socket实现的websocket协议与以前写的websocket server通信,可以与以前实现的HTML5五子棋游戏对玩。

前面挂了个“电视机”,房间没人进入的时候是没有信号的状态,有人进入后会显示钓鱼脸先生。

Continue reading “Windows五子棋”

WebSocket五子棋游戏

在以前实现的websocket服务器基础之上又加了一个五子棋对战游戏.现在服务器已经支持火拼俄罗斯方块和五子棋两个网络对玩的游戏了.

这个游戏同样支持电脑和手机的HTML5浏览器,由于这一次的游戏界面是自伸缩,所以对不同浏览器的效果都还不错.

由于手机屏幕比较小和手指难准确定位的因素,所以特地给触屏事件添加了放大处理,当第一次点击棋盘时,放大棋盘,第二次点击要放置的位置时才放置棋子.放大模式下,两个手指点击棋盘时缩小到全盘大小. 电脑上则不进行这样的逻辑处理,直接点击棋子放置区域放置棋子.

Continue reading “WebSocket五子棋游戏”

HTML5的位图处理

昨天演示了flash的位图处理效果,今天再演示一下HTML5的位图处理效果。HTML5是靠使用ImageData对象来处理相素数据的,只要能拿到相素数据,那给相片添加滤镜效果也是很容易的事。

下面的内容HTML5浏览器可以观看:

您的浏览器不支持CANVAS

Google doodle的位图处理效果

前两天的Google doodle是一个滑冰车的小游戏,一些小人随机在冰面上滑行,然后玩家再去把花掉的冰面修平整,这种游戏完全就像画图软件的橡皮工具一样,是直接操作图片的像素数据达到效果。

这让我想到了百战天虫游戏,百战天虫的地面是可以被武器毁坏的,地形破坏的处理方式同样是使用的位图处理,如果是ARGB方式处理图片,则可以设置像素的透明度为0,如果是RGB方式处理图片,则可以自己建立一个bit map来标记像素的有无状态。当一个点爆炸时,该点为圆心的圆内所有像素设置为透明或隐藏。

下面是Flash的实现,做了简单的地形破坏效果,鼠标点击破坏掉的区域可以修复已经破坏的区域。

Continue reading “Google doodle的位图处理效果”

Go语言调用C

Go语言十分简单,跨平台,非常适用于网络应用的开发,本人相当看好。不过很多时候,还是需要扩展Go让Go实现更多的功能,如操作底层硬件、创建窗口等,这个要求可以通过调用C的方式实现。

本文以windows下的Go开发为例,linux完全一样。当然,Windows上首先要安装MinGW.

http://www.hoverlees.com/blog/?p=1465

先做一个GO显示一个对话框窗口的简单示例。在go目录src/pkg下新建一个文件夹名为hover,新建一个hover.go文件,内容如下

package hover
//#include <windows.h>
import "C"
func Msgbox(title string,body string) int{
	C.MessageBox(nil,(*C.CHAR)(C.CString(body)),(*C.CHAR)(C.CString
(title)),0);
	return 0;
}

与其说这是一个go源码文件,还不如把它理解成C语言的模板文件,cgo编译时,会把这个文件的内容转换成C程序并使用gcc编译,所以本人强列推荐将这个程序当成C程序阅读。程序中第二行的注释会在转换成C语言时做为C的代码。Msgbox会调用Windows系统函数MessageBox,并传入对应参数。由于go的数据类型与C语言的数据类型在内存中的表示不同,所以需要转换。Go与C的数据类型对有对应的转换方式,具体可以参看文档。因为MessageBox的第二第三个参数是LPSTR(unsigned char*),所以在调用时需要将Go的string转换成LPSTR类型。

接下来编译和安装函数包:

go build hover
go install hover

编译完成后,可以在程序中import这个hover库。下面写一个简单的程序调用刚刚写好的函数

package main
import "hover"
func main(){
	hover.Msgbox("title","body");
}

最终生成的程序会弹出一个对话框,标题和内容都按程序指定的显示。

Continue reading “Go语言调用C”