[過去ログ]
【初心者】課題をクリアしていくスレ【講習会】 (787レス)
【初心者】課題をクリアしていくスレ【講習会】 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
335: C / HSPの生徒 orz [sage] 04/07/15 11:27 ID:Ian2SxqZ 課題10 インベダ風移動 修正版 http://gamdev.org/up/img/855.lzh 次の課題マダー? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/335
336: 名前は開発中のものです。 [sage] 04/07/15 12:55 ID:930GPiwR >>335 ソースが初心者っぽくない:-) http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/336
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.5
f, 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/re
ad.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**)&pVertic
es, 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.cg
i/gamedev/1086858349/342
343: 名前は開発中のものです。 [sage] 04/07/15 21:36 ID:FFz8UuO5 うpろだ使えよ・・ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/343
344: 名前は開発中のものです。 [sage] 04/07/15 21:48 ID:mfzLmHcI 過去ログよんだからわざわざ貼ったのに ろだ推奨にルール変更? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/344
345: 名前は開発中のものです。 [sage] 04/07/15 22:09 ID:A+IEwnnr ところでGdevうき落ちてる? http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/345
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/34
6
347: 名前は開発中のものです。 [sage] 04/07/15 22:17 ID:nw/x++ui ライフゲームを自分でぐぐって製作 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/347
348: 名前は開発中のものです。 [sage] 04/07/15 22:27 ID:FFz8UuO5 >>344 いや、俺は過去ログ読んでないから知らんが、こんだけ連張りするんなら うpろだ使えばいいだろって事。せっかく用意されてんだし。 と思ったら今gamdev.org落ちてんのか・・ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/348
349: 4 ◆3VUXqvbfSY [] 04/07/15 22:30 ID:ulthkOuE まあ…DirectXを使うときは… 初期化は省きましょう http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/349
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
351: 4 ◆3VUXqvbfSY [] 04/07/15 22:40 ID:ulthkOuE >>347 ワーイ 良いですねぇ。ライフ「ゲーム」と言い切れば、誰からも文句は出ないですし。 今回は僕は生徒でw 仕様を決めてくださいよ〜 生死条件や個々の移動条件とか http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/351
352: 名前は開発中のものです。 [sage] 04/07/15 22:42 ID:mfzLmHcI と思ったら4様もキタ━━━━━━(゚∀゚)━━━━━━ !! 了解しました>初期化は省きましょう サンプルそのままなんで見る意味もないですし 課題に関係がある所だけ貼って後はろだにうぷするのがバランスいいかな >>348 連貼りするのは生理的に受け付けないのに我慢してやってるんだから 酷いこといわないでよヽ(`Д´)ノ http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/352
353: 名前は開発中のものです。 [sage] 04/07/15 22:51 ID:7EJWxb81 課題10 インベダ風移動 <html><head><title>Invader Game?</title><style type="text/css"><!-- .ch{background-color : #FF0000; position : absolute; width : 32px; height : 32px;} .missile{background-color : #BBC000;position : absolute;width : 2px; height : 16px;top : -20px;} --></style></head><body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0"> <div id=char clas
s="ch"></div><script language="Javascript"><!-- var timerID, k = [], GameOver = false; var x = 304, y = 448, charElm = document.getElementById('char'); var enMX = 2, enMY = 0, enE = [], enA = [], enX = [], enY = []; for (i = 0; i < 6; i++){ document.write('<div id=en' + i + ' class="ch"></div>'); enE[i] = document.getElementById('en' + i); enA[i] = true; enE[i].style.left = enX[i] = i % 3 * 33; enE[i].style.top = enY[i] = Math.floor(i / 3) * 33 - 2; } var miE = [], miA = [],
miX = [], miY = []; for (i = 0; i < 3; i++){ document.write('<div id=mi' + i + ' class=missile></div>'); miE[i] = document.getElementById('mi' + i); miA[i] = false; miY[i] = -20; } http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/353
354: 名前は開発中のものです。 [sage] 04/07/15 22:52 ID:7EJWxb81 function main(){ clearTimeout(timerID); charElm.style.left = x += k[37] && x ? -8 : k[39] && x < 608 ? 8 : 0; charElm.style.top = y += k[38] && y ? -8 : k[40] && y < 448 ? 8 : 0; for (var i = 0; i < 3; i++) if (miA[i]){ if (miY[i] < -20) miA[i] = false; miE[i].style.top = miY[i] -= 8; }else if (k[90]){ k[90] = 0; miA[i] = true; miE[i].style.left = miX[i] = x + 15; miE[i].style.top = miY[i] = y - 16; } var enBMX = enMX, enBMY = enMY
; for (var i = 0; i < 6; i++) if (enA[i]){ enE[i].style.left = enX[i] += enBMX; enE[i].style.top = enY[i] += enBMY; enMX = enX[i] > 608 ? -2 : enX[i] < 0 ? 2 : enMX; if (enX[i] > 608 || enX[i] < 0) enMY = 32; if (Math.abs(x - enX[i]) < 32 && Math.abs(y - enY[i]) < 32 || enY[i] > 448) GameOver = true; for (var j = 0; j < 3; j++) if (miA[j] && miX[j] - enX[i] < 32 && enX[i] - miX[j] < 2 && miY[j] - enY[i] < 32 && enY[i] - miY[j] < 16){ enA[i] = miA[j] = false; enE[i].sty
le.top = miE[j].style.top = -40; break; } } if (enBMY == 32) enMY = 0; timerID = GameOver ? 0 : setTimeout(main, 30); }//--></script></body></html> http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/354
355: 134 [sage] 04/07/16 10:38 ID:9OMAGGSs ライフゲームを検索で見てみましたけど、これは二次元配列の処理がオセロみたいな感じになりそうですね それで、存在しない配列を参照するバグ続出… http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/355
356: 名前は開発中のものです。 [sage] 04/07/16 11:55 ID:yFlo2kjF >>352 「4様」って某韓国俳優のミーハーみたいで何かやだなw http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/356
357: 134 [sage] 04/07/16 23:21 ID:9OMAGGSs ライフゲームっぽいものが途中まで出来ました。 まだ、初期位置が決められないのと、予測していた動きにならないので、バグがあると思います。 あと、ソースを見ると分かりますが、判定部分がかなりいいかげんというか、面倒な事をやってます http://gamdev.org/up/img/857.lzh http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/357
358: x≠先生かつx=生徒 ⇒ x=俺 [sage] 04/07/17 14:27 ID:qbj2jGXO http://gamdev.org/up/img/862.zip ライフゲーム with HSP 正常に動作するか怪しいけど…。 http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/358
359: 134 [sage] 04/07/17 22:23 ID:s02d0Ih2 VB製ライフゲーム改良型です。一応、option.txt内を0か1に書き換えれば初期位置を変更できます。 あと、動きのバグも直しました。やはり、長めのロジックは良くないみたいです。 ちなみに、option.txt内の一番下の行の数値を換えると、進行スピードが変わります (数値が小さい程スピードが速くなる) http://gamdev.org/up/img/863.lzh http://mevius.5ch.net/test/read.cgi/gamedev/1086858349/359
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 428 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s