请问如何在DIRECTX 8.0 中

mjm_d 2002-01-26 08:42:32
请问如何在DIRECTX 8.0 中写文字
如何绘制2D图片(从文件中读,如*.jpg,*.bmp)
高手指教(代码)

另:有人作过骨架系统吗?教教我
...全文
88 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjm_d 2002-01-28
  • 打赏
  • 举报
回复
写字我会了,只要用D3DXFONT就行了
可以告诉我如何绘图吗?
我会加分的
mjm_d 2002-01-28
  • 打赏
  • 举报
回复
我没有装全
所以没有<common>文件夹
哪里有下载
mjm_d 2002-01-27
  • 打赏
  • 举报
回复
没人会吗?
CTimerain 2002-01-27
  • 打赏
  • 举报
回复
to:mjm_d
你的Clay有问题
CTimerain 2002-01-27
  • 打赏
  • 举报
回复
倒................
阿敏,这个代码我怎么看着怎么眼熟啊
不会是在《ROAM》的那段吧
对了
写注解,别老不写
mjm_d 2002-01-26
  • 打赏
  • 举报
回复
HRESULT C3DPanel::Create(LPDIRECT3DDEVICE8 pd3dDevice, LPCTSTR strTexture)
{
HRESULT hr = pd3dDevice->CreateVertexBuffer(4 * sizeof(PANELVERTEX),
D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, 0,
D3DPOOL_DEFAULT, &m_pVB);
if (FAILED(hr))
return hr;
pd3dDevice
return Clay3DUtil::CreateTexture(pd3dDevice, strTexture, m_pd3dTexture);
}

return Clay3DUtil::CreateTexture(pd3dDevice, strTexture, m_pd3dTexture);
没有Clay3DUtil
mjm_d 2002-01-26
  • 打赏
  • 举报
回复
谢谢
研究中……
分一会而给
可以再教我绘图吗?(*.bmp,*.jpg)
AMin2001 2002-01-26
  • 打赏
  • 举报
回复
3DPanel.h:

#ifndef _3DPANEL_H
#define _3DPANEL_H

#include <D3DX8.h>

//-----------------------------------------------------------------------------
// Name: class C3DPanel
// Desc:
//-----------------------------------------------------------------------------
class C3DPanel
{
LPDIRECT3DVERTEXBUFFER8 m_pVB; // VertexBuffer for rendering text
LPDIRECT3DTEXTURE8 m_pd3dTexture;

public:
// Initializing and destroying device-dependent objects
HRESULT Create(LPDIRECT3DDEVICE8 pd3dDevice, LPCTSTR strTexture);
HRESULT Render(LPDIRECT3DDEVICE8 pd3dDevice, const RECT& rect, D3DCOLOR clr = 0xFFFFFFFF);

// Constructor / destructor
C3DPanel();
C3DPanel(LPDIRECT3DDEVICE8 pd3dDevice, LPCTSTR strTexture);
~C3DPanel();
};

#endif // _3DPanel_H

3DPanel.cpp:
#include <3DPanel.h>

struct PANELVERTEX
{
D3DXVECTOR4 vPos;
D3DCOLOR Color;
float u, v;
};

#define D3DFVF_PANELVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)

inline PANELVERTEX InitPanelVertex(const D3DXVECTOR4& vPos, D3DCOLOR color,
float u, float v)
{
PANELVERTEX vec;
vec.vPos = vPos;
vec.Color = color;
vec.u = u;
vec.v = v;
return vec;
}

//-----------------------------------------------------------------------------
// Name: C3DPanel()
// Desc: constructor
//-----------------------------------------------------------------------------
C3DPanel::C3DPanel()
: m_pVB(NULL),
m_pd3dTexture(NULL)
{
}

C3DPanel::C3DPanel(LPDIRECT3DDEVICE8 pd3dDevice, LPCTSTR strTexture)
: m_pVB(NULL),
m_pd3dTexture(NULL)
{
Create(pd3dDevice, strTexture);
}

C3DPanel::~C3DPanel()
{
SAFE_RELEASE(m_pVB);
SAFE_RELEASE(m_pd3dTexture);
}
//-----------------------------------------------------------------------------
// Name: Create
// Desc:
//-----------------------------------------------------------------------------
HRESULT C3DPanel::Create(LPDIRECT3DDEVICE8 pd3dDevice, LPCTSTR strTexture)
{
HRESULT hr = pd3dDevice->CreateVertexBuffer(4 * sizeof(PANELVERTEX),
D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, 0,
D3DPOOL_DEFAULT, &m_pVB);
if (FAILED(hr))
return hr;

return Clay3DUtil::CreateTexture(pd3dDevice, strTexture, m_pd3dTexture);
}

//-----------------------------------------------------------------------------
// Name: Render()
// Desc:
//-----------------------------------------------------------------------------
HRESULT C3DPanel::Render(LPDIRECT3DDEVICE8 pd3dDevice, const RECT& rect, D3DCOLOR clr)
{
if (pd3dDevice == NULL)
return E_FAIL;

pd3dDevice->SetTexture(0, m_pd3dTexture);
pd3dDevice->SetVertexShader(D3DFVF_PANELVERTEX);
pd3dDevice->SetStreamSource(0, m_pVB, sizeof(PANELVERTEX));

// Fill vertex buffer
PANELVERTEX* pVertices;
m_pVB->Lock(0, 0, (LPBYTE*)&pVertices, D3DLOCK_DISCARD);

float fLeft = float(rect.left);
float fTop = float(rect.top);
float fRight = float(rect.right);
float fBottom = float(rect.bottom);
pVertices[0] = InitPanelVertex(D3DXVECTOR4(fLeft, fTop, 0.9f, 1.0f), clr, 0, 0);
pVertices[1] = InitPanelVertex(D3DXVECTOR4(fRight, fTop, 0.9f, 1.0f), clr, 1, 0);
pVertices[2] = InitPanelVertex(D3DXVECTOR4(fRight, fBottom, 0.9f, 1.0f), clr, 1, 1);
pVertices[3] = InitPanelVertex(D3DXVECTOR4(fLeft, fBottom, 0.9f, 1.0f), clr, 0, 1);

// Unlock and render the vertex buffer
m_pVB->Unlock();
pd3dDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, 2);

return S_OK;
}
Directx8.0 SDK : 坦克战 v2.0 基本操作: A/菜单操作: 菜单选择:W、S 或 上、下方向键 菜单确定:回车 B/游戏操作: 方向控制:W、A、S、D或方向键 发射子弹:空格 暂停游戏:回车 退出到菜单:ESC 版本升级说明: 1.可以暂停游戏了。 2.使用DirectxSound提升了声音品质,解决了老版本不能混音的缺点。 3.添加了敌方的AI,敌人撞墙后会搜寻追踪玩家。 4.物品增加到6个,玩家和敌人都可以吃到随机出现的物品。 5.关卡增加到了十关。 6.增加了地图编辑器,可以自己编辑地图和运行。 7.重写了爆炸的即时粒子系统,模拟爆炸时弹片的飞旋效果。 游戏物品说明: 1.钢盔:可以暂时不损血(除却被炸弹炸到)。 2.坦克:可以增加1点血。 3.时钟:暂时冻结坦克的移动。 4.星型:增加子弹和坦克移动速度(累计的)。 5.炸弹:随机轰炸地图的任意地点,被炸到的话,对方损失1点血。 6.船: 可以过河。 补充: 每关开始将重设坦克属性,但玩家坦克的血将不补充。 代码说明: 1.重新编写了代码。 2.编程语言:使用VC++6.0 + Directx8.0 SDK。 3.用DirectxDraw实现基本绘图,用DirectxInput 实现游戏基本操作 4.首次学习并使用DirectxSound组件实现了混音效果。 5.尝试封装了Directx的这三个重要组件。 5.本人为非专业编程人员,代码难免有的地方比较乱和不规范,望大家多多谅解! 问题: 1.游戏在不同的机器上运行会有不同的速度。如何让游戏在不同的机器上都有相对稳定的运行速度呢? 2.坦克爆炸时,一些坦克会暂时不显示,不能解决. 3.我方和对方坦克的碰撞检测是个难题,主要是测到碰撞后坦克倒退时有时会退出边界或穿墙而引起错误。所以去除了。

8,324

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧