酱坛子

专注C++技术 在这里写下自己的学习心得 感悟 和大家讨论 共同进步(欢迎批评!!!)

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  66 Posts :: 16 Stories :: 236 Comments :: 0 Trackbacks

公告

王一伟 湖南商学院毕业 电子信息工程专业

常用链接

留言簿(19)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 385385
  • 排名 - 64

最新随笔

最新评论

阅读排行榜

评论排行榜

在一个网游中需要在角色的头顶显示角色的姓名,当角色被一个房子挡住的时候,他的姓名也应该看不到,或者是挡住一半,这就需要使用Z值测试。如果你使用了ID3DXFont,会发现它并没有一个带z值参数的接口函数,要使得ID3DXFont支持z值,需要多做几个步骤,我感觉这就是MS的风格。:(
 MS声称ID3DXFont是一个完全2D的接口,所以如果你想接入z值测试,那么必须通过ID3DXSprite!不过用法倒也简单:
 1、创建一个ID3DXFont对象和一个ID3DXSprite对象;
 2、调用ID3DXSprite对象的Begin():
       m_pD3DSprite->Begin(D3DXSPRITE_ALPHABLEND);
 3、将ID3DXSprite对象的Transform矩阵:
       D3DXMATRIX matrix;
       D3DXMatrixIdentity(&matrix);
       D3DXMatrixTranslation(&matrix, 0.0f, 0.0f, z);
       m_pD3DSprite->SetTransform(&matrix);
 4、调用一下ID3DXSprite的End()才能真正的画出文字。
posted on 2007-01-04 00:31 @王一伟 阅读(911) 评论(2)  编辑 收藏 引用

Feedback

# re: 使用带Z值测试的ID3DXFont 2007-05-10 23:13 酱菜
问一下大家
为什么我的D3DXMatrixTranslation(&matrix, 0.0f, 0.0f, z);
里的z超过1.0f了我的文字就画不出来了呢  回复  更多评论
  

# re: 使用带Z值测试的ID3DXFont 2007-12-07 14:56 鼯鼠
你好~~你的问题非常简单
因为Z的深度范围是(0.0~1.0)

不过我有一个问题,我看你对ID3DXSprite了解还是挺多的,我想我在屏幕上创建四个顶点做成一个面片。现在我要把一张图片用ID3DXSprite画在这个面片上,如何画?
我看到的大多数画图例子都是画在屏幕上的,我有特殊需求,必须要画在指定的面上,这个面不会翻转,也不会变形,仅仅是一个多边形面。你有办法吗?
个人信箱m9551@163.com
http://www.dingge.com/forum/
QQ:324007255  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理