游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1579|回复: 3

关于 天空 的问题,急!

[复制链接]

11

主题

97

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
QQ
发表于 2004-8-14 16:41:00 | 显示全部楼层 |阅读模式
小弟初学D3D,就遇上此问题,苦思一天不的其解,来此求救高人!

附上代码:
#include "Box.h"



CBox::CBox()
{
        m_pD3DDevice = NULL;
        m_pVertexBuffer = NULL;
        m_pTexture                = NULL;
        g_time = 0;
}

CBox::~CBox()
{
        SafeRelease(m_pD3DDevice);
        SafeRelease(m_pVertexBuffer);
}

DWORD CBox::Render()
{

        static FLOAT fTexTimeKey = 0;
        FLOAT fAppTime = timeGetTime();

        if( fAppTime - g_time > 10)
        {
                g_time = timeGetTime();
                fTexTimeKey += 0.1f;
        }

    if( fTexTimeKey > 160.0f )
    {
        fTexTimeKey = 0.0f;
    }

    FLOAT tu = (fTexTimeKey/99)-(FLOAT)floor(fTexTimeKey/99);

        BOX_CUSTOMVERTEX02* pVertices;
    m_pVertexBuffer->Lock( 0, 0, (BYTE**)&pVertices, 0 );

   
    for( int ii=0; ii<(WALL_VERT_NUM/2); ii++ )
    {
        pVertices[2*ii+0].tu = tu+ii;
        pVertices[2*ii+1].tu = tu+ii;
    }
    for( ii=0; ii<WALL_VERT_NUM; ii++ )
        pVertices[ii].color = 0xffffffff;
    m_pVertexBuffer->Unlock();

    m_pD3DDevice->SetTexture( 0, m_pTexture );

    m_pD3DDevice->SetStreamSource( 0, m_pVertexBuffer, sizeof(BOX_CUSTOMVERTEX02) );
        m_pD3DDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX02 );
    m_pD3DDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 8);

        return 8;       
}

HRESULT CBox::CreateVertexBuffer()
{

    if(FAILED(m_pD3DDevice->CreateVertexBuffer(WALL_VERT_NUM* sizeof(BOX_CUSTOMVERTEX02),
                                               0, D3DFVF_CUSTOMVERTEX02,
                                               D3DPOOL_DEFAULT, &m_pVertexBuffer)))
    {
        return E_FAIL;
    }

    return S_OK;

}

bool CBox::UpdateVertices()
{
        VOID* pVertices;
       

        BOX_CUSTOMVERTEX02 cvVertices[] =
    {       
                { -50.0f,-20.0f, 50.0f, 0xfffffff, 0.00f, 1.0f },
                { -50.0f, 100.0f, 50.0f, 0xfffffff, 0.00f, 0.0f },
                {  50.0f,-20.0f, 50.0f, 0xfffffff, 1.00f, 1.0f },
                {  50.0f, 100.0f, 50.0f, 0xfffffff, 1.00f, 0.0f },
                {  50.0f,-20.0f,-50.0f, 0xfffffff, 2.00f, 1.0f },
                {  50.0f, 100.0f,-50.0f, 0xfffffff, 2.00f, 0.0f },
                { -50.0f,-20.0f,-50.0f, 0xfffffff, 3.00f, 1.0f },
                { -50.0f, 100.0f,-50.0f, 0xfffffff, 3.00f, 0.0f },
                { -50.0f,-20.0f, 50.0f, 0xfffffff, 4.00f, 1.0f },
                { -50.0f, 100.0f, 50.0f, 0xfffffff, 4.00f, 0.0f },
       
        };

       
    if(FAILED(m_pVertexBuffer->Lock(0, sizeof(cvVertices), (BYTE**)&pVertices, 0)))
    {
        return false;
    }
       
   
    memcpy(pVertices, cvVertices, sizeof(cvVertices));

   
    m_pVertexBuffer->Unlock();

        return true;
       
}

bool CBox::SetTexture(const char *szTextureFilePath)
{
        if(FAILED(D3DXCreateTextureFromFile(m_pD3DDevice, "Sky.bmp", &m_pTexture)))
        {
                return false;
        }

        return true;
}

我在 主程序中是这样掉用的,不知道哪里错了
m_pSky = new CSkyBox();
m_pSky->SetTexture("Sky.bmp");

下面是完整的程序打包:
ftp://219.238.235.183/上传目录(incoming)/DX P.rar

11

主题

97

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
QQ
 楼主| 发表于 2004-8-14 16:45:00 | 显示全部楼层

Re:关于 天空 的问题,急!

晕,不好意思,上传最大附件是 300K! [em17]
下面的是下载地址!
ftp://219.238.235.183/上传目录(incoming)/DX P.rar

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20547
发表于 2004-8-14 17:23:00 | 显示全部楼层

Re:关于 天空 的问题,急!

访问不了,把
/%C9%CF%B4%AB%C4%BF%C2%BC(incoming)/DX%20P.rar
这段用正确的文件名修改一下吧。

或者传到GameRes FTP吧。:)

11

主题

97

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
QQ
 楼主| 发表于 2004-8-14 17:28:00 | 显示全部楼层

Re:关于 天空 的问题,急!

晕,老大没有发现,219.238.235.183 就是你的 FTP 吗!
马上就去修改一下路径

已经修改好了,请在试试!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-16 23:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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