亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xfiles.cpp

?? Direct3D游戲編程入門教程源代碼.rar
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//-----------------------------------------------------------------------------
// File: Xfiles.cpp
//
// Desc: D3D sample showing the basics of DirectX Graphics Programming
// 
// Copyright (c) 1998-2000 Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001 wolf@direct3d.net
//-----------------------------------------------------------------------------
#define STRICT
#include <tchar.h>
#include <math.h>
#include <stdio.h>
#include <D3DX8.h>
#include "D3DApp.h"
#include "D3DFont.h"
#include "D3DFile.h"
#include "D3DUtil.h"
#include "DXUtil.h"
#include "resource.h"

// A structure for our custom vertex type
struct CUSTOMVERTEX
{
    D3DXVECTOR3 p;
    D3DXVECTOR3 n;
    FLOAT       tu, tv;
};

#define FVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)

//-----------------------------------------------------------------------------
// Name: struct Object
// Desc: Structure for holding data for each object
//-----------------------------------------------------------------------------
struct Object
{
    D3DXVECTOR3 vLoc;		// Location/Translation 
	D3DXVECTOR3	vR;			// Rotation vector
    D3DMATRIX   matLocal;	
    D3DMATERIAL8 mtrl;		// material data
    CD3DMesh* mesh;	// mesh data
};

//-----------------------------------------------------------------------------
// Name: class CMyD3DApplication
// Desc: Application class. The base class (CD3DApplication) provides the 
//       generic functionality needed in all Direct3D samples. CMyD3DApplication 
//       adds functionality specific to this sample program.
//-----------------------------------------------------------------------------
class CMyD3DApplication : public CD3DApplication
{
    CD3DFont* m_pFont;
	Object m_oYellow;
	Object m_oRed;

	LPDIRECT3DVERTEXBUFFER8 m_pVB; // Buffers to hold vertices
    DWORD m_dwNumVertices;
	DWORD m_dwNumFaces;
    LPDIRECT3DINDEXBUFFER8  m_pIB;

	LPDIRECT3DVERTEXBUFFER8 m_pVB2; 
    DWORD m_dwNumVertices2;
	DWORD m_dwNumFaces2;
    LPDIRECT3DINDEXBUFFER8  m_pIB2;

	FLOAT m_fStartTimeKey,     // Time reference for calculations
		  m_fTimeElapsed;

    // Variables for determining view position
	D3DXVECTOR3	m_pvVelocity, 
				m_pvAngularVelocity, 
				m_pvPosition, 
				m_pvYPR;

	D3DXMATRIX m_matPosition, 
			   m_matView;

	FLOAT m_fAngularSpeed, 
		  m_fSpeed;

    BYTE m_bKey[256];			// keyboard state buffer

    HRESULT ConfirmDevice( D3DCAPS8*, DWORD, D3DFORMAT );

protected:
    HRESULT OneTimeSceneInit();
    HRESULT InitDeviceObjects();
    HRESULT RestoreDeviceObjects();
    HRESULT InvalidateDeviceObjects();
    HRESULT DeleteDeviceObjects();
    HRESULT Render();
    HRESULT FrameMove();
    HRESULT FinalCleanup();

public:
    LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
    CMyD3DApplication();
};

//-----------------------------------------------------------------------------
// Name: WinMain()
// Desc: Entry point to the program. Initializes everything, and goes into a
//       message-processing loop. Idle time is used to render the scene.
//-----------------------------------------------------------------------------
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
    CMyD3DApplication d3dApp;

    if( FAILED( d3dApp.Create( hInst ) ) )
        return 0;

    return d3dApp.Run();
}

//-----------------------------------------------------------------------------
// Name: CMyD3DApplication()
// Desc: Application constructor. Sets attributes for the app.
//-----------------------------------------------------------------------------
CMyD3DApplication::CMyD3DApplication()
{
    m_strWindowTitle  = _T("First Steps to Animation");
    m_bUseDepthBuffer = TRUE;
	m_pVB = NULL;
	m_pIB = NULL;
	m_pVB2 = NULL;
	m_pIB2 = NULL;

    m_pFont = new CD3DFont( _T("Arial"), 12, D3DFONT_BOLD );
    m_oYellow.mesh = new CD3DMesh();
    m_oRed.mesh = new CD3DMesh();

	m_fAngularSpeed = 0.5;
	m_fSpeed= 1.0f;
	m_pvVelocity = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
	m_pvAngularVelocity = D3DXVECTOR3(0.0f, 0.0f, 0.0f);
    
	ZeroMemory( m_bKey, 256 );
}

//-----------------------------------------------------------------------------
// Name: OneTimeSceneInit()
// Desc: Called during initial app startup, this function performs all the
//       permanent initialization.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::OneTimeSceneInit()
{
	// yellow object
	m_oYellow.vLoc   = D3DXVECTOR3(-1.0f, 0.0f, 0.0f);
    m_oYellow.vR.x   = 0.0f;
    m_oYellow.vR.y   = 0.0f;
    m_oYellow.vR.z   = 0.0f;


	// red object
	m_oRed.vLoc   = D3DXVECTOR3(1.0f, 0.0f, 0.0f);
    m_oRed.vR.x   = 0.0f;
    m_oRed.vR.y   = 0.0f;
    m_oRed.vR.z   = 0.0f;

   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: FrameMove()
// Desc: Called once per frame, the call is the entry point for animating
//       the scene.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::FrameMove()
{
	// timing code: 
	// the object should move/rotate in the same speed 
	// at every possible fps
	const cTimeScale = 5;
	
	// calculate elapsed time
	m_fTimeElapsed=(m_fTime-m_fStartTimeKey) * cTimeScale;
	
	// store last time
	m_fStartTimeKey=m_fTime;

	//**********************************************************
	// yellow object
	//**********************************************************
	if (m_bKey['J']) m_oYellow.vR.z -= m_fTimeElapsed;
    if (m_bKey['L']) m_oYellow.vR.z += m_fTimeElapsed;
	if (m_bKey['I']) m_oYellow.vR.y -= m_fTimeElapsed;
    if (m_bKey['K']) m_oYellow.vR.y += m_fTimeElapsed;

    D3DXMATRIX matWorld;
	D3DXMatrixTranslation(&matWorld, m_oYellow.vLoc.x, m_oYellow.vLoc.y, m_oYellow.vLoc.z);

    D3DXMATRIX matTemp, matRotateX, matRotateY, matRotateZ;
    D3DXMatrixRotationY( &matRotateY, -m_oYellow.vR.x );
	D3DXMatrixRotationX( &matRotateX, -m_oYellow.vR.y );
	D3DXMatrixRotationZ( &matRotateZ, -m_oYellow.vR.z );

	D3DXMatrixMultiply( &matTemp, &matRotateX, &matRotateY );
	D3DXMatrixMultiply( &matTemp, &matRotateZ, &matTemp );
	D3DXMatrixMultiply( &matWorld, &matTemp, &matWorld ); 

    m_oYellow.matLocal = matWorld;

	//**********************************************************
	// red object
	//**********************************************************
    if (m_bKey['D'])	m_oRed.vR.z -= m_fTimeElapsed;
    if (m_bKey['A'])	m_oRed.vR.z += m_fTimeElapsed;
	if (m_bKey['S'])	m_oRed.vR.y -= m_fTimeElapsed;
    if (m_bKey['W'])	m_oRed.vR.y += m_fTimeElapsed;

	D3DXMatrixTranslation(&matWorld, m_oRed.vLoc.x, m_oRed.vLoc.y, m_oRed.vLoc.z);
    
	D3DXMatrixRotationY( &matRotateY, -m_oRed.vR.x );
	D3DXMatrixRotationX( &matRotateX, -m_oRed.vR.y );
	D3DXMatrixRotationZ( &matRotateZ, -m_oRed.vR.z );
	D3DXMatrixMultiply( &matTemp, &matRotateX, &matRotateY );
	D3DXMatrixMultiply( &matTemp, &matRotateZ, &matTemp );
	D3DXMatrixMultiply( &matWorld, &matTemp, &matWorld ); 

    m_oRed.matLocal = matWorld;

	//************************************************************
	// camera stuff
	//************************************************************
    D3DXVECTOR3 vTrans(0.0f, 0.0f, 0.0f);
    D3DXVECTOR3 vRot(0.0f, 0.0f, 0.0f);

	// Process keyboard input
    if (m_bKey[VK_HOME])		vTrans.z += 0.2f; // Move Forward
    if (m_bKey[VK_END])			vTrans.z -= 0.2f; // Move Backward
    if (m_bKey[VK_NUMPAD4])		vTrans.x -= 0.1f; // Slide Left
    if (m_bKey[VK_NUMPAD6])		vTrans.x += 0.1f; // Slide Right
    if (m_bKey[VK_NUMPAD8])     vTrans.y += 0.1f; // Slide Down
    if (m_bKey[VK_NUMPAD2])     vTrans.y -= 0.1f; // Slide Up

	if (m_bKey[VK_UP])			vRot.y += 0.1f; // Pitch Up
    if (m_bKey[VK_DOWN])		vRot.y -= 0.1f; // Pitch Down
    if (m_bKey[VK_LEFT])	    vRot.x += 0.1f; // Turn Left
    if (m_bKey[VK_RIGHT])	    vRot.x -= 0.1f; // Turn Right
    if (m_bKey['C'])		    vRot.z += 0.1f; // Rotate Left
    if (m_bKey['X'])		    vRot.z -= 0.1f; // Rotate Right
	
	// turn cfSmooth to 0.98f
	const FLOAT cfSmooth = 0.9f;

	// transform and rotation velocity
    m_pvVelocity = m_pvVelocity * cfSmooth + vTrans;
    m_pvAngularVelocity = m_pvAngularVelocity * cfSmooth + vRot;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av一区二区三区免费看| 亚洲国产成人高清精品| 欧美二区乱c少妇| 9色porny自拍视频一区二区| 岛国精品在线观看| 粉嫩嫩av羞羞动漫久久久| 国产一区二区看久久| 激情五月激情综合网| 久久91精品国产91久久小草| 青青草原综合久久大伊人精品优势| 日韩黄色免费网站| 蜜桃视频在线观看一区二区| 热久久国产精品| 国产精品自拍三区| 成人h动漫精品一区二| 色综合天天视频在线观看 | 日韩三级在线观看| 精品日韩欧美在线| 国产欧美精品一区aⅴ影院| 中文字幕国产一区| 一区二区三区91| 天堂影院一区二区| 成人高清视频免费观看| 成人小视频在线| 91精品办公室少妇高潮对白| 欧美日韩一区二区三区不卡| 精品国产乱码91久久久久久网站| 久久久国产精品不卡| 亚洲免费视频成人| 日韩高清不卡一区二区| 国产成人在线看| 在线观看精品一区| 精品国产麻豆免费人成网站| 欧美国产禁国产网站cc| 亚洲国产一区二区视频| 国产精品1区2区3区| 色综合天天视频在线观看| 欧美日韩免费视频| 欧美国产日本韩| 一区二区三区不卡视频在线观看 | 亚洲精品一区二区三区在线观看 | 亚洲精品国产高清久久伦理二区| 亚洲mv在线观看| 国产综合久久久久影院| 99视频热这里只有精品免费| 4438x亚洲最大成人网| 欧美国产亚洲另类动漫| 日韩高清不卡在线| 在线亚洲一区二区| 欧美国产国产综合| 久久精品噜噜噜成人88aⅴ| 99v久久综合狠狠综合久久| 日韩一区二区免费电影| 亚洲午夜视频在线| 亚洲欧洲精品天堂一级| 日本va欧美va瓶| 五月天中文字幕一区二区| 成人av在线观| 久久久午夜精品理论片中文字幕| 午夜久久久久久久久久一区二区| 风间由美一区二区三区在线观看| 欧美一区日韩一区| 亚洲国产精品欧美一二99| av中文字幕一区| 欧美激情综合五月色丁香小说| 毛片不卡一区二区| 91麻豆精品国产91| 天天亚洲美女在线视频| 欧洲国内综合视频| 亚洲精品高清在线观看| 99精品久久久久久| 亚洲欧洲av在线| 成人国产精品免费观看动漫| 欧美国产精品久久| 成人免费视频caoporn| 国产亚洲成av人在线观看导航| 久久精品国产澳门| 日韩一二三区不卡| 日欧美一区二区| 欧美精品1区2区3区| 午夜欧美一区二区三区在线播放| 欧洲视频一区二区| 日日噜噜夜夜狠狠视频欧美人| 欧美性videosxxxxx| 亚洲精品国久久99热| 91国偷自产一区二区三区观看| 亚洲色图视频免费播放| 一本色道久久综合亚洲aⅴ蜜桃 | 毛片av一区二区三区| 欧美精品亚洲一区二区在线播放| 午夜亚洲国产au精品一区二区| 在线观看视频欧美| 视频一区中文字幕国产| 欧美成人伊人久久综合网| 久久国产精品色婷婷| 久久精品一级爱片| 91美女片黄在线| 亚洲中国最大av网站| 欧美日韩免费一区二区三区视频| 日本欧美久久久久免费播放网| 555www色欧美视频| 国产成人在线看| 亚洲黄色性网站| 日韩欧美一区二区免费| 国产乱码字幕精品高清av| 国产精品―色哟哟| 欧美伦理影视网| 黄色精品一二区| 亚洲色图色小说| 日韩你懂的电影在线观看| 成人天堂资源www在线| 一区二区三区日本| 亚洲精品在线免费观看视频| 成人av集中营| 三级欧美在线一区| 亚洲欧美日韩久久| 欧美一级高清大全免费观看| 丁香婷婷深情五月亚洲| 亚洲图片一区二区| 国产日产精品1区| 欧美精品少妇一区二区三区| 国产盗摄一区二区| 欧美aaaaa成人免费观看视频| 国产精品无遮挡| 日韩美一区二区三区| 91电影在线观看| 粉嫩高潮美女一区二区三区 | 亚洲视频电影在线| 欧美一级一区二区| 麻豆91精品视频| 69堂精品视频| 91视视频在线观看入口直接观看www | 精品福利一区二区三区| 色久优优欧美色久优优| 国产精品主播直播| 蜜桃av一区二区| 亚洲夂夂婷婷色拍ww47| 国产精品不卡在线| 国产午夜精品久久| 精品剧情v国产在线观看在线| 欧美性videosxxxxx| 色婷婷激情综合| 99久久综合狠狠综合久久| 国产成人一级电影| 狠狠色综合日日| 日本系列欧美系列| 91麻豆精品国产自产在线观看一区 | 91国内精品野花午夜精品 | 日本不卡一区二区三区高清视频| 亚洲男同1069视频| 亚洲国产精品激情在线观看| 日韩精品一区二区三区在线观看| 在线观看不卡一区| 欧美亚洲动漫精品| 91成人在线精品| 欧美日韩一区国产| 欧美人xxxx| 欧美精品久久一区| 欧美精品一区二区在线观看| 一本色道久久加勒比精品| 国产v日产∨综合v精品视频| 亚洲免费电影在线| 久久嫩草精品久久久精品| 欧美视频中文字幕| 欧美日韩久久一区二区| av不卡在线播放| 欧美一区中文字幕| 成人毛片老司机大片| 日韩av一级电影| 国产精品人成在线观看免费| 国产一区二区三区四区五区美女| 不卡视频一二三四| 久久久久久久久久美女| 欧美精品一区二区三区高清aⅴ| 精品久久人人做人人爰| 日韩1区2区日韩1区2区| 日韩一区二区三区精品视频| 一区二区三区丝袜| 国产成人亚洲综合a∨猫咪| 成人激情免费网站| 欧美成人免费网站| 日韩av在线免费观看不卡| 日韩中文字幕区一区有砖一区 | 国产xxx精品视频大全| 蜜臀国产一区二区三区在线播放| 麻豆久久一区二区| 国产成人精品亚洲日本在线桃色 | 日韩av中文字幕一区二区| 久久精品国产99| 色偷偷88欧美精品久久久| 欧美日本视频在线| 国产三级一区二区三区| 久久美女艺术照精彩视频福利播放 | 99re这里只有精品6| 久久久.com| 国内精品久久久久影院色| 99久久精品免费精品国产| 久久久久久毛片| 亚洲1区2区3区4区| 欧美影视一区在线|