|
|

楼主 |
发表于 2005-12-21 22:39:00
|
显示全部楼层
Re:兔子好厉害,要支持!
我写的TV3D例子他很认真的加上注释,这种认真的精神值得我们学习。
例子也可以给学TV3D的人做个示范例子。
Dim TV As TVEngine '创建一个TVEngine实例
Dim Scene As TVScene '创建一个TVScene场景
Dim isRunning As Boolean '创建一个Boolean,用来判断是否可以刷新3d
Private Type TankType '自定义坦克的类型,包括了TVMesh
Model As TVMesh
End Type
Dim Tank As TankType '创建一个TankType的实例
Private Sub Form_Load()
Me.Height = 600 * 15: Me.Width = 800 * 15 '设置窗口大小为800*600
Set TV = New TVEngine
Set Scene = New TVScene
TV.SetWatermarkParameters TV_WATERMARK_TOPRIGHT, 0.1 'LOGO位置
DoEvents '让程序可以处理别的事
TV.Initialize Me.hWnd
'TV.ResizeFullscreen 800, 600, 16 '满屏幕显示,分辨率,后面是颜色
Set Inp = New TVInputEngine
'定义坦克1
Set Tank.Model = Scene.CreateMeshBuilder("TANK") '给坦克的模型创建TANK这个实例名
Tank.Model.LoadXFile App.Path + "\tank.x", , False '读X文件
Tank.Model.ScaleMesh 5, 5, 5 '坦克尺寸
Tank.Model.SetRotation 15, 0, 10 '坦克角度
isRunning = True '可以开始刷新TV3D,可以控制他设置屏幕开关
Me.Show '显示屏幕
'当isRunning为False或者按下了ESC键跳出循环
Do Until isRunning = False Or Inp.IsKeyPressed(TV_KEY_ESCAPE) = True
TV.Clear '清除缓冲屏幕
Tank.Model.SetPosition 20, -10, 200 '坦克位置
Scene.RenderAllMeshes '渲染屏幕
TV.RenderToScreen '刷新屏幕
DoEvents '让程序可以处理别的事
Loop
Set TV = Nothing
End
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
isRunning = False '让屏幕跳出do loop
End Sub |
|