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

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

?? 1steps.cpp

?? Beginning Direct3D Game Programming源代碼Part1chapter6
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//-----------------------------------------------------------------------------
// File: steps.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 "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 D3DFVF_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
    FLOAT       fR, fG, fB;    // Color of the object
    D3DMATRIX   matLocal;
};

//-----------------------------------------------------------------------------
// 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;
	LPDIRECT3DVERTEXBUFFER8 m_pVB; // Buffer to hold vertices
    DWORD m_dwSizeofVertices;
    LPDIRECT3DINDEXBUFFER8  m_pIB;
    DWORD m_dwSizeofIndices;

	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;

    CUSTOMVERTEX m_pvObjectVertices[16];
    WORD         m_pwObjectIndices[30];
    Object       m_pObjects[2];

    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_pFont = new CD3DFont( _T("Arial"), 12, D3DFONT_BOLD );

	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()
{
    // Points and normals which make up a object geometry
    D3DXVECTOR3 p1 = D3DXVECTOR3( 0.00f, 0.00f, 0.50f );
    D3DXVECTOR3 p2 = D3DXVECTOR3( 0.50f, 0.00f,-0.50f );
    D3DXVECTOR3 p3 = D3DXVECTOR3( 0.15f, 0.15f,-0.35f );
    D3DXVECTOR3 p4 = D3DXVECTOR3(-0.15f, 0.15f,-0.35f );
    D3DXVECTOR3 p5 = D3DXVECTOR3( 0.15f,-0.15f,-0.35f );
    D3DXVECTOR3 p6 = D3DXVECTOR3(-0.15f,-0.15f,-0.35f );
    D3DXVECTOR3 p7 = D3DXVECTOR3(-0.50f, 0.00f,-0.50f );

    D3DXVECTOR3 n1 = D3DXVECTOR3( 0.2f, 1.0f, 0.0f );
    D3DXVec3Normalize(&n1, &n1);
    D3DXVECTOR3 n2 = D3DXVECTOR3( 0.1f, 1.0f, 0.0f );
    D3DXVec3Normalize(&n2, &n2);
    D3DXVECTOR3 n3 = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );
    D3DXVec3Normalize(&n3, &n3);
    D3DXVECTOR3 n4 = D3DXVECTOR3(-0.1f, 1.0f, 0.0f );
    D3DXVec3Normalize(&n4, &n4);
    D3DXVECTOR3 n5 = D3DXVECTOR3(-0.2f, 1.0f, 0.0f );
    D3DXVec3Normalize(&n5, &n5);
    D3DXVECTOR3 n6 = D3DXVECTOR3(-0.4f, 0.0f, -1.0f );
    D3DXVec3Normalize(&n6, &n6);
    D3DXVECTOR3 n7 = D3DXVECTOR3(-0.2f, 0.0f, -1.0f );
    D3DXVec3Normalize(&n7, &n7);
    D3DXVECTOR3 n8 = D3DXVECTOR3( 0.2f, 0.0f, -1.0f );
    D3DXVec3Normalize(&n8, &n8);
    D3DXVECTOR3 n9 = D3DXVECTOR3( 0.4f, 0.0f, -1.0f );
    D3DXVec3Normalize(&n9, &n9);

	// vertices for the top
	m_pvObjectVertices[0].p = p1;
	m_pvObjectVertices[0].n = n1;
	m_pvObjectVertices[0].tu = 0.0f;
	m_pvObjectVertices[0].tv = 0.5f;
	m_pvObjectVertices[1].p = p2;
	m_pvObjectVertices[1].n = n2;
	m_pvObjectVertices[1].tu = 0.5f;
	m_pvObjectVertices[1].tv = 1.0f;
	m_pvObjectVertices[2].p = p3;
	m_pvObjectVertices[2].n = n3;
	m_pvObjectVertices[2].tu = 0.425f;
	m_pvObjectVertices[2].tv = 0.575f;
	m_pvObjectVertices[3].p = p4;
	m_pvObjectVertices[3].n = n4;
	m_pvObjectVertices[3].tu = 0.425f;
	m_pvObjectVertices[3].tv = 0.425f;
    m_pvObjectVertices[4].p = p7;
	m_pvObjectVertices[4].n = n5;
	m_pvObjectVertices[4].tu = 0.5f;
	m_pvObjectVertices[4].tv = 0.0f;

	// vertices for the bottom
	m_pvObjectVertices[5].p = p1;
	m_pvObjectVertices[5].n = -n5;
	m_pvObjectVertices[5].tu = 1.0f;
	m_pvObjectVertices[5].tv = 0.5f;
	m_pvObjectVertices[6].p = p2;
	m_pvObjectVertices[6].n = -n4;
	m_pvObjectVertices[6].tu = 0.5f;
	m_pvObjectVertices[6].tv = 1.0f;
	m_pvObjectVertices[7].p = p5;
	m_pvObjectVertices[7].n = -n3;
	m_pvObjectVertices[7].tu = 0.575f;
	m_pvObjectVertices[7].tv = 0.575f;
	m_pvObjectVertices[8].p = p6;
	m_pvObjectVertices[8].n = -n2;
	m_pvObjectVertices[8].tu = 0.575f;
	m_pvObjectVertices[8].tv = 0.425f;
	m_pvObjectVertices[9].p = p7;
	m_pvObjectVertices[9].n = -n1;
	m_pvObjectVertices[9].tu = 0.5f;
	m_pvObjectVertices[9].tv = 0.0f;

	// vertices for the rear
	m_pvObjectVertices[10].p = p2;
	m_pvObjectVertices[10].n = n6;
	m_pvObjectVertices[10].tu = 0.5f;
	m_pvObjectVertices[10].tv = 1.0f;
	m_pvObjectVertices[11].p = p3;
	m_pvObjectVertices[11].n = n7;
	m_pvObjectVertices[11].tu = 0.425f;
	m_pvObjectVertices[11].tv = 0.575f;
	m_pvObjectVertices[12].p = p4;
	m_pvObjectVertices[12].n = n8;
	m_pvObjectVertices[12].tu = 0.425f;
	m_pvObjectVertices[12].tv = 0.425f;
	m_pvObjectVertices[13].p = p7;
	m_pvObjectVertices[13].n = n9;
	m_pvObjectVertices[13].tu = 0.5f;
	m_pvObjectVertices[13].tv = 0.0f;
	m_pvObjectVertices[14].p = p6;
	m_pvObjectVertices[14].n = n8;
	m_pvObjectVertices[14].tu = 0.575f;
	m_pvObjectVertices[14].tv = 0.425f;
	m_pvObjectVertices[15].p = p5;
	m_pvObjectVertices[15].n = n7;
	m_pvObjectVertices[15].tu = 0.575f;
	m_pvObjectVertices[15].tv = 0.575f;
	
    // Vertex indices for the object
    m_pwObjectIndices[ 0] =  0; m_pwObjectIndices[ 1] =  1; m_pwObjectIndices[ 2] =  2;
    m_pwObjectIndices[ 3] =  0; m_pwObjectIndices[ 4] =  2; m_pwObjectIndices[ 5] =  3;
    m_pwObjectIndices[ 6] =  0; m_pwObjectIndices[ 7] =  3; m_pwObjectIndices[ 8] =  4;
    m_pwObjectIndices[ 9] =  5; m_pwObjectIndices[10] =  7; m_pwObjectIndices[11] =  6;
    m_pwObjectIndices[12] =  5; m_pwObjectIndices[13] =  8; m_pwObjectIndices[14] =  7;
    m_pwObjectIndices[15] =  5; m_pwObjectIndices[16] =  9; m_pwObjectIndices[17] =  8;
    m_pwObjectIndices[18] = 10; m_pwObjectIndices[19] = 15; m_pwObjectIndices[20] = 11;
    m_pwObjectIndices[21] = 11; m_pwObjectIndices[22] = 15; m_pwObjectIndices[23] = 12;
    m_pwObjectIndices[24] = 12; m_pwObjectIndices[25] = 15; m_pwObjectIndices[26] = 14;
    m_pwObjectIndices[27] = 12; m_pwObjectIndices[28] = 14; m_pwObjectIndices[29] = 13;

	// yellow object
	m_pObjects[0].vLoc   = D3DXVECTOR3(-1.0f, 0.0f, 0.0f);
    m_pObjects[0].vR.x   = 0.0f;
    m_pObjects[0].vR.y   = 0.0f;
    m_pObjects[0].vR.z   = 0.0f;
    m_pObjects[0].fR     = 1.0f;
    m_pObjects[0].fG     = 0.92f;
    m_pObjects[0].fB     = 0.0f;

	// red object
	m_pObjects[1].vLoc   = D3DXVECTOR3(1.0f, 0.0f, 0.0f);
    m_pObjects[1].vR.x   = 0.0f;
    m_pObjects[1].vR.y   = 0.0f;
    m_pObjects[1].vR.z   = 0.0f;
    m_pObjects[1].fR     = 1.0f;
    m_pObjects[1].fG     = 0.0f;
    m_pObjects[1].fB     = 0.27f;

   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_pObjects[0].vR.z -= m_fTimeElapsed;
    if (m_bKey['L']) m_pObjects[0].vR.z += m_fTimeElapsed;
	if (m_bKey['I']) m_pObjects[0].vR.y -= m_fTimeElapsed;
    if (m_bKey['K']) m_pObjects[0].vR.y += m_fTimeElapsed;

    D3DXMATRIX matWorld;
	D3DXMatrixTranslation(&matWorld, m_pObjects[0].vLoc.x, m_pObjects[0].vLoc.y, m_pObjects[0].vLoc.z);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情欧美激情| 欧美精品一卡两卡| 韩国成人在线视频| 麻豆成人91精品二区三区| 青青草原综合久久大伊人精品优势| 亚洲一区在线免费观看| 午夜激情一区二区| 激情都市一区二区| 欧美日韩国产成人在线免费| 91精品国产麻豆| 久久综合久久综合久久综合| 国产视频一区二区三区在线观看| 中文字幕免费不卡| 亚洲午夜久久久| 国内成+人亚洲+欧美+综合在线| 色狠狠综合天天综合综合| 欧美精品三级在线观看| 国产日韩欧美麻豆| 亚洲人成网站精品片在线观看| 亚洲最新视频在线观看| 日韩va欧美va亚洲va久久| 国产精品一区二区黑丝| 欧美中文字幕久久 | 亚洲欧美日韩精品久久久久| 捆绑变态av一区二区三区| a级精品国产片在线观看| 欧美日韩久久久一区| 国产精品的网站| 免费不卡在线视频| 欧美一区二区三区日韩| 污片在线观看一区二区| 欧美日韩国产经典色站一区二区三区| 亚洲欧洲精品一区二区三区| 美女一区二区久久| 欧美一区二区视频网站| 蜜臀av性久久久久蜜臀aⅴ| 678五月天丁香亚洲综合网| 国产精品免费av| 精品一区二区免费在线观看| 欧美日韩一区成人| 国产精品久久久久影院亚瑟 | 婷婷久久综合九色国产成人| 欧美熟乱第一页| 国产精品欧美综合在线| 丁香天五香天堂综合| 欧美视频精品在线观看| 午夜久久久久久久久| 在线成人高清不卡| 久久99精品久久久久| 久久九九国产精品| 91污片在线观看| 国产亚洲成年网址在线观看| 成人国产一区二区三区精品| 欧美大黄免费观看| 天堂在线一区二区| 在线一区二区视频| 日本不卡一二三| 久久久综合视频| 精品一区二区三区在线观看 | 日韩在线一区二区| 久久综合久久99| 成人av在线播放网站| 亚洲丶国产丶欧美一区二区三区| 91在线视频播放| 成人欧美一区二区三区视频网页 | 国产精品996| 夜夜精品视频一区二区| 6080日韩午夜伦伦午夜伦| 国产伦精品一区二区三区免费迷 | 亚洲一区二区三区四区五区中文| 欧美一区二区三区系列电影| 国产成人在线视频免费播放| 2021国产精品久久精品 | 蜜臀av国产精品久久久久| 中文字幕 久热精品 视频在线| 色素色在线综合| 亚洲综合色区另类av| xfplay精品久久| 91久久香蕉国产日韩欧美9色| 精品在线亚洲视频| 亚洲精品亚洲人成人网在线播放| 欧美日韩在线免费视频| 6080午夜不卡| 91老师片黄在线观看| 久久99精品网久久| 亚洲大尺度视频在线观看| 国产欧美日韩综合| 日韩视频永久免费| 精品一区二区三区免费| 亚洲一区二区视频在线观看| 欧美韩国日本综合| 日韩午夜激情av| 欧美日韩一区二区三区免费看| 国产一区二区成人久久免费影院| 日韩在线播放一区二区| 亚洲欧美二区三区| 中文字幕在线播放不卡一区| 欧美精品一区二区在线播放 | 成人一区二区三区在线观看| 日韩精品高清不卡| 午夜久久久影院| 亚洲靠逼com| 国产精品不卡在线观看| 国产精品色眯眯| 国产夜色精品一区二区av| 精品美女一区二区| 成人激情视频网站| 国产很黄免费观看久久| 国内精品国产成人国产三级粉色 | 理论片日本一区| 视频在线观看一区| 天天综合色天天| 天天影视涩香欲综合网 | 精品在线免费观看| 国产一区二区在线观看视频| 美洲天堂一区二卡三卡四卡视频| 日韩和欧美一区二区三区| 亚洲6080在线| 日本va欧美va瓶| 精品制服美女丁香| 国产精品77777竹菊影视小说| 国产精品 日产精品 欧美精品| 国产综合色精品一区二区三区| 老汉av免费一区二区三区 | 91麻豆精品国产91久久久资源速度| 欧美丝袜第三区| 欧美一区二区三区播放老司机| 欧美一区二区三区在线观看视频| 日韩午夜在线影院| 久久亚洲综合色一区二区三区| 国产清纯在线一区二区www| 亚洲国产精品传媒在线观看| 亚洲欧洲综合另类在线| 亚洲一区二区影院| 麻豆精品久久精品色综合| 国内精品伊人久久久久影院对白| 国产91丝袜在线18| 色久优优欧美色久优优| 8x8x8国产精品| 久久免费偷拍视频| 亚洲欧美色综合| 日韩国产在线观看一区| 国产在线播放一区三区四| www.欧美亚洲| 欧美高清一级片在线| 国产亚洲1区2区3区| 尤物视频一区二区| 久久99国产精品免费| 99热精品国产| 欧美一区二区在线观看| 国产日韩精品一区二区浪潮av| 亚洲图片激情小说| 国产精品传媒入口麻豆| 亚洲成人免费视频| 国产成人丝袜美腿| 欧美日韩精品三区| 国产精品久久午夜夜伦鲁鲁| 日韩成人伦理电影在线观看| 风流少妇一区二区| 8x8x8国产精品| 国产精品国产精品国产专区不蜜| 日本美女一区二区| 91麻豆精东视频| 国产亚洲婷婷免费| 偷拍一区二区三区四区| 97超碰欧美中文字幕| 精品少妇一区二区三区免费观看 | 国产成+人+日韩+欧美+亚洲| 欧美图区在线视频| 国产精品毛片久久久久久| 天天爽夜夜爽夜夜爽精品视频| 菠萝蜜视频在线观看一区| 欧美一级理论片| 亚洲午夜影视影院在线观看| 成人亚洲精品久久久久软件| 日韩免费成人网| 亚洲最新视频在线观看| 9人人澡人人爽人人精品| 精品国产91久久久久久久妲己| 亚洲国产成人porn| 91香蕉视频mp4| 国产精品天美传媒| 国产一区二区美女| 日韩欧美123| 美国欧美日韩国产在线播放| 欧美日韩激情一区二区三区| 亚洲欧美一区二区三区国产精品| 国产不卡视频一区二区三区| 久久先锋影音av鲁色资源| 久久国产精品露脸对白| 欧美一区二区日韩一区二区| 午夜一区二区三区视频| 91美女在线视频| 亚洲私人影院在线观看| 成人午夜电影久久影院| 国产精品少妇自拍| 成人一区二区三区中文字幕| 欧美国产精品久久| 成人高清免费观看| 国产精品国产三级国产a|