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 责编:豆豆技术应用