游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1952|回复: 4

用Sprite->Draw(...);后图片给拉长了,怎么办?

[复制链接]

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2006-7-16 22:42:00 | 显示全部楼层 |阅读模式
D3DXCreateTextureFromFileEx后,去掉了关键色,
然后用Sprite的Draw画出来,
但是画出的图跟原来的大小相比,高度给拉长了,
为什么的?
[em13] [em13] [em13]

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
 楼主| 发表于 2006-7-16 23:07:00 | 显示全部楼层

Re:用Sprite->Draw(...);后图片给拉长了,怎么办?

这是我用的代码
        D3DXCreateTextureFromFileEx(pd3dDevice,filename,D3DX_DEFAULT,D3DX_DEFAULT,1,0,D3DFMT_UNKNOWN,D3DPOOL_DEFAULT,D3DX_DEFAULT,D3DX_DEFAULT,D3DCOLOR_XRGB(255,255,255),NULL,NULL,&texture);//D3DX_DEFAULT,D3DX_DEFAULT,1,0,D3DFMT_UNKNOWN,D3DPOOL_DEFAULT,D3DX_DEFAULT,D3DX_DEFAULT,D3DCOLOR_XRGB(255,255,255),NULL,NULL,&texture);
        D3DXCreateSprite(pd3dDevice,&sprite);

        sprite->Begin(D3DXSPRITE_ALPHABLEND|D3DXSPRITE_SORT_TEXTURE);
        sprite->Draw(texture,&src,&D3DXVECTOR3(1.0f,1.0f,1.0f),&D3DXVECTOR3(x,y,z),D3DCOLOR_XRGB(255,255,255));
        sprite->End();

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2006-7-16 23:09:00 | 显示全部楼层

Re:用Sprite->Draw(...);后图片给拉长了,怎么办?

我以前也出现过此种情况,后来解决了,好象是D3DXCreateTextureFromFileEx的某个参数没设对,具体是哪个参数时间太长记不清了(不好意思),你自己去试很快能找到。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-7-16 23:42:00 | 显示全部楼层

Re:用Sprite->Draw(...);后图片给拉长了,怎么办?

你使用的图片大小必须是 2^n X 2^n ,例如32x32、128X128 ,而96X69是会出现拉大的问题,如果必须这样做的话,你只有在渲染时把它按比例缩小了(除标准大小外,所放比例是一样的,不过我不记得了,自己摸索吧)

39

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
 楼主| 发表于 2006-7-17 13:05:00 | 显示全部楼层

Re:用Sprite->Draw(...);后图片给拉长了,怎么办?

好了,谢谢大家
我改成D3DFILTER_NONE就可以了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 23:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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