游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: chengen

游戏中,物体的控制(请教)

[复制链接]

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-7-29 16:59:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

谢谢帅呆酷毙纵横宇内盖世无双俊美绝伦貌胜潘安文过欧阳诗胜李白武压吕布谋过卧龙义比关公才超莫争的TaoshaGod,祝你……
我再看一下后来的两部分!回来再告诉你看的结果!!


谢谢 ljm 的明确答复,使我少了有多烦恼!

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2005-7-29 17:24:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

dx9b的例子中lightingVS有多运动物体的绘制

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-7-30 12:36:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

谢谢seer的提示

但我用的是Microsoft DirectX 9.0 SDK (October 2004)
不知有没有,回去找找看

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2005-7-30 13:36:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

DX9SDK第一版里有,以后的示例是用的新框架,都不一样了

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-7-30 18:53:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

这样子啊,谢谢各位大哥,小弟受益非浅!
如果哪位大哥有多物体控制的列程,不知可否传上来让小弟学习学习!

(TaoshaGod兄提供的列程小弟刚打印出来!此处请过了!)

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2005-7-31 21:29:00 | 显示全部楼层

Re: 游戏中,物体的控制(请教)

研究了一下lightningVS的源码,头都晕了!
貌似是用D3DXMatrixTranslation多次设置世界的矩阵,然后DrawSubset
对于dx9c sdk,可以参考ShadowMap 这个例子,里面有飞机和汽车的同时运动。

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2005-8-1 17:16:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

Device只有一个,m_pD3DDevice
你的物体有3(或n)个,m_pMesh1,m_pMesh2,m_pMesh3

Render函数里
分别得到下一时刻三个物体的位置、角度、大小的变换矩阵,matMesh1,matMesh2,matMesh3

m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh1);
m_pMesh1->Render();
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh2);
m_pMesh2->Render();
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh3);
m_pMesh3->Render();

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-2 13:59:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

谢谢seer和Amitofo以及前面的所有朋友,
在你们的帮助下,,我终于会了,,

嗯 ,感觉记忆还挺深的!
哈哈!!

6

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
 楼主| 发表于 2005-8-2 18:40:00 | 显示全部楼层

Re:游戏中,物体的控制(请教)

总结一下:
在dx中,device控制着整个显示!在一个device中,可以建一个类来封装物体的网络及其渲染等等成员,然后,每个物体都是这个类的实例化对象;对各个物体的控制可以在一个主render过程中进行如:
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh1);
m_pMesh1->Render();
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh2);
m_pMesh2->Render();
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh3);
m_pMesh3->Render();
最后再来个m_pD3DDevice-&gtresent(……)就可以了
另外值得一提的是,各个物体的渲染最好用数组和循环来实现,如:
for (i=;i<n;i++)
{
      m_pD3DDevice->SetTransform(D3DTS_WORLD, &matMesh);
      m_pMesh->Render();
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 16:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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