Direct3D 中精灵绘制与移动的深入探索
1. 可复用的 SpriteDraw 子程序
在 Direct3D 里绘制 D3DXSprite 时,有一个可复用的 SpriteDraw 子程序能将相关操作整合在一起,自动处理各项事务。以下是该子程序的代码:
Public Sub SpriteDraw( _
ByRef tex As Direct3DTexture8, _
ByRef spr As TSPRITE, _
ByVal alpha as Long)
'设置精灵的位置
Dim vecPos As D3DVECTOR2
vecPos.x = spr.x
vecPos.y = spr.y
'设置精灵的缩放因子
Dim vecScale As D3DVECTOR2
vecScale.x = spr.ScaleFactor
vecScale.y = spr.ScaleFactor
'设置精灵的旋转值(未使用)
Dim vecRot As D3DVECTOR2
vecRot.x = 0
vecRot.y = 0
'开始绘制
spr.spriteObject.Begin
'设置源矩形
Dim r As DxVBLibA.RECT
r.Left = (spr.CurrentFrame Mod spr.FramesPerRow) * spr.width
r.Top = (spr.CurrentFrame \ spr.FramesPerRow) * spr.height
r.R
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



