3DSTATE for Visual basic.Net开发(六)
来源:互联网 发布:赋码软件 编辑:程序博客网 时间:2024/06/05 10:24
3DSTATEfor Visual basic.Net开发
注:转载请说明来源处!
四、User Input and Program Loops用户输入及程序循环
输入包括键盘输入和鼠标输入。
1、键盘
(1)Form_KeyPress及Form_KeyUp返回一个ASC码值。
(2)GetAsyncKeyState获取键盘。如果键盘没有被按过,则返回值为0。
但是关于键盘输入并不是在Form_KeyPress或Form_KeyDown函数中调用,而是在Timer函数体中。
eg:
If GetAsyncKeyState(Keys.Escape) <> 0 Then
Close() ' [Esc] button is pushed
End If
如果键盘Esc被按过,这返回的值>0,于是退出。
2、鼠标
(1)Form_MouseUp
首先需要将点击的二维点转换为三维点,采用函数STATE_engine_2D_point_to_3D
这里有一个例子,如下:
PrivateSub Form1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) HandlesMyBase.MouseDown
If e.Button <> MouseButtons.Left Then
Return
EndIf
Dim ObjectHandle As UIntPtr
Dim PolygonHandle As UIntPtr
Dim PositionXYZ(2) AsDouble
If OK <> STATE_engine_2D_point_to_3D(e.X, e.Y, PositionXYZ, ObjectHandle, PolygonHandle) Then
Return
EndIf
MsgBox("X:" + PositionXYZ(0).ToString() + ",Y=" + PositionXYZ(1).ToString() + ",Z=" + PositionXYZ(2).ToString())
EndSub
(2)Form_MouseMove
通过函数STATE_engine_translate_movement_on_screen_to_movement_in_world可以实现鼠标移动对象。
(3)光标的位置
可以通过Form1_MouseMove中e.X和e.Y来获得。隐藏光标和显示光标Cursor.Hide()以及Cursor.Show()
在编程过程中需要注意的:
1、一般程序运行出错都会将错误信息记录到Error.Log文本中。在编写程序的过程中,首先必须检查返回值,要防止返回值为空。
2、渲染:
private Sub Render()
If STATE_engine_is_engine_empty() = NO And Camera <> 0 Then
STATE_engine_render frmMain.hwnd, lngCamera
End If
End Sub
在渲染之前需要检查引擎是否存在以及是否有摄像机。
- 3DSTATE for Visual basic.Net开发(六)
- 3DSTATE for Visual basic.Net开发(二)
- 3DSTATE for Visual basic.Net开发(三)
- 3DSTATE for Visual basic.Net开发(四)
- 3DSTATE for Visual basic.Net开发(五)
- 3DSTATE for Visual basic.Net开发(七)
- 3DSTATE for Visual basic.Net开发(八)
- 3DSTATE for Visual basic.Net开发(九)
- 3DSTATE for Visual basic.Net开发(十)
- 3DSTATE for Visual basic.Net开发(十一)
- 3DSTATE for Visual basic.Net开发(十二)
- 3DSTATE for Visual basic.Net开发(十三)
- 3DSTATE for Visual basic.Net开发(一)
- Security for Microsoft Visual Basic .NET
- 转:Visual Basic.NET快速开发MIS系统(3)
- Visual Basic.NET快速开发MIS系统
- Visual Basic.NET快速开发MIS系统
- Preparing Your Visual Basic 6.0 Applications for the Upgrade to Visual Basic .NET
- 3DSTATE for Visual basic.Net开发(二)
- 3DSTATE for Visual basic.Net开发(三)
- 3DSTATE for Visual basic.Net开发(四)
- php里session的用法(超级经典)
- 3DSTATE for Visual basic.Net开发(五)
- 3DSTATE for Visual basic.Net开发(六)
- 3DSTATE for Visual basic.Net开发(七)
- 3DSTATE for Visual basic.Net开发(八)
- 3DSTATE for Visual basic.Net开发(九)
- 3DSTATE for Visual basic.Net开发(十)
- 3DSTATE for Visual basic.Net开发(十一)
- 3DSTATE for Visual basic.Net开发(十二)
- 3DSTATE for Visual basic.Net开发(十三)
- 电影《暮光之城》不得不爱