游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2298|回复: 3

为什么我用drawtext写在sprit上是一个字一个sprite,我想要的

[复制链接]

75

主题

102

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2009-3-11 18:17:00 | 显示全部楼层 |阅读模式
我想做人物头上的文字,但是做出来是一个字一个sprite 造成的结果是每个单独的文字都随着相机角度的不同而单独的翻转,而不是整行的翻转,类似local坐标和world坐标一样


g_pFont->DrawText(g_pSprit,_T("大小多少"),100,&tc,DT_TOP|DT_LEFT|DT_VCENTER,0xffffffff);

这里面的大小多少是单独旋转的,不是作为整个文字旋转。。。




19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-3-11 19:28:00 | 显示全部楼层

Re:为什么我用drawtext写在sprit上是一个字一个sprite,我想要

要旋转的话,不能用d3dxsprite的billboarding功能,要自己计算完整的billboarding变换矩阵,设置到d3dxsprite上。

75

主题

102

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2009-3-12 13:14:00 | 显示全部楼层

Re: Re:为什么我用drawtext写在sprit上是一个字一个sprite,我想

qrli: Re:为什么我用drawtext写在sprit上是一个字一个sprite,我想要的效果是整行在一个sprite上

要旋转的话,不能用d3dxsprite的billboarding功能,要自己计算完整的billboarding变换矩阵,设置到d3dxsprite上。




你的意思是不是说,要吧文字写到一个纹理上,在把这个纹理帖到sprite上,再来旋转这个sprite,这样的方式行的通,不过我想drawtext不会这样弱吧,我觉得这个功能应该很常见的。。。

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-3-12 14:02:00 | 显示全部楼层

Re:为什么我用drawtext写在sprit上是一个字一个sprite,我想要

不是,是自己计算billboarding矩阵,设置到ID3DXSprite.SetTransform上,且ID3DXSprite.Begin()时不要加billboarding的flag。原理是d3dxsprite为每个字符计算billboarding矩阵,而你需要为整个字符串用同一个矩阵。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 03:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表