游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3203|回复: 6

请问下各位,用DIRECTX怎么实现精灵转身的画面

[复制链接]

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2011-10-23 10:46:00 | 显示全部楼层 |阅读模式
因为只有精灵朝向一个方向的图像,又不像自己弄一个朝向另外一个方向的图片了(而且也费时费力)。[em10]一开始,通过用镜像地址模式的方法发现不管用...我用LPD3DXSPRITE的接口加载纹理去实现精灵的显示和变换的,发现里面的方法也没有实现精灵的镜像处理[em18]。所以在现在请教一下各位大侠,怎么处理一个2D的精灵镜像变换,通过LPD3DXSPRITE加载纹理的办法。谢谢各位了    [em3]

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2011-10-23 10:52:00 | 显示全部楼层

Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

代码如下:
        D3DXMATRIX mat;
        D3DXMatrixTransformation2D(&mat,NULL,0,&scale,&center,rotation,&trans);

        spriteobj->SetTransform(&mat);

        int fx=(frame%columns)*width;
        int fy=(frame/columns)*height;

        RECT srcRect={fx,fy,fx+width,fy+height};

        spriteobj->Draw(image,&srcRect,NULL,NULL,color);
image是通过D3DXCreateTextureFromFileEx加载的
       

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2011-10-24 09:41:00 | 显示全部楼层

Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

各种引擎都搜索过了,发现没用LPD3DXSPRITE接口实现镜像的案例,也有人提出过这个问题,但是到最后都没有解决,只能实现图形的缩放,旋转(2D),位移。用这种方法还是老老实实准备两张素材吧,虽然LPD3DXSPRITE显示精灵很方便,但是这个应该是缺陷了。楼主已经把这个问题先放一边了,希望有高手能找到解决方法,谢谢...
附上两个链接
一个是镜像提问的
http://www.gamedev.net/topic/536279-how-do-i-mirror-sprite-frames/
一个是用两张素材实现的案例
http://www.experts-exchange.com/Programming/Game/Game_Graphics/DirectX/Q_24316226.html

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-10-24 20:32:00 | 显示全部楼层

Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

直接用纹理贴图的话,把贴图贴到一张正方形表面上,改换定点的纹理坐标就可以轻松实现翻转;
如果用LPD3DXSPRITE,你把矩阵再乘一个绕Y轴旋转180度的变换矩阵试试,不知道要不要关闭背面消隐?
我用OPENGL实现起来是比较简单的,DX不太了解

9

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2011-11-1 17:32:00 | 显示全部楼层

Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

这有何难,缩放参数为-1就可以完美实现镜像,x,y都可以设置,随便组合

1

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2011-11-3 22:36:00 | 显示全部楼层

Re: Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

无心大师: Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

这有何难,缩放参数为-1就可以完美实现镜像,x,y都可以设置,随便组合

真的很感谢 [em3]
把D3DXVECTOR2 scale(-1,scaling);的第一个值改为-1就是X轴翻转,第二个值就是Y轴翻转,已经实现功能了,谢谢楼上这位朋友...
现在我还准备了两个图片...还编了一个算法实现翻转素材动画的调用...哎,走弯路了...

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2011-11-4 14:40:00 | 显示全部楼层

Re:请问下各位,用DIRECTX怎么实现精灵转身的画面

哈哈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 23:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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