|
|
发表于 2006-7-7 15:50:00
|
显示全部楼层
Re:详解TV3D样例-山地射击
程序是原来是v6.1里的, 到了v6.2上运行就有问题了, 五星勋章没那个问题, 因为我不是用那个方法写的, MDL1和MDL2模型的操作方式根本不一样.
看我的五星勋章里的程序:
'定义模型
Public weapon2 As New TVActor2
'读模型
weapon2.Load "MODEL\GUN1.mdl" 'GUN1.mdl是枪模型
'换弹夹
If zd2 = 0 And Oldweapon < TV.TickCount - 300 Then 'ZD2是子弹数量
mSounds("shotreload").Play: weapon2.SetAnimationID 1: weapon2.PlayAnimation 30 '上弹声音和动画
zd2 = -1
End If
If zd2 = -1 And Oldweapon < TV.TickCount - 3300 Then '换子弹的动画时间
weapon2.PlayAnimation 0 '换完子弹结束动画.
zd2 = 30 '加子弹
End If
'显示枪
If wp = 2 Then 'WP是枪的编号, 五星勋章里1是手枪, 3是机枪.
weapon2.SetScale 0.2, 0.2, 0.4: weapon2.SetPosition PosX, PosY - 1, PosZ '枪的尺寸,位置, 坐标.
If angy <> 0 Then arcc = Atn(Sin(angy)) '枪的角度
weapon2.SetRotation 0, 180 - ang * 180 / 3.14, -arcc * 180 / 3.14
If B1 <> 0 And Not Shot And zd2 > 0 Then
weapon2.SetAnimationID 3: weapon2.PlayAnimation 40 '选枪的动画编号和动画速度
mSounds("Shot").Stop_: mSounds("Shot").Play '开枪的声音
zd2 = zd2 - 1 '射击时减子弹
If zd2 <= 0 Then zd2 = 0 '子弹打完
Oldweapon = TV.TickCount
NEWweapon = TV.TickCount
Shot = True
End If
End If
...........................................................
TV.TickCount分别是控制开枪子弹间隔, 换子弹时间, 枪的动画等, 部分程序省略. |
|