我是靠谱客的博主 怡然店员,最近开发中收集的这篇文章主要介绍Windows Phone 7 中TouchPanel的触控操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Windows Phone 7 有四种用户交互的方式:

  1. 按键
  2. 触控
  3. 手势
  4. 外设(例如重力感应等)

通常来说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>(@"FontsSpriteFont");

然后我们需要在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}rn", 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的触控操作的全部内容,希望文章能够帮你解决Windows Phone 7 中TouchPanel的触控操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部