原文:http://www.cnblogs.com/dearsj001/archive/2009/02/06/1385402.html
“Windows Mobile上的蓝牙点对点通信”介绍如何在两台Windows Mobile设备上建立点对点的蓝牙通信,继续这个话题,WM6的SDK中,给出了另外一个蓝牙通信的例子,那就是SpaceWar2D。SpaceWar2D使用了Windows Embedded Source Tools for Bluetooth Technology来做蓝牙通信,在两台WM设备间建立连接,然后进行简单的游戏。
Windows Embedded Source Tools for Bluetooth Technology在2005年5月就已经出来了,最早是Bill Gates在“Microsoft Mobile & Embedded DevCon 2005”上宣布的。在Fox23的Blog和Mike Hall的Blog上,都曾推荐了这个托管代码封装库。说起这个Windows Embedded Source Tools for Bluetooth Technology的作者Anil Dhawan,我还和他有过一面之缘。2008年1月底在Sigma大厦举行的“MSRA Students Winter Camp 2008”上,Anil Dhawan和Samuel Phung给我们带来了精彩的CE机器人演示。由于之前在webcast上见过他,当时VS2008差不多刚发布,所以就和他聊了聊一些VS2005和VS2008做mobile开发的细节。当时给我的感觉就是,这哥们儿真是活力四射!
Windows Embedded Source Tools for Bluetooth Technology中,对dll进行了封装,提供给SpaceWar2D使用。主要包括:
CE Bluetooth Radio Functions:
Bluetooth Utility Functions:
CE Winsock functions:
需要注意的是,在SpaceWar2D中必须添加对Microsoft.WindowsMobile.SharedSource.Bluetooth的引用。
运行程序前,必须将两个设备建立蓝牙合作关系,具体的方法就是在蓝牙设置中,点击“添加新设备”,然后让设备自动扫描附近的蓝牙设备,找到以后,点击完成。这时,就会在设备中显示刚刚添加的蓝牙设备,如下图1所示:
图1:添加的蓝牙设备
运行程序以后,就可以在两台设备上来操作了,画面会同步显示在各自的屏幕上,在WM6设备屏幕上,看到的界面如下图2所示:
图2:WM6设备上的游戏界面
两个物体可以做顺时针旋转、逆时针旋转、发射子弹和加速等动作,如果挨子弹,那么上面的计数会增加,如果相撞的话,同时计数。
游戏的视频地址如下:http://www.youtube.com/watch?v=2kuA_EskjA4
参考链接:
Microsoft Mobile & Embedded DevCon 2005
Fox23’ Blog
Mike Hall’ Blog