Windows Phone 7 中TouchPanel的触控操作
Windows Phone 7 有四种用户交互的方式:
- 按键
- 触控
- 手势
- 外设(例如重力感应等)
通常来说Windows Phone 7的按键一般只支持Back按键(返回键)的可控操作,其他的两个是不受控的。
在XNA中会自动的生成这样一段代码,就是表示对Back按键的事件响应。
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
意思就是当Back按键被按下(Pressed)的时候,退出游戏。这个一般是比较简单的。
一、触控
触控最简单的方式就是直接触碰屏幕,Windows Phone 7最多支持4个触控点.
11在XNA中,需要先获得触控装置的状态,然后才能获得触控点的信息(比如触控ID,坐标信息等)。
取得触控信息的方法是由TouchPanel来控制的。通过是使用TouchPanel的GetState()可获得TouchCollection集合(由于支持至少4点的触控,所以取得是集合),集合中存放的是TouchLocation的结构,有三个成员:
ID:表示触控的代码,每一次触控都会有一个唯一的编号
Position:触控的位置
State:触控的状态
State有以下三种状态:
①Pressed.即当前用户触控的状态是按下(手指按在屏幕上).
②Moved.即当前用户触控的状态是移动(手指按在屏幕上并移动)
③Release.当手指从触摸屏上离开的时候
下面的一个例子可以获取State的三种状态。
首先我们声明一个String类型的全局变量TouchMessage
string TouchMessage="";
然后添加一个SpriteFont文件,用于在屏幕上显示文本
接着添加一个SpriteFont类型的全局变量,用来将spritefont资源加载到内容管道中,以便程序使用。
SpriteFont spritefont;
加载SpriteFont资源
spritefont = Content.Load<SpriteFont>(@"Fonts\SpriteFont");
然后我们需要在Update中添加捕获TouchPanel状态的代码,通过TouchPanel的Getstate()方法实现。
protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here TouchMessage=” ”; TouchCollection tc = TouchPanel.GetState(); //由于GetState获得是状态的集合,所以需要使用foreach取出其中的每个状态。 //通过tc.Count的属性,可以获得集合的数目 foreach (var location in tc) { TouchMessage + = string.Format(" ID:{0}\n Location:{1}\n Position:{2}\n tc.Count:{3}\r\n", location.Id, location.State, location.Position,tc.Count); } base.Update(gameTime); }
然后在Draw方法中绘制出SpriteFont。
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); // TODO: Add your drawing code here spriteBatch.DrawString(spritefont, TouchMessage, Vector2.Zero, Color.Black); spriteBatch.End(); base.Draw(gameTime); }
当手触碰到屏幕时,第一个状态是Pressed,不过很快会变成Moved,当手放开时会出现Released状态,然后会显示没有信号,即TouchMessage内容为空,因为我们是用鼠标在模拟器上点击,只有一个点,当放开鼠标时,就会没有任何状态所以TouchMessage内容为空。
转载于:https://blog.51cto.com/potential/1402581
Windows Phone 7 中TouchPanel的触控操作相关推荐
- mac安装双系统中Windows系统无法识别键盘和触控板
mac安装双系统中Windows系统无法识别键盘和触控板 浅记一下解决这个问题的过程 mac安装了双系统后,第一次使用没有问题,第二次进入windows系统发现键盘和触控板都没有反应.上网搜索这个问题 ...
- Windows Phone 7 XNA触控操作之Gestures
这一讲我将集中讨论Gestures(手势),以及如何在Silverlight应用程序中使用XNA程序集来简单地识别触控输入. 什么是XNA? 这整个系列的焦点是Silverlight,XNA技术可在W ...
- Windows phone 8 学习笔记(1) 触控输入
Windows phone 8 学习笔记(1) 触控输入 原文:Windows phone 8 学习笔记(1) 触控输入 Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同 ...
- linux多点触摸屏驱动程序,Linux系统实现支持多点触控操作[视频]
虽然大多数人目前还不会购买拥有触控屏的设备,不过在Windows 7的大力推动下,触控操作已经开始流行了起来.然而Linux目前却无法支持这一功能,这让很多用户十分郁闷,不过来自ENAC Intera ...
- 从应用模式看 计算机应用经历了,触控操作堪比鼠标 Win 10平板电脑体验
1Windows 10入市 经历种种艰辛 平板用户的操作交互主要是以触控为主,所以更倾向于移动端的iOS与Android更会得到平板用户们的心.反而是一直PC最强操作系统的Windows,只有在使用了 ...
- 【Unity3D】利用Touch类编写手游触控操作演示
目录 1.效果展示 2.博客介绍 3.具体思路和写法 (1)Touch类介绍 (2)编写Touch管理类 (3)修改摇杆控制 4.资源下载 5.推送 6.结语 1.效果展示 2.博客介绍 手游开发和端 ...
- Windows XP系统中实用的命令及操作技巧
Windows XP系统中实用的命令及操作技巧 转贴自:电脑报 想在命令提示符窗口中输入重复命令时,只须按F7键,就会出现图形界面,然后选择你想输入的命令即可. 一"符"安天下利用 ...
- windows7中的多点触控中的手势
每当用户触摸触敏式 Windows 7 设备时,Windows 7 多点触控平台都会向您的应用程序发送手势消息 WM_GESTURE.这是现成的免费行为,如果您希望停止接收此类消息,则需要选择退出. ...
- vspy如何在图形面板显示报文_触想激光切割解决方案中嵌入式工业触控显示器有何优势?...
方案背景 根据专家预测,国内的激光市场仍处于高速的增长阶段.目前国内的激光产业主要在深圳.武汉两地聚集,其中深圳是国内的重要销售市场,并且以多年的发展经验,领先了其他区域. 在激光市场快速增长的趋势下 ...
最新文章
- python抠图_python和opencv实现抠图
- windows server 2008下搭建DHCP服务器
- 贵州省新农合业务系统容灾技术支撑服务项目
- Linux操作_常用命令操作练习
- SAP UI5 xml view content parse
- 【转】漫谈ANN(2):BP神经网络
- 2018年AI专业最全报考指南:去哪学?怎么去?
- 【HeadFirst设计模式——开篇】
- 将csv添加到mysql,将CSV导入到mysql表
- 开源 非开源_开源突破“舒适区”
- 二叉线索树的先序、中序、后序的线索化及其遍历
- rabbitmq channel对象的方法
- 这个黑科技耳机方便又时尚,听歌也不怕坐过
- 【转】一个小妙招能让你在服装上省下好多rmb
- 酷派android升级失败,酷派大神X7刷机失败变砖开不了机 救砖教程
- python自带的库有哪些_吐血整理!140种Python标准库、第三方库和外部工具都有了...
- 家庭监控,网络摄像头(OpenWRT平台下Mjpg-Streamer+Ngrok实现方案)
- 怎样批量将图片转成PDF格式?图片转换PDF操作方法
- 新款 2018款macbook Pro 装双系统教程
- 主板上集成显卡的计算机在进行显示工作,电脑显卡怎么看