第一个leapmotion的小游戏
自从看过leapmotion的宣传视频,就被吸引住了。觉得这东西迟早要替代鼠标,然后关注了一年多leapmotion的动态,终于在今年8月份入手了一只。//675大洋啊,心疼~
一直想写份评测,一直想做个小应用玩玩,然而一直拖着没做。
搁置了几个月后,终于心血来潮,山寨了个简单的小游戏,然后调用leapmotion来控制。//成就感倍增啊!!!
第零节——迟到的leapmotion简单评测
下了几个小游戏,以及试了下谷歌地球。
谷歌地球可以用leapmotion操作前进后退、转向和缩放等,但是感觉不太适应操作。比如缩放,缩放完成后,手要离开leapmotion检测区域,否则手恢复原状态,缩放又倒回去了。
小游戏玩法都比较简单,leapmotion个的新操作都用上了不少,比如检测多个手指,手指的方向,转圈和摇动等手势。
偶尔会有手指位置卡一下或跳一下的现象(可能是检测到脑袋了?)。玩久了胳膊很累。时间长了,leapmotion也比较热。
实际用起来,没有宣传片中那么炫。期望比较大,有点小失望。不过想起了世界上第一辆火车跟马车比赛,结果火车输了的故事。作为一个新兴事物,我还是很看好它的。
第一节——小游戏介绍
原来是一个HTML5的游戏,我觉得操作简单。很适合用leapmotion来操作,就山寨过来了。
玩法:鼠标移动操作弧形挡板,挡住红色小点,绿色小点补充生命,中间的生命值减到0则游戏结束。
以下是截图:

附下载地址:下载
第二节——小游戏实现思路

如图。
检测到输入时(鼠标移动或leapmotion动作),仅仅改变挡板的角度数值(全局变量)。
用了一个计时器来实时刷新每帧界面。
刷新前还需要对数值进行一些计算和检测。
A、根据当前难度,小圆点数量不足时,创建一个新的小圆点,根据当前难度随机生成一些属性值。大小、角度、速度、颜色等。
B、检测每个显示的小圆点和挡板或核心的碰撞。进行移除小圆点,并计算分数和生命值的操作。
C、移动小圆点
计算完成,依次刷新界面元素。
界面比较简短,都是用的一些集合图形。
第三节——添加leapmotion的操控
首先添加引用 LeapCSharp.NET3.5.dll,
然后把 Leap.dll 和 LeapCSharp.dll 放到生成目录里。
参考SDK里面的 Sample.cs 文件,做一下修改。
自定义一个EventArgs类,里面放一些需要获取的参数。比如要输出内容查看,可以加上 public string msg = "";
然后再定义:public event EventHandler<eventFrame> leapFrame = null;
把里面所有的类似 SafeWriteLine ("Exited"); 的语句,
改为这样:if (null != leapFrame) leapFrame(null, new eventFrame("Exited"));
最后,在主程序里初始化listener后,就可以通过:
listener.leapFrame += new EventHandler<eventFrame>(listener_leapFrame);
来获取leapmotion动作了。如果要在界面上输出查看的话,记得invoke一下,否则不同线程无法操作主界面UI。
我则是获取了一下平均坐标值 Vector avgPos ,用popup控件模拟一个鼠标,然后修改下挡板的角度,就大功告成了!
-------------------------------- 结尾 -----------------------------------
写的比较仓促,如果有什么不足的地方,还请大家多多指正。
如果大家对leapmotion的应用,有什么新的点子及想法,还请多多指教。
附上源程序:源程序
第一个leapmotion的小游戏的更多相关文章
- 用原生javascript做的一个打地鼠的小游戏
学习javascript也有一段时间了,一直以来分享的都是一些概念型的知识,今天有空做了一个打地鼠的小游戏,来跟大家分享一下,大家也可以下载来增加一些生活的乐趣,下面P出代码:首先是HTML部分代码: ...
- 【C语言探索之旅】 第一部分第八课:第一个C语言小游戏
内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...
- python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。
python小练习:使用循环和函数实现一个摇骰子小游戏.游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“ ...
- html5面向对象做一个贪吃蛇小游戏
canvas加面向对象方式的贪吃蛇 2016-08-25 这个小游戏可以增加对面向对象的理解,可以加强js逻辑能力,总之认真自己敲一两遍收获还是不少啊!!适合刚学canvas的同学练习!! 废话不多说 ...
- python新手如何编写一个猜数字小游戏
此文章只针对新手,希望大家勿喷,感谢!话不多说先上代码: import random if __name__ == '__main__': yourname = input("你好! 你的名 ...
- 用python写了一个猜年龄小游戏
写一个猜年龄游戏: 需要实现用户登录的功能 初始用户登录信息为 {'hades': '13579','nick': '123','ruixing': 'a1','fanping': 'b2'} 登录时 ...
- 10分钟用scratch写一个大鱼吃小鱼的小游戏
第一次给张江小朋友教Scratch课程之前,还在担心一些概念能不能向小朋友解释清楚,可上完课发现,我严重低估了小朋友的聪明程度,发现现在的孩子相比较自己8.9岁的时候,简直聪明太多倍了. 所以总结了半 ...
- 用Python做一个简单的小游戏
学习总是枯燥的,对于Python小白的我来讲,更是乏味的.为了提高学习的兴趣,今天我就来写一个小程序练练手. 数字猜谜游戏相信大家都不陌生,A给出最小值最大值,B写一个该范围内的数,A猜测写下的是多少 ...
- python Tkinter 写一个弹球的小游戏
#!usr/bin/python #-*- coding:utf-8 -*- from Tkinter import * import Tkinter import random import tim ...
随机推荐
- [原创] Web UI自动化应用测试框架实践 - 概览
之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要 ...
- 发布后500访问错误 —— dll引用错误
System.Net.Http相关dll
- EasyPusher推流服务接口的.NET导出
本文是在使用由 EasyDarwin 团队开发的EasyPusher时导出的C++接口的.NET实现 public class EasyPushSDK { public EasyPushSDK() { ...
- 日历控件table布局
作为初学者,一开始就接触div+css ,所以说实话,我并不怎么喜欢table布局,一般逃避. 先上这次的效果图: 看到这个图,第一次用table布局没实现,原因是给tr加下边框失效.当时没找到原因, ...
- 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范
HTML 语法 HTML5 doctype 语言属性(Language attribute) 字符编码 IE 兼容模式 引入 CSS 和 JavaScript 文件 实用为王 属性顺序 布尔(bool ...
- 学习Slim Framework for PHP v3 (三)
继续上一篇的问题,如何动态的添加不同的Module.添加Module是给Middleware用的,用于调用Module的写日志方法.上篇中的写法是在app->add(mv),这时的middlew ...
- js中的相等与不等运算
如果其中一个操作数的类型为 Boolean ,那么,首先将它转换为数字类型,false 转换为 0, true 将转换为 1. 如果其中一个操作数的类型是字符串,另外一个为数字类型,那么,将字符串转换 ...
- linux 用户打开进程数和文件数调整
1 查看nproc(max user processes)命令 [root@vm-cdh4 ~]# ulimit -u 14866 2 修改nproc 临时修改, 重登录或重启后失效: [root@v ...
- 坑到了,EF执行带事物的存储过程
用EF开发项目,今天调用 带事物 存储过程,始终报错,"EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配.上一计数 = 1,当前计数 = 0.\r\nEXEC ...
- (转)文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别
这两天在调优数据库性能的过程中需要降低操作系统文件Cache对数据库性能的影响,故调研了一些降低文件系统缓存大小的方法,其中一种是通过修改/proc/sys/vm/dirty_background_r ...