如何在WP7上用XNA写2D游戏(四)
第 3 章 创建XNA 游戏菜单
3.1 WP7里XNA游戏的触控操作
上一章节,我们了解了制作XNA 2D游戏的常用组件已及使用ScreenManage管理场景。可以说对XNA 2D游戏有了入门,不过我们玩游戏不会一开始就进入到游戏场景里的,总是会有启动界面,loading界面,然后到了游戏菜单。然后让用户选择“开始”,“继续”,“帮助”等选项,如下图3-1,就是一个常见的游戏界面。
图3-1
和PC上的运行的XNA游戏不同,我们在WP7上是靠触摸屏操作的,这和用鼠标操作还是不同的。那么我们就需要先了解WP7里XNA的触控操作。
现在的触摸屏手机基本都支持“多点触控”,比如拉伸,缩放,玩过Iphone上《愤怒的小鸟》就明白游戏画面可以用两个手指拉伸和缩放。还有很有名的《水果忍者》也是“多点触控”的好游戏,你用三个手指在屏幕上划拉,屏幕上就显出三个爪子印。
当然啦"单点触摸"也是支持的,你用一个指头也能操作的,比如你用一个指头在《愤怒的小鸟》里拉动弹弓。我们就从简单的“单点触控”开始了解吧。
当我们把一个指头在屏幕上操作,可能会有这样三种动作:按,移动,移开。就拿《愤怒的小鸟》里拉动弹弓这个动作,首先我们是按下一个指头,然后向后移动,然后在屏幕上移开这个手指。
那么这三个操作在WP7的XNA里如何获取呢?我们就需要了解XNA里的TouchPanel和TouchCollection这两个类。
TouchCollection touchState= TouchPanel.GetState();
Foreach(TouchLocation location in touchState)
{
switch(location.State)
{
case TouchLocationState.Pressed://按下
……
break;
case TouchLocationState.Moved://移动
……
break;
case TouchLocationState.Released://释放
……
break;
}
}
和触控操作类似的还有叫“手势”的,也算复杂的触控吧。
TouchPanel.EnabledGestures = GestureType.FreeDrag;//用来指定手势,必须要先设定,否则报错
if (TouchPanel.EnabledGestures != GestureType.None)
{
switch (TouchPanel.ReadGesture())
{
case GestureT
- 发表评论
-
- 最新评论 更多>>
您可能感兴趣的文章
- Windows Phone 7 开发之Microsoft.Phone.Tasks中
- 小试Sketchflow for Windows Phone 7
- Pocket PC获取路径的六种方法
- Windows Phone 实用开发技巧(23):强制关闭SIP
- Windows Phone 7 最新的开发工具库
- Windows Phone 7 开发探索笔记5——页面间导航
- Windows Phone 实用开发技巧(2):使用TombstoneHelp
- Windows Phone 实用开发技巧(11):让StackPanel中的
- Windows Phone实用开发技巧(1):保存图片及加载图片
- 白话算法(7) 生成全排列的几种思路(三) 临位对换法