5设计支持手势操作的 XNA 游戏.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘要 上一回我们为大家介绍了更多的 XNA Framework 支持游戏开发的类别,包括支持输入控制,音效播放,以及背景音乐播放控制的类别等等,让读者能够为所制作的游戏程序加入更丰富的游戏效果。这一回我们将要为大家介绍进阶的输入控制技巧,让使用者可以利用 Windows Phone 7 智能型手机支持多点触控的触控屏幕控制游戏程序的执行。 认识手势操作 在上一回的介绍中,我们学会如何利用 TouchPanel 类别的 GetState 方法查询智能型手机的触摸屏的状态,并依据使用者触碰在触控屏幕的位置移动游戏程序显示的图形的位置。 呼叫 TouchPanel 类别的 GetState 方法查询触控屏幕的状态并判断用户触碰触控屏幕的位置只是最简单的触控屏幕控制技巧,除了支持取得触控屏幕的状态以外,触控屏幕还支持用户进行多种不同的控制,包括触碰、触碰不放、水平拖曳、垂直拖曳、自由拖曳、以及轻拂等操作。表1 所示即为触控屏幕的各种状态的说明: 表1:触控屏幕的各种状态的说明 操作动作 说明 Tap 触碰。触碰触控屏幕后放开,没有移动的动作。 DoubleTap 连续触碰。连续触碰同一个位置两次。 Hold 点住不放。触碰后不放达一段时间。 VerticalDrag 垂直拖曳。触碰屏幕后上下移动。 HorizontalDrag 水平拖曳。触碰屏幕后左右移动。 FreeDrag 自由拖曳。触碰屏幕后往任意方向移动 DragComplete 拖曳结束。 Flick 轻拂。触碰屏幕后往任意方向拂动后离开屏幕。 Pinch 同时便用两个手指头触碰触控屏幕后移动。 PinchComplete Pinch 操作结束。 以 XNA 为基础的游戏程序可以利用表1所列的各种触控屏幕状态判断用户执行的触控操作种类,以反应使用者的触控操作。 [注意] 以 XNA 为基础的游戏程序必须启用触控功能才能够让游戏的使用者进行触控操作,如果已启用 Pinch 操作功能,则当用户利用两个手指头同时触碰触控屏幕并进行移动时,就会产生 Pinch 操作,而不是两个不同的拖曳操作,如果未启用 Pinch 操作功能,则所产生的就不是 Pinch 操作,而是依据两个触碰位置的平均为准的单一拖曳操作。 启用手势操作支持 以 XNA 为基础的游戏程序必须设定 TouchPanel 类别的 EnabledGestures 属性,才能够启用手势操作功能,以支持用户以手势操作游戏程序。 程序设计师可以在 Game1 类别的 Initialize 方法执行设定 TouchPanel 类别的 EnabledGestures 属性的动作,以启用手势操作支持,做法如下: TouchPanel.EnabledGestures = GestureType.Hold | GestureType.Tap | GestureType.DoubleTap | GestureType.FreeDrag | GestureType.Flick | GestureType.Pinch; [说明] 请注意在上述的程序中,GestureType.FreeDrag 设定表示要支持使用者以自由拖曳的方式操作游戏程序,设定了 GestureType.FreeDrag 就已经涵盖 GestureType.VerticalDrag 设定和 GestureType.HorizontalDrag 设定。而 DragComplete 状态和 PinchComplete 状态代表触控动作结束的状态,不需要启用。 [注意] 以 XNA 为基础的游戏程序可以视需要启用需要使用的触控功能,例如只支持用户利用触控的方式选取菜单的游戏程序,就可以仅启用 Tap 和 VerticalDrag 两种触控功能,让用户以垂直拖曳的方式卷动游戏程序提供的菜单,再触碰欲选择的菜单,其他不需要用到的触控控制功能就不需要启用,避免启用多种触控操作功能,造成判断触控操作动作的逻辑复杂,进而影响到触控的精确度和游戏程序执行的效能。 处理使用者的手势操作 启用了手势操作功能之后,以 XNA 为基础的应用程序可以在 Game1 类别的 Update 方法中呼叫 TouchPanel 类别的 ReadGesture 方法取得用户的手势操作信息。请注意读取使用者的手势操作的做法和呼叫 TouchPanel 类别的 GetState 方法读取触控面板的状态的做法不同,因为用户对游戏程序的触控操作会产生多个手势信息,来不及被游戏处理的手势信息会被存放到

文档评论(0)

phljianjian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档