请问如何在DIRECTX 8.0 中

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

另:有人作过骨架系统吗?教教我
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用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;
}

8,301

社区成员

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

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