[過去ログ]
【初心者】課題をクリアしていくスレ【講習会】 (787レス)
【初心者】課題をクリアしていくスレ【講習会】 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
326: 課題3 赤い四角 その1 [] 04/07/15 01:22 ID:mfzLmHcI #include <d3d9.h> LPDIRECT3D9 g_pD3D = NULL; LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWORD color; }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE) HRESULT InitD3D( HWND hWnd ) { if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) ) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice ) ) ) { return E_FAIL; } return S_OK; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/326
327: 課題3 赤い四角 その2 [] 04/07/15 01:23 ID:mfzLmHcI HRESULT InitVB() { CUSTOMVERTEX vertices[] = { { 0.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color { 320.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, }, { 320.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, }, { 0.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, }, }; if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4*sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, NULL ) ) ) { return E_FAIL; } VOID* pVertices; if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ) return E_FAIL; memcpy( pVertices, vertices, sizeof(vertices) ); g_pVB->Unlock(); return S_OK; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/327
328: 課題3 赤い四角 その3 [] 04/07/15 01:24 ID:mfzLmHcI VOID Cleanup() { if( g_pVB != NULL ) g_pVB->Release(); if( g_pd3dDevice != NULL ) g_pd3dDevice->Release(); if( g_pD3D != NULL ) g_pD3D->Release(); } VOID Render() { g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 ); if( SUCCEEDED( g_pd3dDevice->BeginScene() ) ) { g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) ); g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 2 ); g_pd3dDevice->EndScene(); } g_pd3dDevice->Present( NULL, NULL, NULL, NULL ); } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/328
329: 課題3 赤い四角 その4 [] 04/07/15 01:26 ID:mfzLmHcI LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_DESTROY: Cleanup(); PostQuitMessage( 0 ); return 0; } return DefWindowProc( hWnd, msg, wParam, lParam ); } INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, "D3D Tutorial", NULL }; RegisterClassEx( &wc ); HWND hWnd = CreateWindow( "D3D Tutorial", "課題", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 640, 480, GetDesktopWindow(), NULL, wc.hInstance, NULL ); http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/329
330: 課題3 赤い四角 その5(ラスト) [] 04/07/15 01:27 ID:mfzLmHcI if( SUCCEEDED( InitD3D( hWnd ) ) ) { if( SUCCEEDED( InitVB() ) ) { ShowWindow( hWnd, SW_SHOWDEFAULT ); UpdateWindow( hWnd ); MSG msg; ZeroMemory( &msg, sizeof(msg) ); while( msg.message!=WM_QUIT ) { if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else Render(); } } } UnregisterClass( "D3D Tutorial", wc.hInstance ); return 0; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/330
337: 名前は開発中のものです。 [] 04/07/15 20:55 ID:mfzLmHcI #include <d3d9.h> #include <dinput.h> LPDIRECT3D9 g_pD3D = NULL; LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; LPDIRECTINPUT8 g_lpDI; LPDIRECTINPUTDEVICE8 g_lpDIDevice; HINSTANCE g_hinst; HWND g_hwndMain; struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWORD color; }; CUSTOMVERTEX vertices[] = { { 0.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color { 320.0f, 0.0f, 0.5f, 1.0f, 0xffff0000, }, { 320.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, }, { 0.0f, 240.0f, 0.5f, 1.0f, 0xffff0000, }, }; #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE) int cx; int cy; void WINAPI ProcessKBInput() { #define KEYDOWN(name, key) (name[key] & 0x80) char buffer[256]; HRESULT hr; hr = g_lpDIDevice->GetDeviceState(sizeof(buffer),(LPVOID)&buffer); if FAILED(hr) { http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/337
338: 名前は開発中のものです。 [] 04/07/15 20:55 ID:mfzLmHcI exit(EXIT_FAILURE); } cx=0; cy=0; if (KEYDOWN(buffer, DIK_RIGHT)) cx=1; else if(KEYDOWN(buffer, DIK_LEFT)) cx=-1; if (KEYDOWN(buffer, DIK_UP)) cy=-1; else if (KEYDOWN(buffer, DIK_DOWN)) cy=1; } void WINAPI DI_Term() { if (g_lpDI) { if (g_lpDIDevice) { g_lpDIDevice->Unacquire(); g_lpDIDevice->Release(); g_lpDIDevice = NULL; } g_lpDI->Release(); g_lpDI = NULL; } } HRESULT InitJoystick() { HRESULT hr; http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/338
339: 名前は開発中のものです。 [] 04/07/15 20:57 ID:mfzLmHcI //オブジェクトの作成 hr = DirectInput8Create(g_hinst, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&g_lpDI, NULL); if FAILED(hr) { exit(EXIT_FAILURE); } //キーボード デバイスの作成 hr = g_lpDI->CreateDevice(GUID_SysKeyboard, &g_lpDIDevice, NULL); if FAILED(hr) { DI_Term(); exit(EXIT_FAILURE); } //キーボードのデータ形式の設定 hr = g_lpDIDevice->SetDataFormat(&c_dfDIKeyboard); if FAILED(hr) { DI_Term(); exit(EXIT_FAILURE); } //キーボードの動作の設定 hr = g_lpDIDevice->SetCooperativeLevel(g_hwndMain, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE); if FAILED(hr) { DI_Term(); exit(EXIT_FAILURE); } } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/339
340: 名前は開発中のものです。 [] 04/07/15 20:58 ID:mfzLmHcI HRESULT InitD3D( HWND hWnd ) { if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) ) return E_FAIL; D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice ) ) ) { return E_FAIL; } return S_OK; } HRESULT InitVB() { if( FAILED( g_pd3dDevice->CreateVertexBuffer( 4*sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, NULL ) ) ) { return E_FAIL; } VOID* pVertices; if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ) return E_FAIL; memcpy( pVertices, vertices, sizeof(vertices) ); http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/340
341: 名前は開発中のものです。 [] 04/07/15 21:07 ID:mfzLmHcI g_pVB->Unlock(); return S_OK; } VOID Cleanup() { if( g_pVB != NULL ) g_pVB->Release(); if( g_pd3dDevice != NULL ) g_pd3dDevice->Release(); if( g_pD3D != NULL ) g_pD3D->Release(); } VOID Render() { if (g_lpDIDevice) g_lpDIDevice->Acquire(); ProcessKBInput(); for (int i=0; i<4; i++) { vertices[i].x=vertices[i].x+cx; vertices[i].y=vertices[i].y+cy; } VOID* pVertices; if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ) exit(EXIT_FAILURE); memcpy( pVertices, vertices, sizeof(vertices) ); g_pVB->Unlock(); g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 ); if( SUCCEEDED( g_pd3dDevice->BeginScene() ) ) { http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/341
342: 名前は開発中のものです。 [] 04/07/15 21:07 ID:mfzLmHcI g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) ); g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 2 ); g_pd3dDevice->EndScene(); } g_pd3dDevice->Present( NULL, NULL, NULL, NULL ); } LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_DESTROY: Cleanup(); PostQuitMessage( 0 ); return 0; } return DefWindowProc( hWnd, msg, wParam, lParam ); } INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT ) { g_hinst=hInst; WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, "D3D Tutorial", NULL }; RegisterClassEx( &wc ); HWND hWnd = CreateWindow( "D3D Tutorial", "課題", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 640, 480, GetDesktopWindow(), NULL, wc.hInstance, NULL ); g_hwndMain=hWnd; InitJoystick(); if( SUCCEEDED( InitD3D( hWnd ) ) ) http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/342
344: 名前は開発中のものです。 [sage] 04/07/15 21:48 ID:mfzLmHcI 過去ログよんだからわざわざ貼ったのに ろだ推奨にルール変更? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/344
346: 名前は開発中のものです。 [] 04/07/15 22:12 ID:mfzLmHcI とりあえずラストまで >>337-342 { if( SUCCEEDED( InitVB() ) ) { ShowWindow( hWnd, SW_SHOWDEFAULT ); UpdateWindow( hWnd ); MSG msg; ZeroMemory( &msg, sizeof(msg) ); while( msg.message!=WM_QUIT ) { if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else Render(); } } } UnregisterClass( "D3D Tutorial", wc.hInstance ); return 0; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/346
350: 名前は開発中のものです。 [sage] 04/07/15 22:33 ID:mfzLmHcI 避難所は落ちてますね wiki、ろだ等全滅です >>173のろだは生きてるようだけど使っていいのかな?テストって言ってたけど http://cgi.f11.aaacafe.ne.jp/~novarabb/phpup/upload.php >>347 先生キタ━━━━━━(゚∀゚)━━━━━━ !! でもライフゲームなんて作ってたらまたゲームに関係ないものを 作ってと怒り出す人がいるのでその時はおながいしますね ちなみに採点できる言語は何ですか? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/350
352: 名前は開発中のものです。 [sage] 04/07/15 22:42 ID:mfzLmHcI と思ったら4様もキタ━━━━━━(゚∀゚)━━━━━━ !! 了解しました>初期化は省きましょう サンプルそのままなんで見る意味もないですし 課題に関係がある所だけ貼って後はろだにうぷするのがバランスいいかな >>348 連貼りするのは生理的に受け付けないのに我慢してやってるんだから 酷いこといわないでよヽ(`Д´)ノ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/352
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s