[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/10 18:43 / Filesize : 288 KB / Number-of Response : 778
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】課題をクリアしていくスレ【講習会】



1 名前:名前は開発中のものです。 [04/06/10 18:05 ID:VshiFFV8]
ゲームに必要な要素を先生が出してくれます

その課題をクリアしていく講習会です

292 名前:285 mailto:sage [04/07/09 10:46 ID:mw4kM0V8]
すまん、言葉足らずだった。
ジャンプの軌道の加速減速だ。

ボールが跳ねるって部分は蛇足だったな。

293 名前:285 mailto:sage [04/07/09 10:48 ID:mw4kM0V8]
>ボールが跳ねるって部分は蛇足だったな。

>ボールが跳ねるって言い方は変だったな。


言葉足らずって言うより、俺、言い回しが変だね。

294 名前:名前は開発中のものです。 mailto:sage [04/07/09 16:12 ID:o2BnBgF7]
>>277
平方根以下の素数で割り切れるかを調べればいいので11*13(=143)をチェックする場合、
143の平方根が11.958......なので2〜11の数で割り切れるか調べればよい
11で割り切れるので素数ではないことがわかる

295 名前:名前は開発中のものです。 mailto:sage [04/07/09 19:10 ID:o2BnBgF7]
似たような事やってるスレみつけてきた

[VB] 初心者に課題を [.net]
pc5.2ch.net/test/read.cgi/tech/1048173861/

296 名前:名前は開発中のものです。 mailto:sage [04/07/09 22:13 ID:2xcy471S]
<html><body onload="go()">
角度<input type="text" value="45" id=ra>度<br>
初速<input type="text" value="1000" id=sp>m/s<br>
<input type="button" value="GO" onclick="go()"><script>
elm=new Array();
for(i=0;i<128;i++){
elm[i]=document.createElement('div');
elm[i].style.position='absolute';
elm[i].style.font='normal normal normal 7px "MS ゴシック"';
elm[i].innerHTML='■';
document.body.appendChild(elm[i]);
}
function go(){
r=document.getElementById('ra').value; s=document.getElementById('sp').value;
document.getElementById('ra').value=r=(r>89)?89:(r<0)?0:r;
document.getElementById('sp').value=s=(s>29000)?29000:(s<1)?1:s;
for(i=0;i<128;i++){
y=0; rd=r/180*Math.PI;
for(j=0;j<5000*i/s/Math.cos(rd);j++) y+=(s-10*j)*Math.sin(rd);
if(y<0)y=0;
elm[i].style.left=i*5; elm[i].style.top=475-y/1000;
}
}
</script></body></html>

297 名前:HSPが初プログラム@生徒希望 mailto:sage [04/07/09 22:49 ID:nI9aNbgB]
一応あってますか?
課題2小さい方から1000個の素数
sdim m,4000 : notesel m
mesbox m,640,480

n=2 : c=1 : j=1

*judge
if n-1=j : goto *pn
j+

if n \ j=0 : n+ : j=1

wait 1
goto *judge

*pn
c+
noteadd ""+n

if c=1000 : goto *finish

n+ : j=1

wait 1
goto *judge

*finish
objprm 0, m
stop
激しく遅いですが…

298 名前:名前は開発中のものです。 mailto:sage [04/07/09 23:19 ID:JPrr+eC9]
>>297
初期値の c は0にしないと、一つ少なくなるよ

299 名前:HSPで素数 [04/07/10 08:28 ID:gc5EpECZ]
#include "hspext.as"
False=0:True=1:count++:i=3
mes "計算中......"
while count<1000
    sosu=True
    j=3
    emsqr chk,i
    chk=chk>>4
    while j<=chk
        if (i \ j)=0 {
            sosu=False
            _break
        }
        j=j+2
    wend

    if sosu=True {
//        cls
//        mes i
        EndNum=i
        count++
    }
    i=i+2

    gettime NowTime, 6
    if (NowTime!=BeforeTime) {
        BeforeTime=NowTime
        wait 1
    }
wend
mes "計算終了。"+count+"個目の素数は"+EndNum+"です。"
stop mes

300 名前:名前は開発中のものです。 mailto:sage [04/07/10 14:33 ID:/RFPsMma]
ゲムが完成するのは10後くらいの気がするのは私だけだろうか



301 名前:名前は開発中のものです。 mailto:sage [04/07/10 15:30 ID:wQKs6GiV]
このスレ遠回りしすぎ。
素数とか必要になったときにやればいいのに。
ゲーム製作に必ず必要なものではない。

302 名前:名前は開発中のものです。 mailto:sage [04/07/10 16:06 ID:qklEKUA/]
HSPにまともなゲームが無いのはゲームに関係無い事ばかりに力入れてる厨房ばかりだからじゃないか?w

303 名前:名前は開発中のものです。 [04/07/10 16:07 ID:gc5EpECZ]
弾発射の課題で弾の色が黄緑が指定されてたので調べてきました
JISで決まってるようです
#BBC000(187,192,0)
www5d.biglobe.ne.jp/~m_any-dg/jisiro_wabun.html

304 名前:285 mailto:sage [04/07/10 19:01 ID:EpDrHTyy]
>301
俺もそう思った。上から落ちてくるものを受け止めるとか
そういう簡単なゲームを作ったみたほうがいいんじゃないかと。

305 名前:名前は開発中のものです。 mailto:sage [04/07/10 19:02 ID:EpDrHTyy]
しまった、名前欄そのままだった_| ̄|○

306 名前:HSPで素数 エラトステネスの篩い [04/07/10 19:34 ID:gc5EpECZ]
#include "hspext.as"
True=1
False=0
Max=7920
Dim SosuList, Max

emsqr chk,Max
chk=chk>>4

mes "計算中......"
i=3
while i<=chk
    j=i+i
    while j<Max
        SosuList.j=True
        j=j+i
    wend
    i=i+2
wend

i=3
sum=1
while i<Max
    if SosuList.i=False {
        sum++
    }
    i=i+2
wend
mes "合計"+sum+"個の素数を発見しました。"
stop

307 名前:HSPが初プログラム@生徒希望 mailto:sage [04/07/10 21:23 ID:+13mwptL]
>>298
あ、それはちょっと変更ミスです。

>>297で一応合ってるんでしょうか?

308 名前:HSPが初プログラム@生徒希望 mailto:sage [04/07/10 21:53 ID:+13mwptL]
連レススマソ
こうするとちょっと早くなりました
sdim m,4000 : notesel m
mesbox m,640,480

n=2 : c=0 : j=1

*judge

if n-1=j : goto *pn
j+

if n \ j=0 : n+ : j=1

await
goto *judge

*pn
c+
noteadd ""+n

if c=1000 : goto *finish

n+ : j=1


goto *judge

*finish
objprm 0, m
stop


309 名前:名無しさん@そうだ選挙に行こう [04/07/11 07:11 ID:q09vifT2]
課題8 メイン課題 弾を撃って貰います
gamdev.org/up/img/828.zip

310 名前:名無しさん@そうだ選挙に行こう mailto:sage [04/07/11 08:10 ID:k56A1TFY]
課題8 Zで弾発射

<html><head><title>Invader Game?</title><style type="text/css"><!--
.ch{position:absolute;width:32px;height:32px;}
.self{background-color:#FF0000;}.enemy{background-color:#0000FF;}
.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 class="self ch"></div><div id=enemy class="enemy ch"></div>
<div id=mi0 class=missile></div><div id=mi1 class=missile></div><div id=mi2 class=missile></div>
<script language="Javascript"><!--
var timerID, k = [];var x = 304, y = 448, charElm = document.getElementById('char');
var eX, eY = 480, enemyElm = document.getElementById('enemy');
var miE = [], miA = [], miX = [], miY = [];
for (i = 0; i < 3; i++){miE[i] = document.getElementById('mi' + i);miA[i] = false;miY[i] = -20;}
function setEnemy(){eY = -32;enemyElm.style.left = eX = Math.floor(Math.random() * 640);}
function main(){clearTimeout(timerID);
x += k[37] && x ? -8 : k[39] && x < 608 ? 8 : 0;y += k[38] && y ? -8 : k[40] && y < 448 ? 8 : 0;
charElm.style.left = x;charElm.style.top = y;
for (i = 0; i < 3; i++){if (miA[i]){
if (miY[i] < -20) miA[i] = false;
if (Math.abs(miX[i] - eX - 15) < 17 && Math.abs(miY[i] - eY - 15) < 23){
miA[i] = false;miY[i] = -20;setEnemy();}
miE[i].style.top = miY[i] -= 8;
}else if (k[90]){miA[i] = true;miE[i].style.left = miX[i] = x + 15;miE[i].style.top = miY[i] = y - 16;
k[90] = 0;break;}}
if (eY > 480) setEnemy();enemyElm.style.top = eY += 8;
if (Math.abs(x - eX) > 32 || Math.abs(y - eY) > 32) timerID = setTimeout(main, 30);
}//--></script></body></html>




311 名前:名前は開発中のものです。 mailto:sage [04/07/12 00:04 ID:m2Go/Kix]
>>285
>>301
>>304
先生!試しに出題と採点をしてみませんか?

312 名前:名前は開発中のものです。 mailto:sage [04/07/12 06:31 ID:YBMwRYh2]
>310
神降臨

313 名前:名前は開発中のものです。 [04/07/12 14:47 ID:m2Go/Kix]
課題9 課題外伝 ボールの跳ね返りシミュ
gamdev.org/up/img/834.zip

314 名前:C / HSPの生徒 orz mailto:sage [04/07/12 19:22 ID:rv2Ic3EG]
課題8 メイン課題 弾を撃って貰います
gamdev.org/up/img/838.lzh
馬鹿やってたので修正。

315 名前:HSPが初プログラム@生徒希望 mailto:sage [04/07/12 19:26 ID:ANTzJhbU]
敵に触れても終わりませんけど、いいんですか?

316 名前:VB.NETで素数 [04/07/12 21:26 ID:m2Go/Kix]
Module Module1

    Sub Main()
        Dim i As Integer
        Dim j As Integer
        Dim count As Integer
        Dim sosu As Boolean

        i = 2
        While count < 1000
            sosu = False
            For j = 2 To Math.Sqrt(i)
                If (i Mod j) = 0 Then
                    sosu = True
                End If
            Next
            If Not sosu Then
                count = count + 1
                Console.WriteLine(i)
            End If
            i = i + 1
        End While
    End Sub

End Module

317 名前:名前は開発中のものです。 mailto:sage [04/07/13 19:20 ID:EV/5lhQ6]
素数はそろそろ打ち切りにしない?

318 名前:4 ◆3VUXqvbfSY [04/07/13 21:57 ID:UU6rJvtG]
打ち切りってどうやるんでしょうか…

まあ。進める人はいつまでも素数をやらずに、次に進んでください。
とか言っときます。

んでは…次の課題
赤い四角の敵の移動をインベダ風にしよう。
縦2体 横3体の合計六機の敵が、左右に移動します。
端に到達すると、一キャラ分下降します。
弾が当たると、当たったキャラを消去し、ソコが抜けた状態でそのまま、上の動作を繰り返します。
下まで到達されたら終了。

319 名前:名前は開発中のものです。 mailto:sage [04/07/14 14:18 ID:fwuwWRAB]
チェック対象がたくさんある場合の当たり判定って、どうやるのがベストなんだろう?
弾が20個、ターゲットが20機居たら20x20の全組み合わせの判定をするしかないの?

320 名前:名前は開発中のものです。 mailto:sage [04/07/14 14:32 ID:hWTGJY1w]
>>319
Octtree でググってみ



321 名前:C / HSPの生徒 orz mailto:sage [04/07/14 19:12 ID:JsMT7SMh]
課題10 インベダ風移動
gamdev.org/up/img/849.lzh

322 名前:134 mailto:sage [04/07/14 19:57 ID:3WONRXZv]
他のパソコンだと重いかも

gamdev.org/up/img/850.lzh




323 名前:名前は開発中のものです。 mailto:sage [04/07/14 21:08 ID:R7T0IzUh]
>>322
高速弾で弾幕張ってくるインベーダー超怖え(((( ;゚Д゚)))ガクガクブルブル

324 名前:134 mailto:sage [04/07/14 21:42 ID:3WONRXZv]
>323
いや、弾の発射の処理がいまいちよく分からなかったので、そうなってしまいました。
感想ありがとうございます。


325 名前:HSPが初プログラム mailto:sage [04/07/14 22:00 ID:naAXWZ/B]
やってみました。凄く難しかった…

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;
}

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;
}

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 );
}

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 );


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;
}




331 名前:名前は開発中のものです。 mailto:sage [04/07/15 01:45 ID:iLVEI/nf]
やっぱりソース貼りつけは見辛いな

332 名前:名前は開発中のものです。 mailto:sage [04/07/15 08:31 ID:FCzCT1vF]
課題1,3,4,5,7 (ActiveBasic)です。残りは、後でやる事にします

gamdev.org/up/img/854.lzh

333 名前:C / HSPの生徒 orz mailto:sage [04/07/15 09:18 ID:Ian2SxqZ]
>>322>>324
始めて見たけど、こんな感じのインベーダーもいいかも(`・ω・´)

オリジナルに近づけるなら、
 ・折り返しのときにずれないようにする
 ・自分の弾は二発(あの弾幕に一発はきつい)
 ・敵はばらばらに弾を撃つ
だと思う。

せっかく敵を構造体で処理してるから、
敵の処理のところで個別に乱数発射させればいいんじゃない?

334 名前:C / HSPの生徒 orz mailto:sage [04/07/15 09:47 ID:Ian2SxqZ]
やべ、訂正。
〇自分の弾は一発(あの弾幕だと二発じゃないときつい)
×自分の弾は二発(あの弾幕に一発はきつい)

335 名前:C / HSPの生徒 orz mailto:sage [04/07/15 11:27 ID:Ian2SxqZ]
課題10 インベダ風移動 修正版
gamdev.org/up/img/855.lzh

次の課題マダー?

336 名前:名前は開発中のものです。 mailto:sage [04/07/15 12:55 ID:930GPiwR]
>>335
ソースが初心者っぽくない:-)

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)
{

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;


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);
}
}

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) );



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() ) )
{


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 ) ) )

343 名前:名前は開発中のものです。 mailto:sage [04/07/15 21:36 ID:FFz8UuO5]
うpろだ使えよ・・

344 名前:名前は開発中のものです。 mailto:sage [04/07/15 21:48 ID:mfzLmHcI]
過去ログよんだからわざわざ貼ったのに
ろだ推奨にルール変更?

345 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:09 ID:A+IEwnnr]
ところでGdevうき落ちてる?

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;
}


347 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:17 ID:nw/x++ui]
ライフゲームを自分でぐぐって製作

348 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:27 ID:FFz8UuO5]
>>344
いや、俺は過去ログ読んでないから知らんが、こんだけ連張りするんなら
うpろだ使えばいいだろって事。せっかく用意されてんだし。

と思ったら今gamdev.org落ちてんのか・・

349 名前:4 ◆3VUXqvbfSY [04/07/15 22:30 ID:ulthkOuE]
まあ…DirectXを使うときは…
初期化は省きましょう

350 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:33 ID:mfzLmHcI]
避難所は落ちてますね
wiki、ろだ等全滅です
>>173のろだは生きてるようだけど使っていいのかな?テストって言ってたけど
cgi.f11.aaacafe.ne.jp/~novarabb/phpup/upload.php

>>347
先生キタ━━━━━━(゚∀゚)━━━━━━ !!
でもライフゲームなんて作ってたらまたゲームに関係ないものを
作ってと怒り出す人がいるのでその時はおながいしますね
ちなみに採点できる言語は何ですか?



351 名前:4 ◆3VUXqvbfSY [04/07/15 22:40 ID:ulthkOuE]
>>347
ワーイ 良いですねぇ。ライフ「ゲーム」と言い切れば、誰からも文句は出ないですし。
今回は僕は生徒でw

仕様を決めてくださいよ〜
生死条件や個々の移動条件とか

352 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:42 ID:mfzLmHcI]
と思ったら4様もキタ━━━━━━(゚∀゚)━━━━━━ !!
了解しました>初期化は省きましょう
サンプルそのままなんで見る意味もないですし
課題に関係がある所だけ貼って後はろだにうぷするのがバランスいいかな

>>348
連貼りするのは生理的に受け付けないのに我慢してやってるんだから
酷いこといわないでよヽ(`Д´)ノ

353 名前:名前は開発中のものです。 mailto: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 class="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;
}


354 名前:名前は開発中のものです。 mailto: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].style.top = miE[j].style.top = -40;
break;
}
}
if (enBMY == 32) enMY = 0;
timerID = GameOver ? 0 : setTimeout(main, 30);
}//--></script></body></html>


355 名前:134 mailto:sage [04/07/16 10:38 ID:9OMAGGSs]
ライフゲームを検索で見てみましたけど、これは二次元配列の処理がオセロみたいな感じになりそうですね
それで、存在しない配列を参照するバグ続出…

356 名前:名前は開発中のものです。 mailto:sage [04/07/16 11:55 ID:yFlo2kjF]
>>352
「4様」って某韓国俳優のミーハーみたいで何かやだなw

357 名前:134 mailto:sage [04/07/16 23:21 ID:9OMAGGSs]
ライフゲームっぽいものが途中まで出来ました。

まだ、初期位置が決められないのと、予測していた動きにならないので、バグがあると思います。
あと、ソースを見ると分かりますが、判定部分がかなりいいかげんというか、面倒な事をやってます

gamdev.org/up/img/857.lzh

358 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [04/07/17 14:27 ID:qbj2jGXO]
gamdev.org/up/img/862.zip

ライフゲーム with HSP
正常に動作するか怪しいけど…。

359 名前:134 mailto:sage [04/07/17 22:23 ID:s02d0Ih2]
VB製ライフゲーム改良型です。一応、option.txt内を0か1に書き換えれば初期位置を変更できます。
あと、動きのバグも直しました。やはり、長めのロジックは良くないみたいです。

ちなみに、option.txt内の一番下の行の数値を換えると、進行スピードが変わります
(数値が小さい程スピードが速くなる)

gamdev.org/up/img/863.lzh

360 名前:名前は開発中のものです。 mailto:sage [04/07/18 01:40 ID:C6k4fMne]
ライフゲームいいねぇ。シムシティで町を育てるの思い出した。原理的には同じだよね。



361 名前:名前は開発中のものです。 mailto:sage [04/07/18 16:26 ID:yH4KfJO3]
課題6当たり判定
gamdev.org/up/img/865.zip

362 名前:名前は開発中のものです。 mailto:sage [04/07/18 17:00 ID:krHEjaY8]
それSTGスレの課題じゃね?

363 名前:名前は開発中のものです。 [04/07/18 17:14 ID:yH4KfJO3]
>>362
【初心者】課題をクリアしていくスレ【講習会】まとめ
gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

【初心者】課題をクリアしていくスレ【講習会】まとめ
gamdev.org/w/?%5B%5B%A1%DA%BD%E9%BF%B4%BC%D4%A1%DB%B2%DD%C2%EA%A4%F2%A5%AF%A5%EA%A5%A2%A4%B7%A4%C6%A4%A4%A4%AF%A5%B9%A5%EC%A1%DA%B9%D6%BD%AC%B2%F1%A1%DB%A4%DE%A4%C8%A4%E1%5D%5D

364 名前:名前は開発中のものです。 [04/07/18 17:28 ID:Cpcq6TmO]
4つの整数を引数として渡して、その4つから最小値を返す関数を作りたいのですが、いい考えが浮かびません。
賢い皆さんお願いします。

365 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [04/07/18 17:35 ID:8PWFdHyU]
int min4(int n1, int n2, int n3, int n4)
{
    if(n1 > n2) n1 = n2;
    if(n1 > n3) n1 = n3;
    if(n1 > n4) n1 = n4;
    return n1;
}

366 名前:名前は開発中のものです。 mailto:sage [04/07/18 17:35 ID:krHEjaY8]
>>363
失礼いたしました。

>>364
ネタ? 普通に順番に比較するんじゃダメ?
int min(int n[], int size){
  int min = INT_MAX, i = 0;
  for(i = 0; i < size; i++)
    if(min > n[i]) min = n[i];
  return min;
}


367 名前:名前は開発中のものです。 mailto:sage [04/07/18 17:57 ID:zInWmaTA]
アホみたくそのままの
仕様で書いてるな。

368 名前:x≠先生かつx=生徒 ⇒ x=俺 mailto:sage [04/07/18 18:27 ID:8PWFdHyU]
どうしろと・・・。

369 名前:名前は開発中のものです。 mailto:sage [04/07/18 19:20 ID:krHEjaY8]
gamdev.org/up/img/866.zip
ライフゲーム Java-Swing版っす。

370 名前:名前は開発中のものです。 mailto:sage [04/07/19 01:02 ID:trLHjf+G]
>>367
4つぐらいならこれでいいんじゃない?



371 名前:369 mailto:sage [04/07/19 01:56 ID:84bjiiMx]
gamdev.org/up/img/870.lzh
ライフゲームJava-Swing版、いちおう最終版のつもり。

スピード度外視で、JComponent 使いまくり。かなり重いです。
Cellの数を自由に変えられるように作ったのですが、うちの環境
だとまともに動くのは25x25くらいまで。
それ以上は、一応動くけど超スローモーション。ダメダメですわ。

Javaとはいえ、もうチョイなんとかなる筈。絶対なる。
改良するかは未定。


>>369 のリンク、拡張子間違ってました。スマソ。


372 名前:HSPが初プログラム mailto:sage [04/07/19 11:07 ID:SY/zAMfR]
ライフゲームがどんな物かはわかったんですが、
升目は幾つぐらいがいいのでしょうか?

373 名前:名前は開発中のものです。 mailto:sage [04/07/19 11:10 ID:OTj45Fw+]
設定で好きなように変えられるように作ると良い。

374 名前:名前は開発中のものです。 mailto:sage [04/07/19 22:54 ID:E1i61iky]
最初は少なく10*10程度で作っておいて、だんだん広げていけば?
遅くなったようならそれまでにすればいいし。

375 名前:名前は開発中のものです。 mailto:sage [04/07/19 23:41 ID:sgE8uFHh]
課題8弾を撃って貰います
gamdev.org/up/img/872.zip

376 名前:名前は開発中のものです。 mailto:sage [04/07/20 00:57 ID:dOIeUq82]
課題10 インベダ風移動(GameMaker)
gamdev.org/up/img/873.zip

377 名前:名前は開発中のものです。 mailto:sage [04/07/20 17:58 ID:5+HMeKnI]
課題11 ライフゲーム

<html><head><style type="text/css"><!--
.cell{border:1px solid Black;font-size:10px;color:Red;padding:0px;width:10px;height:10px;}
--></style></head><body onload="resize()">
<input type=button onclick="doing = !doing;this.value=doing?'停止':'開始';go()" value="開始">
<input type=button value="ランダム" onclick="setField(1)"><input type=button value="クリア" onclick="setField(0)"><br>
横<input id=horz type=text value="20"><br>縦<input id=vert type=text value="20"><input type=button value="設定" onclick="resize()">
<div id=field></div><script language="Javascript"><!--
var cols, rows, timerID, doing = false, map = new Array(), elms = new Array();
function setField(k){
if (doing) return;
for (i = 0; i < cols * rows; i++){
map[i] = k ? Math.floor(Math.random() * 2) : 0;
elms[i].innerHTML = map[i] == 1 ? '●' : ' ';
}
}
function resize(){
if (doing) return;
cols = document.getElementById('horz').value - 0;
rows = document.getElementById('vert').value - 0;
var str = '<table cellspacing=0 style="cursor:pointer;">';
for (var i = 0; i < rows; i++){
str += '<tr>';
for (var j = 0; j < cols; j++){
num = i * cols + j;
str += '<td id='+num+' class=cell onclick="set(this)"> </td>';
map[num] = 0;


378 名前:名前は開発中のものです。 mailto:sage [04/07/20 17:59 ID:5+HMeKnI]
}
str += '</tr>';
}
document.getElementById('field').innerHTML = str + '</table>';
for (i = 0; i < cols * rows; i++) elms[i] = document.getElementById(i + '');
}
function set(elm){
if (doing) return;
map[elm.id] = 1 - map[elm.id];
elm.innerHTML = map[elm.id] ? '●' : ' ';
}
function get(y, x){
if (x < 0 || y < 0 || x > cols - 1 || y > rows - 1) return 0;
return map[y * cols + x];
}
function go(){
clearTimeout(timerID);
var newMap = new Array();
for (i = 0; i < rows; i++){
for (j = 0; j < cols; j++){
next = get(i-1,j-1) + get(i-1,j) + get(i-1,j+1) + get(i,j-1) + get(i,j+1) + get(i+1,j-1) + get(i+1,j) + get(i+1,j+1);
newMap[i * cols + j] = (next == 2) ? map[i * cols + j] : (next == 3) ? 1 : 0;
}
}
for (i = 0; i < cols * rows; i++){
map[i] = newMap[i];
elms[i].innerHTML = (map[i] == 1) ? '●' : ' ';
}
timerID = doing ? setTimeout(go, 500) : 0;
}
//--></script></body></html>


379 名前:名前は開発中のものです。 mailto:sage [04/07/20 19:16 ID:Tgn6EEUd]
ちまたで話題のProce55ing
ベーシックみたいでおもしれー

なんか作ってみようかな。
ライフゲームもあったよ
processing.org/learning/examples/cellular_automata_1.html

380 名前:Proce55ing@課題2素数 [04/07/20 21:33 ID:Totm+z2W]
int i=2;
int j;
int count=0;
boolean sosu;

while (count < 1000)
{
  sosu = false ;
  for (j = 2; j<=sqrt(i); j++)
  {
    if ((i % j) == 0)
    {
      sosu = true;
    }
   }
  if (! sosu)
  {
    count = count + 1;
    println(i) ;
  }
  i = i + 1; 
}




381 名前:Proce55ingアプレット@課題2素数 [04/07/20 23:39 ID:Totm+z2W]
f50.aaacafe.ne.jp/~kadai/Proce55ing/kadai02/applet/

382 名前:名前は開発中のものです。 mailto:sage [04/07/21 12:16 ID:ddhH1W+g]
#include <iostream.h>
int main(void){
  int sosuu[1000];
  // 配列の初期化
  for(int i=0; i<sizeof(sosuu)/sizeof(int); i++) sosuu[i] = 0;
  // ここから素数の計算
  sosuu[0] = 2;
  for(int i=3; i<=sizeof(sosuu); i+=2){
    int j=0;
    while(sosuu[j]){
      if(!(i%sosuu[j])) break;
      j++;
    }
    if(!sosuu[j]) sosuu[j]=i;
  }
  // 素数の出力
  for(int i=0; sosuu[i]; i++) cout << sosuu[i] << " ";
  return 0;
}

383 名前:名前は開発中のものです。 mailto:sage [04/07/22 12:32 ID:Uh3POFTA]
夏休みだってのに勢いがないな

384 名前:名前は開発中のものです。 mailto:sage [04/07/22 16:10 ID:ybwWGKGj]
課題10 インベダ風移動
gamdev.org/up/img/886.zip

385 名前:名前は開発中のものです。 [04/07/22 19:05 ID:dsDe4Hb2]
>>383
なんかネタくれ
勢い祈願age

386 名前:名前は開発中のものです。 mailto:sage [04/07/22 20:39 ID:wArk38dJ]
ファミコンミニに対抗しましょう。

387 名前:134 mailto:sage [04/07/22 20:45 ID:3j8upKh5]
>386
ファミコンミニのようなゲームを作るという事ですか?

388 名前:ファミコンミニ第1〜3弾のソフト名一覧 [04/07/22 20:59 ID:dsDe4Hb2]
01.スーパーマリオブラザーズ
02.ドンキーコング
03.アイスクライマー
04.エキサイトバイク
05.ゼルダの伝説1
06.パックマン
07.ゼビウス
08.マッピー
09.ボンバーマン
10.スターソルジャー
11.マリオブラザーズ
12.クルクルランド
13.バルーンファイト
14.レッキングクルー
15.ドクターマリオ
16.ディグダグ
17.高橋名人の冒険島
18.魔界村
19.ツインビー
20.がんばれゴエモン!からくり道中
21.スーパーマリオブラザーズ2
22.謎の村雨城
23.メトロイド
24.光神話 パルテナの鏡
25.リンクの冒険
26.ふぁみこんむかし話 新・鬼ヶ島 前後編
27.ファミコン探偵倶楽部 消えた後継者 前後編
28.ファミコン探偵倶楽部 PART2 うしろに立つ少女 前後編
29.悪魔城ドラキュラ
30.SDガンダムワールド ガチャポン戦士 スクランブルウォーズ

389 名前:名前は開発中のものです。 mailto:sage [04/07/22 21:21 ID:ZMO5Xyrb]
売ってるものだけに初心者課題にしてはちと重いのが多いな。
パックマンはスレがあるし。バルーンファイトとディグダグぐらいか?

390 名前:名前は開発中のものです。 mailto:sage [04/07/22 21:33 ID:i0eCPNXf]
>>389
ディグダグはさりげにスムーズな穴掘りを実現しようと思うと大変だぞ
いっそゼビウスやスターソルジャーの方がまだ、ってスレあるか
ここにゃ入ってないがインベーダ移動の発展でギャラクシアン降下とか



391 名前:名前は開発中のものです。 [04/07/22 21:41 ID:o7mEJPNw]
いきなりレベルアップしたな。

392 名前:名前は開発中のものです。 mailto:sage [04/07/22 21:50 ID:ZMO5Xyrb]
んじゃバルーンファイトなら?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<288KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef