C#+Direct3D9.0开发实例之月亮绕着地球转

http://tech.ddvip.com   2006年08月02日    社区交流

本文详细介绍C#+Direct3D9.0开发实例之月亮绕着地球转

  在下面的构造函数代码中,首先创建鼠标设备,并初始化回调事件:

  public CMouse(System.Windows.Forms.Control control)
{
 mouse = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Mouse);
 mouse.SetCooperativeLevel(control, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
 mouse.Properties.AxisModeAbsolute = false;
 MouseUpdated = new System.Threading.AutoResetEvent(false);
 mouse.SetEventNotification(MouseUpdated);
 mouse.Acquire();
 Update();
}

  下面的Update()方法中获得鼠标的坐标值,并赋给私有成员变量:

  public void Update()
{
 MouseState state = mouse.CurrentMouseState;
 x = state.X;
 y = state.Y;
 z = state.Z;
 buttons = state.GetMouseButtons();
}

  还需要有一个函数来检测鼠标左键是否按下:

  public bool LeftButtonDown
{
 get
 {
  bool a;
  return a = (buttons[0] != 0);
 }
}

  六、大结局

  现在已经做完了准备工作,返回到窗口代码中,需要对这里的代码重新进行一些调整:

  在图形初始化函数中创建一个CModel类及CMouse类:

  private CModel model = null;
private CMouse mouse = null;
private bool leftbuttondown = false;
private float mousexloc;

  添加对鼠标初始化的方法:

  public void InitializeInput()
{
 mouse = new CMouse(this);
}

作者:dandanCool    责编:豆豆技术应用

正在加载评论...