首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里可以找到“DirectX 9.0c 3D游戏编程入门”的源代码示例?

在哪里可以找到“DirectX 9.0c 3D游戏编程入门”的源代码示例?
EN

Stack Overflow用户
提问于 2011-10-02 14:27:51
回答 1查看 5.2K关注 0票数 1

我有一本书:“3D游戏编程入门与DirectX 9.0c-一个着色器的方法”,由弗兰克露娜。

官方网站已经死了,我似乎找不到用于所有项目的3个主要文件。

  • d3dApp.h
  • d3dApp.cpp
  • d3dUtil.h

有人知道我在哪里能找到他们吗?

我发现的只有这个:

  • http://www.d3dcoder.net/
  • http://www.d3dcoder.net/phpBB/

但那里没有消息来源。我还发现了一些碎片

代码语言:javascript
复制
//A sample directX demo outputting some flashing color text

#include "d3dApp.h"
#include <tchar.h>
#include <crtdbg.h>

//Our application is derived from the D3DAPP class, making setup for a game 
//or other program easier in the long run
class HelloD3DApp : public D3DApp
{
public:
    HelloD3DApp(HINSTANCE hInstance, std::string winCaption, D3DDEVTYPE devType, DWORD requestedVP);
    ~HelloD3DApp();

    bool checkDeviceCaps();
    void onLostDevice();
    void onresetDevice();
    void updateScene(float dt);
    void drawScene();

private:

    ID3DXFont* mFont;
};

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
                   PSTR cmdLine, int showCmd)
{
    // Enable run-time memory check for debug builds.
    #if defined(DEBUG) | defined(_DEBUG)
        _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
    #endif


    HelloD3DApp app(hInstance, "Hello Direct3D", D3DDEVTYPE_HAL, D3DCREATE_HARDWARE_VERTEXPROCESSING);
    gd3dApp = &app;

    return gd3dApp->run();
}

HelloD3DApp::HelloD3DApp(HINSTANCE hInstance, std::string winCaption, D3DDEVTYPE devType, DWORD requestedVP)
: D3DApp(hInstance, winCaption, devType, requestedVP)
{
    srand(time_t(0));

    if(!checkDeviceCaps())
    {
        MessageBox(0, "checkDeviceCaps() Failed", 0, 0);
        PostQuitMessage(0);
    }

    LOGFONTA font;
    font.lfHeight          = 80;
                font.lfWidth            = 40;
    font.lfEscapement       = 0;
    font.lfOrientation      = 0;
                font.lfWeight          = FW_BOLD;
                font.lfItalic          = true;
    font.lfUnderline        = false;
    font.lfStrikeOut        = false;
                font.lfCharSet        = DEFAULT_CHARSET;
                font.lfOutPrecision  = OUT_DEFAULT_PRECIS;
    font.lfClipPrecision    = CLIP_CHARACTER_PRECIS;
                font.lfQuality        = DEFAULT_QUALITY;
                font.lfPitchAndFamily   = DEFAULT_PITCH | FF_DONTCARE;
               _tcscpy(font.lfFaceName, _T("Times New Roman"));

    HR(D3DXCreateFontIndirect(gd3dDevice, &font, &mFont));
}

HelloD3DApp::~HelloD3DApp()
{
    ReleaseCOM(mFont);
}

bool HelloD3DApp::checkDeviceCaps()
{
    // Nothing to check.
    return true;
}

void HelloD3DApp::onLostDevice()
{
    HR(mFont->OnLostDevice());
}

void HelloD3DApp::onresetDevice()
{
    HR(mFont->onresetDevice());
}

void HelloD3DApp::updateScene(float dt)
{
}

void HelloD3DApp::drawScene()
{
    HR(gd3dDevice->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0));

    RECT formatRect;
    GetClientRect(mhMainWnd, &formatRect);

    HR(gd3dDevice->BeginScene());

    mFont->DrawText(TEXT("Hello </DIC>!"), -1, 
        &formatRect, DT_CENTER | DT_VCENTER, 
        D3DCOLOR_XRGB(rand() % 256, rand() % 256, rand() % 256));

    HR(gd3dDevice->EndScene());
    HR(gd3dDevice->Present(0, 0, 0, 0));
}

但这些也帮不了我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-02 14:42:20

d3dApp.h

d3dApp.cpp

d3dUtil.h

这些文件与zip文件中的文件相同。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7626954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档