Welcome

首页 / 软件开发 / .NET编程技术 / XNA入门教程(二) 移动控制

XNA入门教程(二) 移动控制2010-12-02 博客园 Edwin Tai上一章,我们主要介绍了何谓XNA

并且做了第一个XNA HelloWorld

本文,将紧接着上文. 继续我们的XNA之旅.

上篇的最后,我们通过

MouseState ms=Mouse.GetState();//获得鼠标相关信息

获得了鼠标的Point位置,让自己的图像显示在鼠标的位置,因此做到了自定义 光标的功能.

现在,我们对XNA的控制器作全面阐述

XNA的控制器

在XNA的控制器,主要定义在 Microsoft.Xna.Framework.Input下,

分为以下几种

Mouse 鼠标

Keyboard 键盘

GamePad 手柄

在默认模板建立的HelloWorld中,我们会发现

if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();

这其实就是判断如果按下了游戏手柄的Back按钮时,自动退出。

同样,我们可以通过以上Input的相关state来获得相关输入端的操作,如按 钮,位置等等。

一个简单的例子

现在,我们尝试在界面中绘制一个简单的 sprite(精灵),并实现鼠标和 键盘的同时控制

protected override void Update(GameTime gameTime)
{
KeyboardState state = Keyboard.GetState ();
if (state.IsKeyDown(Keys.Up))
{
this.Position.Y -= 10;
}
if (state.IsKeyDown(Keys.Down))
{
this.Position.Y +=10;
}
if (state.IsKeyDown(Keys.Left))
{
this.Position.X -= 10;
}
if (state.IsKeyDown(Keys.Right))
{
this.Position.X += 10;
}
base.Update(gameTime);
}