cocos2d-x引擎实现$1Unistroke Recognizer手势识别
$1 Unistroke(单笔画) Recognizer官网
http://depts.washington.edu/aimgroup/proj/dollar/
(在官网还有多笔画的识别库)
代码下载
http://depts.washington.edu/aimgroup/proj/dollar/others/cpp.bw.zip
下载代码包括:
GeometricRecognizer.h
GeometricRecognizer.cpp
GemetricRecognizerTypes.h
GestureTemplate.h
PathWriter.h
SamplesGestures.h
使用示例:
1.你的Layer需要实现以下两个方法
virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);
virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
2.初始化GeometricRecognizer来加载你的手势模板
private:
GeometricRecognizer* g_rGemertricRecognizer;
//加载模板
rGemertricRecognizer=new GeometricRecognizer;
rGemertricRecognizer->loadTemplates();
3.记录触摸操作(玩家在手机上所做手势的路径)
//声明一个坐标集合
private:
Path2D p_2dPath;
//Layer的ccTouchesMoved方法中记录坐标
CCSetIterator it = pTouches->begin();
CCTouch* touch = (CCTouch*)(*it);
CCPoint location = touch->locationInView(touch->view()));
Point2D p_Point2DTemp;
Point2DTemp.x=location.x;
Point2DTemp.y=location.y;
//记录
p_2dPath.push_back(Point2DTemp);
4.通过GeometricRecognizer校准
//Layer的ccTouchesEnded方法中, 下面屏蔽玩家单击操作
if (p_2dPath.size() < 1){
return ;
}
RecognitionResult result = GemertricRecognizer->recognize(path2d);
//RecognitionResult 结果
class RecognitionResult
{
public:
string name;
double score;
RecognitionResult(string name, double score)
{
this->name = name;
this->score = score;
}
};
//这个类会保存你的自定义的模板名称(name未找到会回返回Unknown)和相似度(score 0.0-1.0)
cocos2d-x引擎实现$1Unistroke Recognizer手势识别的更多相关文章
- iOS cocos2d游戏引擎的了解之一
ios游戏引擎之Cocos2d(一) cocos2d是一个免费开源的ios游戏开发引擎,并且完全采用object-c进行编写,这对于已经用惯object-c进行ios应用开发的童鞋来说非常容易上手.这 ...
- 【Cocos2d-HTML5 开发之一】新建HTML5项目及简单阐述与cocos2d/x引擎关系
真的是有一段时间没写博了,这段时间呢,发生的事情真的挺多,另外自己呢也闲来做了一些自己的喜欢的东西,主要做的还是基于Mac系统的Cocoa框架的各种编辑器吧.(对了,今年初也出了自己第二本书<i ...
- 《黑马程序猿》 cocos2d游戏引擎复习笔记一
/** ----------------------------游戏场景的搭建-------------------------------- 1首先创建一个surfaceview ,它能够在子线程中 ...
- iOS cocos2d 2游戏开发实战(第3版)书评
2013是游戏爆发的一年,手游用户也是飞速暴增.虽然自己不做游戏,但也是时刻了解手机应用开发的新动向.看到CSDN的"写书评得技术图书赢下载分"活动,就申请了一本<iOS c ...
- Cocos2d入门--2--三角函数的应用
其实,三角函数的知识点是初中的数学基础.但是在编程里合理的利用的话,也会很好玩的,可以制作出很多有趣的动画特效. 首先要注意的是 角度 和 弧度 的转换. 360度 = 2×PI弧度 180度 = ...
- Cocos2d入门--1--初涉相关属性或代码
Cocos2d vision: cocos2d-x-3.8.1 万丈高楼,起于累土.对于一个游戏框架的学习,其实在于框架功能的使用积累,学会了如何在cocos2d游戏引擎的基础上使用它提供的各种功能 ...
- Cocos2d—X游戏开发之CCTableView详解(十一)
本来很早就想写关于CCTableView的文章,但是在基本功能实现之后呢,项目需求增加导致对这个控件的研究必须更加深入一点. 好的,现在开始介绍一下这个控件,在Cocos2d—X引擎中,这是一个仿制i ...
- cocos2D(三)---- 第一cocos2d的程序代码分析
在第一讲中已经新建了第一个cocos2d程序,执行效果例如以下: 在这讲中我们来分析下里面的代码,了解cocos2d的工作原理,看看屏幕上的这个"Hello World"是怎样显示 ...
- Cocos2d-android游戏引擎-介绍
一.游戏引擎概念 什么是游戏引擎 游戏引擎是指一些已编写好的可编辑游戏系统或者一些交互式实时图像应用程序的核心组件.这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计 ...
随机推荐
- c#中单元测试
从走进.net后发现每天有写不完的代码,有做不完的测试...人感觉都已经机械,我们需要认清自己调整好心态,问下自己是否真的喜欢编程.我的答案当然也就是我爱编码,编码给我带来了许多欢乐,每天都给我体验小 ...
- Java Script 正则表达式的使用示例
一.语法 1.1 在JS中的使用代码 var myregex = new RegExp("^[-]?[0-9][0-9]{0,2}\\.[0-9]{5,15}\\,\s*[-]?[0-9][ ...
- java 垃圾回收(堆内存)、以及栈内存的释放
一.Java的垃圾回收机制———解疑 Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间. 需要注意的是:垃圾回收回收的是无任何引用的 ...
- NGINX(六)扩展
前言 nginx模块化设计, 添加扩展模块变得容易, 下面开发一个非常简单的扩展模块, 实现返回http请求的头部内容, 配置标记是ping_pong, 配置在NGX_HTTP_LOC_CONF中. ...
- Print the numbers between 30 to 3000.
Microsoft Interview Question Developer Program Engineers 看到一个题目比较有意思: Print the numbers between 30 t ...
- NBUT1457 Sona 莫队算法
由于10^9很大,所以先离散化一下,把给你的这一段数哈希 时间复杂度O(nlogn) 然后就是分块莫队 已知[L,R],由于事先的离散化,可以在O(1)的的时间更新[l+1,r],[l,r+1],[l ...
- IE兼容性问题解决方案2--css样式兼容标签
在页面中加入下面的标签: <meta http-equiv = "x-UA-compatible" content="IE=edge,chrome=1"& ...
- HW6.7
public class Solution { public static void main(String[] args) { int[] count = new int[10]; int numb ...
- HW5.26
public class Solution { public static void main(String[] args) { int totalCount = 0; int lineCount = ...
- Java 反射机制分析指南
一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...