ゲームに必要な要素を先生が出してくれます
その課題をクリアしていく講習会です
探検
【初心者】課題をクリアしていくスレ【講習会】
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
04/06/10 18:05ID:VshiFFV8119名前は開発中のものです。
04/06/22 00:43ID:z3uDPhKo sin波形、Delphi
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
ClientWidth:=640;
ClientHeight:=480;
Canvas.Pen.Color:=clRed;
Canvas.MoveTo(0,240);
for i:=0 to 627 do begin
Canvas.LineTo(i, Trunc(sin(i/100)*100)+240);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
ClientWidth:=640;
ClientHeight:=480;
Canvas.Pen.Color:=clRed;
Canvas.MoveTo(0,240);
for i:=0 to 627 do begin
Canvas.LineTo(i, Trunc(sin(i/100)*100)+240);
end;
end;
1204 ◆3VUXqvbfSY
04/06/22 06:00ID:tegmloOZ121名前は開発中のものです。
04/06/22 08:07ID:bOsE7Dq6 >>118-119
正解。
正解。
122名前は開発中のものです。
04/06/22 12:14ID:vyNZUIcy >>111
作ったペンとブラシは終了時に開放したほうがいいですよ。
作ったペンとブラシは終了時に開放したほうがいいですよ。
123名前は開発中のものです。
04/06/22 13:59ID:z3uDPhKo 階級制にしようぜ!
*問題に難易度設定
課題にも難易度が設定されていて大佐向け、中尉向けなどがある
*昇格資格
課題を一つクリアするたびに昇格
自分の階級より下の問題を解いても昇格しない(大佐は少尉向けの課題を解いても出世はなし)
*出題する権利
自分より2つ下向けの課題を出せる(大佐になれば少佐向けを出題できる)
*特別昇格
自分より格下の問題を解いた場合、通常は昇格しない
しかし、お手本になるようなすばらしい解答、解説をした場合は
昇格の対象となる
(上級職の人の任意か下級職の人の過半数の支持が目安)
こんな感じでどうよ
せっかくだからゲーム感覚でやろうじゃないかと設定してみた
ちょっと昇格条件が甘すぎる気もするけど
もちろん4 ◆3VUXqvbfSY氏や他の先生役の人はそのまま出題してくれるとありがたい
階級はこれがわかりやすくていい
http://www.special-warfare.net/data_base/102_military_unit/001_military_us/rank_01.html
*問題に難易度設定
課題にも難易度が設定されていて大佐向け、中尉向けなどがある
*昇格資格
課題を一つクリアするたびに昇格
自分の階級より下の問題を解いても昇格しない(大佐は少尉向けの課題を解いても出世はなし)
*出題する権利
自分より2つ下向けの課題を出せる(大佐になれば少佐向けを出題できる)
*特別昇格
自分より格下の問題を解いた場合、通常は昇格しない
しかし、お手本になるようなすばらしい解答、解説をした場合は
昇格の対象となる
(上級職の人の任意か下級職の人の過半数の支持が目安)
こんな感じでどうよ
せっかくだからゲーム感覚でやろうじゃないかと設定してみた
ちょっと昇格条件が甘すぎる気もするけど
もちろん4 ◆3VUXqvbfSY氏や他の先生役の人はそのまま出題してくれるとありがたい
階級はこれがわかりやすくていい
http://www.special-warfare.net/data_base/102_military_unit/001_military_us/rank_01.html
124名前は開発中のものです。
04/06/22 15:06ID:3E6K9gNw 階級みたいにポンポンと技術は上がらんからねぇ。
プログラミングの技術って、どちらかというと山登りみたいな感じだと思う。
準備(下積み)がほぼ大半を占めるけど、準備だけしてもだめで
登り方も知らないと駄目だし(変な登り方をすると途中でのたれ死ぬ)
なにより体力(根気)が必要。
どれをとっても「これだけやれば大丈夫」という基準が無い。
たまに天才がいて、Tシャツ短パンで一直線にエベレストに登頂したりするけど
そういうやつ以外は「大佐のくせにそんなことも知らないのかよ。プッ」って言われるのがオチかも。
プログラミングの技術って、どちらかというと山登りみたいな感じだと思う。
準備(下積み)がほぼ大半を占めるけど、準備だけしてもだめで
登り方も知らないと駄目だし(変な登り方をすると途中でのたれ死ぬ)
なにより体力(根気)が必要。
どれをとっても「これだけやれば大丈夫」という基準が無い。
たまに天才がいて、Tシャツ短パンで一直線にエベレストに登頂したりするけど
そういうやつ以外は「大佐のくせにそんなことも知らないのかよ。プッ」って言われるのがオチかも。
125生徒BLUE@入隊希望
04/06/22 23:32ID:ImuZbVzv 赤い四角の課題解きました
書き込み制限に引っ掛かりますのでのんびり貼り付けていきます
参考にしたのは猫でもわかるプログラミングとSTGを最初からみんなで作るスレです
TABやスペースをnbspに変換するツールって欲しい時にはなかなか出てこないですね
ム板でたまに見かけた記憶はあるのですが……、持ってる人いたらください
それでは貼り付け開始
// 課題 赤い四角
#include <windows.h>
#define WIDTH 640
#define HEIGHT 480
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
char szClassNme[] = "WINDOWCLASSNAME";
int DrawGr(HWND hWnd)
{
PAINTSTRUCT paint;
HDC hdc = BeginPaint(hWnd, &paint);
HPEN hPen, hOldPen;
RECT rt;
GetClientRect(hWnd, &rt);
hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
hOldPen = (HPEN)SelectObject(hdc, hPen);
HBRUSH hBrush = CreateSolidBrush( RGB(255, 0, 0));
SelectObject(hdc, hBrush);
Rectangle(hdc, 0, 0, 320, 240);
SelectObject(hdc, hBrush);
DeleteObject(hPen);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &paint);
return 0;
}
書き込み制限に引っ掛かりますのでのんびり貼り付けていきます
参考にしたのは猫でもわかるプログラミングとSTGを最初からみんなで作るスレです
TABやスペースをnbspに変換するツールって欲しい時にはなかなか出てこないですね
ム板でたまに見かけた記憶はあるのですが……、持ってる人いたらください
それでは貼り付け開始
// 課題 赤い四角
#include <windows.h>
#define WIDTH 640
#define HEIGHT 480
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
char szClassNme[] = "WINDOWCLASSNAME";
int DrawGr(HWND hWnd)
{
PAINTSTRUCT paint;
HDC hdc = BeginPaint(hWnd, &paint);
HPEN hPen, hOldPen;
RECT rt;
GetClientRect(hWnd, &rt);
hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
hOldPen = (HPEN)SelectObject(hdc, hPen);
HBRUSH hBrush = CreateSolidBrush( RGB(255, 0, 0));
SelectObject(hdc, hBrush);
Rectangle(hdc, 0, 0, 320, 240);
SelectObject(hdc, hBrush);
DeleteObject(hPen);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &paint);
return 0;
}
126名前は開発中のものです。
04/06/23 01:15ID:4HGTxQki 怖いのは登山ルートが間違った状態で登っていることだ
行き先は崖だったり
行き先は崖だったり
127生徒BLUE@入隊希望
04/06/23 15:21ID:G2RbfgcV >>125の続き
//640x480ってひょっとしてクライアントウィンドウじゃなくてウィンドウのサイズでよかったですか?
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,LPSTR lpszCmdLine, int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS myProg;
if (!hPreInst) {
myProg.style =CS_HREDRAW | CS_VREDRAW;
myProg.lpfnWndProc =WndProc;
myProg.cbClsExtra =0;
myProg.cbWndExtra =0;
myProg.hInstance =hInstance;
myProg.hIcon =NULL;
myProg.hCursor =LoadCursor(NULL, IDC_ARROW);
myProg.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
myProg.lpszMenuName =NULL;
myProg.lpszClassName =szClassNme;
if (!RegisterClass(&myProg))
return FALSE;
}
RECT rect; rect.top = 0; rect.left = 0; rect.right = WIDTH; rect.bottom = HEIGHT;
DWORD style=WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
AdjustWindowRect(&rect, style, FALSE); int width = rect.right - rect.left; int height = rect.bottom - rect.top;
hWnd=CreateWindow(szClassNme, "【初心者】課題をクリアしていくスレ【講習会】", style, CW_USEDEFAULT,0,width,height,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
//640x480ってひょっとしてクライアントウィンドウじゃなくてウィンドウのサイズでよかったですか?
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,LPSTR lpszCmdLine, int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS myProg;
if (!hPreInst) {
myProg.style =CS_HREDRAW | CS_VREDRAW;
myProg.lpfnWndProc =WndProc;
myProg.cbClsExtra =0;
myProg.cbWndExtra =0;
myProg.hInstance =hInstance;
myProg.hIcon =NULL;
myProg.hCursor =LoadCursor(NULL, IDC_ARROW);
myProg.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
myProg.lpszMenuName =NULL;
myProg.lpszClassName =szClassNme;
if (!RegisterClass(&myProg))
return FALSE;
}
RECT rect; rect.top = 0; rect.left = 0; rect.right = WIDTH; rect.bottom = HEIGHT;
DWORD style=WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
AdjustWindowRect(&rect, style, FALSE); int width = rect.right - rect.left; int height = rect.bottom - rect.top;
hWnd=CreateWindow(szClassNme, "【初心者】課題をクリアしていくスレ【講習会】", style, CW_USEDEFAULT,0,width,height,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
128名前は開発中のものです。
04/06/23 18:23ID:XpSZny8Q VBも参加していいですか?
129名前は開発中のものです。
04/06/23 19:25ID:mQ2LYzxk mingwとかSDLとかHSPとかSDKとかSDLPerlとかが一体なんなのか
理解できない漏れ…
とりあえずHelloWorldはできたけどウインドウ表示なんて壁高杉
どうすればいいんだよう…
理解できない漏れ…
とりあえずHelloWorldはできたけどウインドウ表示なんて壁高杉
どうすればいいんだよう…
1304 ◆3VUXqvbfSY
04/06/23 20:11ID:YwmthHB/ >>128
ぜんぜんOK!HSPが居るんだから大じょーぶ。
>>129
MSDNライブラリを読む事から始めましょう。
ウィンドウ表示に関しては、VCの最初の壁です。コレがあるからVCは面倒くさいんですが…。
しかし、ウィンドウが表示できれば、簡単なゲームは直ぐ作れるようになりますって。
まあ、難しければHSPに転向しちゃうって手もあります。
スピードが要求されなければ、かなり便利な言語です。
HSPでググってみてください。
>>ALL
わかりました。インベーダーで始めましょう。
ただし、インベーダーが一通り作れたら、落ちゲーにも触れますよ(ぷよぷよやドリラー等)
階級制は面白いんですが…判断基準が…微妙…。
昇級試験制にしたらどうでしょう。
たとえば。
問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ)
とか
ぜんぜんOK!HSPが居るんだから大じょーぶ。
>>129
MSDNライブラリを読む事から始めましょう。
ウィンドウ表示に関しては、VCの最初の壁です。コレがあるからVCは面倒くさいんですが…。
しかし、ウィンドウが表示できれば、簡単なゲームは直ぐ作れるようになりますって。
まあ、難しければHSPに転向しちゃうって手もあります。
スピードが要求されなければ、かなり便利な言語です。
HSPでググってみてください。
>>ALL
わかりました。インベーダーで始めましょう。
ただし、インベーダーが一通り作れたら、落ちゲーにも触れますよ(ぷよぷよやドリラー等)
階級制は面白いんですが…判断基準が…微妙…。
昇級試験制にしたらどうでしょう。
たとえば。
問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ)
とか
131名前は開発中のものです。
04/06/23 20:12ID:bTZutcV4 真に初心者であれば分からないのは当然。
とりあえず分からない単語を列挙すれば、誰か暇な人が答えてくれるかもしれない。
とりあえず分からない単語を列挙すれば、誰か暇な人が答えてくれるかもしれない。
132名前は開発中のものです。
04/06/23 22:00ID:dPgxaG/R133生徒BLUE@入隊希望
04/06/23 22:23ID:G2RbfgcV >>127の続き
これで完了です
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
DrawGr(hWnd);
break;
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}
これで完了です
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
DrawGr(hWnd);
break;
default:
return(DefWindowProc(hWnd, msg, wParam, lParam));
}
return (0L);
}
134名前は開発中のものです。
04/06/24 00:34ID:9IgBi+UW >>130 ありがとうございます。C言語でも出来ますけど、あまり自信が無いんです…。
VBでキャラの移動と弾の発射だけやってみました。
←→キーで左右移動、Z or Spaceキーで弾の発射です。
http://gamdev.org/up/img/737.lzh
VBでキャラの移動と弾の発射だけやってみました。
←→キーで左右移動、Z or Spaceキーで弾の発射です。
http://gamdev.org/up/img/737.lzh
135名前は開発中のものです。
04/06/24 14:35ID:9ja3YKOg >>134
×押して終了しても、プロセスが残ってるみたい
×押して終了しても、プロセスが残ってるみたい
04/06/24 21:11ID:Yq9S/x7T
2Dメトロイド&3Dメトロイド作ってみたらどうだ?
難しいがエラー無く完成したら腕上がるぞ。
難しいがエラー無く完成したら腕上がるぞ。
137生徒BLUE
04/06/24 23:20ID:kfww3pCy 次はいよいよインベーダーですか
参考にしたサイト:http://www3.omn.ne.jp/~renas/Win32/
今回新しく使った関数:MoveToEx、LineTo
>>125>>127>>133の中からDrawGr関数を書き換えて#include <math.h>を追加します。
//課題4sin波
int DrawGr(HWND hWnd)
{
PAINTSTRUCT paint;
HDC hdc = BeginPaint(hWnd, &paint);
HPEN hPen, hOldPen;
RECT rt;
GetClientRect(hWnd, &rt);
hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
hOldPen = (HPEN)SelectObject(hdc, hPen);
HBRUSH hBrush = CreateSolidBrush( RGB(255, 0, 0));
SelectObject(hdc, hBrush);
MoveToEx(hdc,0,sin(0.0)*100+240,NULL);
for (float i=0; i<6.28; i+=0.01) {
LineTo(hdc,i*100,sin(i)*100+240);
}
SelectObject(hdc, hBrush);
DeleteObject(hPen);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &paint);
return 0;
}
参考にしたサイト:http://www3.omn.ne.jp/~renas/Win32/
今回新しく使った関数:MoveToEx、LineTo
>>125>>127>>133の中からDrawGr関数を書き換えて#include <math.h>を追加します。
//課題4sin波
int DrawGr(HWND hWnd)
{
PAINTSTRUCT paint;
HDC hdc = BeginPaint(hWnd, &paint);
HPEN hPen, hOldPen;
RECT rt;
GetClientRect(hWnd, &rt);
hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));
hOldPen = (HPEN)SelectObject(hdc, hPen);
HBRUSH hBrush = CreateSolidBrush( RGB(255, 0, 0));
SelectObject(hdc, hBrush);
MoveToEx(hdc,0,sin(0.0)*100+240,NULL);
for (float i=0; i<6.28; i+=0.01) {
LineTo(hdc,i*100,sin(i)*100+240);
}
SelectObject(hdc, hBrush);
DeleteObject(hPen);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hWnd, &paint);
return 0;
}
138134
04/06/25 02:41ID:dGOyDbGP1394 ◆3VUXqvbfSY
04/06/25 07:09ID:va8qXu2v >>134さん
まずは、sinからお願いします。
あんまり爆走すると、先生にしますよ。
むしろ、なって欲し…
>>ALL
次の課題は、基本中の基本。
キー入力です。
先程の赤い四角を使い、カーソル(テンキーでも可)でグリグリ動く物を作ってください。
参考程度に
VC++ GetKeyState();//バーチャルキーの状態取得。
C++ getch();//標準入力
VB _KeyDown(key%,Shift%)//keyにキーコードが返る
HSP getkey p1,p2//p2のキーが押されていると、p1に1が代入される。
まずは、sinからお願いします。
あんまり爆走すると、先生にしますよ。
むしろ、なって欲し…
>>ALL
次の課題は、基本中の基本。
キー入力です。
先程の赤い四角を使い、カーソル(テンキーでも可)でグリグリ動く物を作ってください。
参考程度に
VC++ GetKeyState();//バーチャルキーの状態取得。
C++ getch();//標準入力
VB _KeyDown(key%,Shift%)//keyにキーコードが返る
HSP getkey p1,p2//p2のキーが押されていると、p1に1が代入される。
04/06/25 18:25ID:oIl/kTfS
sin波生成
http://rupan.zive.net/~kain/cgi-bin/up/src/up1133.zip
http://rupan.zive.net/~kain/cgi-bin/up/src/up1133.zip
14163 ◆xdaKt6k1XI
04/06/25 23:47ID:BZ++Tyug 動かせました。
WIDTH 640,480
*main
BUFFER 2,640,480,1
COLOR 255
BOXF x+320,y+240,x,y
pos x,y
stick a,15
if a&1 : x-1
if a&2 : y-1
if a&4 : x+1
if a&8 : y+1
await 1
GSEL 0
GCOPY 2,0,0,640,480
goto *main
stop
WIDTH 640,480
*main
BUFFER 2,640,480,1
COLOR 255
BOXF x+320,y+240,x,y
pos x,y
stick a,15
if a&1 : x-1
if a&2 : y-1
if a&4 : x+1
if a&8 : y+1
await 1
GSEL 0
GCOPY 2,0,0,640,480
goto *main
stop
142生徒142
04/06/26 00:54ID:NxwPZgd2143生徒142
04/06/26 03:19ID:NxwPZgd2 連投
プロシージャのみ貼り付けてみます。
描画がカクカクします、再描画の処理はどうすればきれいに動くのでしょうか?
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp){
HDC hdc;PAINTSTRUCT ps;HPEN hpen;static int x,y;
switch(msg){case WM_CREATE:x = 0;y = 0;break;
case WM_KEYDOWN:if(wp == VK_RIGHT){if(x < 310){x += 5;}}
if(wp == VK_LEFT){f(x > 0){x -= 5;}}
if(wp == VK_UP){if(y > 0){y -= 5}};
if(wp == VK_DOWN){if(y < 210){ y += 5;}}
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
hpen = CreatePen(PS_SOLID,3,RGB(255,0,0));
SelectObject(hdc,hpen);
Rectangle(hdc,x,y,x+320,y+240);
DeleteObject(hpen);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,msg,wp,lp));
}
return 0;
}
プロシージャのみ貼り付けてみます。
描画がカクカクします、再描画の処理はどうすればきれいに動くのでしょうか?
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp){
HDC hdc;PAINTSTRUCT ps;HPEN hpen;static int x,y;
switch(msg){case WM_CREATE:x = 0;y = 0;break;
case WM_KEYDOWN:if(wp == VK_RIGHT){if(x < 310){x += 5;}}
if(wp == VK_LEFT){f(x > 0){x -= 5;}}
if(wp == VK_UP){if(y > 0){y -= 5}};
if(wp == VK_DOWN){if(y < 210){ y += 5;}}
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd,&ps);
hpen = CreatePen(PS_SOLID,3,RGB(255,0,0));
SelectObject(hdc,hpen);
Rectangle(hdc,x,y,x+320,y+240);
DeleteObject(hpen);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd,msg,wp,lp));
}
return 0;
}
144名前は開発中のものです。
04/06/26 04:14ID:sMwugFr/ if(wp == VK_LEFT){f(x > 0){x -= 5;}}
↓
if(wp == VK_LEFT){if(x > 0){x -= 5;}}
if(wp == VK_UP){if(y > 0){y -= 5}};
↓
if(wp == VK_UP){if(y > 0){y -= 5;}}
↓
if(wp == VK_LEFT){if(x > 0){x -= 5;}}
if(wp == VK_UP){if(y > 0){y -= 5}};
↓
if(wp == VK_UP){if(y > 0){y -= 5;}}
145生徒142
04/06/26 04:30ID:NxwPZgd2146134
04/06/26 05:20ID:1CizLySr147名前は開発中のものです。
04/06/26 08:40ID:K/WyEUE8 <html><head><style type="text/css"><!--
.put{background-color:#FF0000;position:absolute;width:320px;height:240px;}
--></style></head>
<body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0">
<div id=char class=put></div><script language="Javascript">
var timerID,k=[],x=0,y=0,charElm=document.getElementById('char');
function main(){
clearTimeout(timerID);timerID=setTimeout(main,30);
x+=k[37]&&x?-8:k[39]&&x<320?8:0;
y+=k[38]&&y?-8:k[40]&&y<240?8:0;
charElm.style.left=x;charElm.style.top=y;}
</script></body></html>
.put{background-color:#FF0000;position:absolute;width:320px;height:240px;}
--></style></head>
<body onLoad="main()" onKeyDown="k[event.keyCode]=1" onKeyUp="k[event.keyCode]=0">
<div id=char class=put></div><script language="Javascript">
var timerID,k=[],x=0,y=0,charElm=document.getElementById('char');
function main(){
clearTimeout(timerID);timerID=setTimeout(main,30);
x+=k[37]&&x?-8:k[39]&&x<320?8:0;
y+=k[38]&&y?-8:k[40]&&y<240?8:0;
charElm.style.left=x;charElm.style.top=y;}
</script></body></html>
148134
04/06/26 10:37ID:1CizLySr149名前は開発中のものです。
04/06/26 13:26ID:wteFDikq Wikiなんかじゃなくて専用のHP作ったら?
ソース貼るのに不憫だろ
ソース貼るのに不憫だろ
150名前は開発中のものです。
04/06/26 13:31ID:jYUMekjC >>149
神キタ━━━━━━(゚∀゚)━━━━━━ !!
tabとか半角スペースめんどいもんな
ひょっとして過去にうぷされたソースとかも整形してうぷしてくれれば
うれしいけどそれは望みすぎかな
急がなくていいからがんがれ!
神キタ━━━━━━(゚∀゚)━━━━━━ !!
tabとか半角スペースめんどいもんな
ひょっとして過去にうぷされたソースとかも整形してうぷしてくれれば
うれしいけどそれは望みすぎかな
急がなくていいからがんがれ!
151名前は開発中のものです。
04/06/26 13:39ID:CUwn7Ubj 強引な150に萌え
152Ruby@課題1数当て
04/06/26 14:32ID:jYUMekjC kotae=rand(9)+1
while (true)
print "1〜9の数を入力してください\n"
gets
ans=Integer(chop)
if ans==kotae then
print "正解\n"
break
else
print "不正解\n"
end
end
while (true)
print "1〜9の数を入力してください\n"
gets
ans=Integer(chop)
if ans==kotae then
print "正解\n"
break
else
print "不正解\n"
end
end
153149
04/06/26 15:26ID:wteFDikq 俺かYoΣ(´□`;)
154Ruby@課題2素数
04/06/26 16:17ID:jYUMekjC count=0
i=2
while count<1000 do
sosu=true
for j in 2..i-1 do
if ( (i % j) == 0)
sosu=false
end
end
if (sosu)
print "#{i}\n"
count=count+1
end
i=i+1
end
print "素数を#{count}個みつけました\n"
i=2
while count<1000 do
sosu=true
for j in 2..i-1 do
if ( (i % j) == 0)
sosu=false
end
end
if (sosu)
print "#{i}\n"
count=count+1
end
i=i+1
end
print "素数を#{count}個みつけました\n"
155Ruby/SDL@課題3赤い四角
04/06/26 17:32ID:jYUMekjC require 'sdl'
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
screen.fillRect( 0, 0, 320, 240, [ 255, 0, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit, SDL::Event2::KeyDown
exit
end
end
end
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
screen.fillRect( 0, 0, 320, 240, [ 255, 0, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit, SDL::Event2::KeyDown
exit
end
end
end
156Ruby/SDL@課題4sin波形
04/06/26 18:50ID:jYUMekjC require 'sdl'
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
count=0.0
while count < 6.28
x=count*100
y=Math.sin(count)*100+240
screen.putPixel(x,y,[255,0,0])
count=count+0.01
end
screen.updateRect( 0, 0, 0, 0 )
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit, SDL::Event2::KeyDown
exit
end
end
end
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
count=0.0
while count < 6.28
x=count*100
y=Math.sin(count)*100+240
screen.putPixel(x,y,[255,0,0])
count=count+0.01
end
screen.updateRect( 0, 0, 0, 0 )
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit, SDL::Event2::KeyDown
exit
end
end
end
157Ruby/SDL@課題5キー入力
04/06/26 20:12ID:jYUMekjC require 'sdl'
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
y=0
x=0
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit
exit
end
end
SDL::Key.scan
y -= 1 if SDL::Key.press?( SDL::Key::UP )
x += 1 if SDL::Key.press?( SDL::Key::RIGHT )
y += 1 if SDL::Key.press?( SDL::Key::DOWN )
x -= 1 if SDL::Key.press?( SDL::Key::LEFT )
x=0 if x<0
x=319 if x > 319
y=0 if y<0
y=239 if y > 239
screen.fillRect( 0, 0, 640, 480, [ 0, 0, 0 ] )
screen.fillRect( x, y, 320, 240, [ 255, 0, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
end
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
y=0
x=0
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit
exit
end
end
SDL::Key.scan
y -= 1 if SDL::Key.press?( SDL::Key::UP )
x += 1 if SDL::Key.press?( SDL::Key::RIGHT )
y += 1 if SDL::Key.press?( SDL::Key::DOWN )
x -= 1 if SDL::Key.press?( SDL::Key::LEFT )
x=0 if x<0
x=319 if x > 319
y=0 if y<0
y=239 if y > 239
screen.fillRect( 0, 0, 640, 480, [ 0, 0, 0 ] )
screen.fillRect( x, y, 320, 240, [ 255, 0, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
end
158名前は開発中のものです。
04/06/26 21:12ID:4yTlUeBl こりゃある意味、荒らしといえなくもないな
159名前は開発中のものです。
04/06/26 21:34ID:jYUMekjC Ruby/SDLインストール方法(Windows)
1.とりあえずコレをダウンロード
http://www.kmc.gr.jp/~ohai/rubysdl/rubysdl-0.9.2-win32bin-pack.lzh
2.解凍して適当なフォルダにコピー
3.[コピーしたフォルダ]\usr\local\binにパスを切る
(たとえばc:\ruby\usr\local\binなど)
以上でインストール終了。
スクリプトをテキストファイルとして保存して(拡張子は.rbが一般的)
ruby [ファイル名]として実行
(たとえばruby sosu.rbなど)
公式サイト
http://www.kmc.gr.jp/~ohai/index.html
チュートリアル
http://www.kmc.gr.jp/~ohai/rubysdl_intro.html
1.とりあえずコレをダウンロード
http://www.kmc.gr.jp/~ohai/rubysdl/rubysdl-0.9.2-win32bin-pack.lzh
2.解凍して適当なフォルダにコピー
3.[コピーしたフォルダ]\usr\local\binにパスを切る
(たとえばc:\ruby\usr\local\binなど)
以上でインストール終了。
スクリプトをテキストファイルとして保存して(拡張子は.rbが一般的)
ruby [ファイル名]として実行
(たとえばruby sosu.rbなど)
公式サイト
http://www.kmc.gr.jp/~ohai/index.html
チュートリアル
http://www.kmc.gr.jp/~ohai/rubysdl_intro.html
160名前は開発中のものです。
04/06/26 23:23ID:VAfJSjue 宣伝?
161名前は開発中のものです。
04/06/26 23:49ID:PaYEz6W8 キー入力、Delphiです
TApplicationEventsとQD3のDDIDEX使ってます
private
Chara: TPoint;
procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
var Done: Boolean);
begin
DDIDEX1.Scan(DI_KEYB);
Chara.X:=Chara.X+DDIDEX1.Stick.X;
Chara.Y:=Chara.Y+DDIDEX1.Stick.Y;
if (Chara.X<0) or (Chara.X>319) then begin
Chara.X:=Chara.X-DDIDEX1.Stick.X;
end;
if (Chara.Y<0) or (Chara.Y>239) then begin
Chara.Y:=Chara.Y-DDIDEX1.Stick.Y;
end;
Canvas.Brush.Color:=clBlack;
Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));
Canvas.Brush.Color:=clRed;
Canvas.FillRect(Rect(Chara.X,Chara.Y,Chara.X+320,Chara.Y+240));
Sleep(5);
Done:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:=True;
ClientWidth:=640;
ClientHeight:=480;
end;
TApplicationEventsとQD3のDDIDEX使ってます
private
Chara: TPoint;
procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
var Done: Boolean);
begin
DDIDEX1.Scan(DI_KEYB);
Chara.X:=Chara.X+DDIDEX1.Stick.X;
Chara.Y:=Chara.Y+DDIDEX1.Stick.Y;
if (Chara.X<0) or (Chara.X>319) then begin
Chara.X:=Chara.X-DDIDEX1.Stick.X;
end;
if (Chara.Y<0) or (Chara.Y>239) then begin
Chara.Y:=Chara.Y-DDIDEX1.Stick.Y;
end;
Canvas.Brush.Color:=clBlack;
Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight));
Canvas.Brush.Color:=clRed;
Canvas.FillRect(Rect(Chara.X,Chara.Y,Chara.X+320,Chara.Y+240));
Sleep(5);
Done:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:=True;
ClientWidth:=640;
ClientHeight:=480;
end;
162名前は開発中のものです。
04/06/27 01:17ID:m6T91X5d >>149
インデントを保ったままソースをうぷしたいなら
ソース置き場やゲムデヴあぷろだをを利用させてもらう手もある
というかこのスレはなぜ貼り付けるのが主流なんだw
ソース置き場
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
ゲムデヴあぷろだ
http://gamdev.org/up/
>>151
うむ、萌えプロ目指してるからな
参考1) http://www.bk1.co.jp/cgi-bin/srch/srch_message.cgi/40dd9dc0e029f0104573?aid=p-sf0023&tpl=genre/07/softbank.html
参考2) http://oshimago.chu.jp/personal/archives/DSC00117.JPG
>>153
☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 専用のHPまだ〜?
\_/⊂ ⊂_) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| S p o k e |
>>158
このスレ自体(ry
まぁ、土曜日を利用してスタートダッシュだ許せ
>>160
おまいらも開発環境や実行環境ぐらい書けよ
ところでRubyって宣伝と思われるほどマイナーなのか?
ちなみにRuby暦1日(もう2日目だな)なので優しくしてくれな
インデントを保ったままソースをうぷしたいなら
ソース置き場やゲムデヴあぷろだをを利用させてもらう手もある
というかこのスレはなぜ貼り付けるのが主流なんだw
ソース置き場
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
ゲムデヴあぷろだ
http://gamdev.org/up/
>>151
うむ、萌えプロ目指してるからな
参考1) http://www.bk1.co.jp/cgi-bin/srch/srch_message.cgi/40dd9dc0e029f0104573?aid=p-sf0023&tpl=genre/07/softbank.html
参考2) http://oshimago.chu.jp/personal/archives/DSC00117.JPG
>>153
☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 専用のHPまだ〜?
\_/⊂ ⊂_) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| S p o k e |
>>158
このスレ自体(ry
まぁ、土曜日を利用してスタートダッシュだ許せ
>>160
おまいらも開発環境や実行環境ぐらい書けよ
ところでRubyって宣伝と思われるほどマイナーなのか?
ちなみにRuby暦1日(もう2日目だな)なので優しくしてくれな
163名前は開発中のものです。
04/06/27 02:56ID:fYoguU/V >>162
>このスレはなぜ貼り付けるのが主流なんだw
ダウソして解凍してって面倒なので結構貼り付けいいと思うんだが
普通のレスが見にくい&改行制限が問題だな
2ch型掲示板を設置して生徒一人につき1スレ使ってソースを貼り付けていくっていうのはどうでしょ?
TABの問題が残るかな?
>このスレはなぜ貼り付けるのが主流なんだw
ダウソして解凍してって面倒なので結構貼り付けいいと思うんだが
普通のレスが見にくい&改行制限が問題だな
2ch型掲示板を設置して生徒一人につき1スレ使ってソースを貼り付けていくっていうのはどうでしょ?
TABの問題が残るかな?
164名前は開発中のものです。
04/06/27 06:21ID:6ucDfgWE >>163
神キタ━━━━━━(゚∀゚)━━━━━━ !!
ダウソとか解凍めんどいもんな
ひょっとして過去にうぷされたソースとかもスレ立てて貼りつけてくれれば
うれしいけどそれは望みすぎかな
急がなくていいからがんがれ!
神キタ━━━━━━(゚∀゚)━━━━━━ !!
ダウソとか解凍めんどいもんな
ひょっとして過去にうぷされたソースとかもスレ立てて貼りつけてくれれば
うれしいけどそれは望みすぎかな
急がなくていいからがんがれ!
165名前は開発中のものです。
04/06/27 07:31ID:fYoguU/V166名前は開発中のものです。
04/06/27 09:45ID:sIosK61q ソースをコピペしてコンパイルして実行するほうがはるかにめんどい
167129
04/06/27 10:57ID:BWzYLsUd 今更ながらやっとwindows.hが読める?環境が整ったよ…
>>130-132さんありがとう。
LSI-C86試食でやっていたのですがこの度borlandのなんとかをいれました
次はSDL&Cygwin????
なんかいまだにDelphiとか分からないんですけど何をどうするのが好ましいのでしょうか…?
自分だけ違う次元ですね…。鬱。
>>130-132さんありがとう。
LSI-C86試食でやっていたのですがこの度borlandのなんとかをいれました
次はSDL&Cygwin????
なんかいまだにDelphiとか分からないんですけど何をどうするのが好ましいのでしょうか…?
自分だけ違う次元ですね…。鬱。
168名前は開発中のものです。
04/06/27 12:50ID:1xxqplwj >167
SDLとかCygwinとかDelphiとか気にしなくても良いから
とりあえずborland c++ コンパイラ用意できたということで
Cのお勉強をしてみましょうよ
SDLとかCygwinとかDelphiとか気にしなくても良いから
とりあえずborland c++ コンパイラ用意できたということで
Cのお勉強をしてみましょうよ
169167
04/06/27 13:15ID:BWzYLsUd170課題2@D言語
04/06/27 13:29ID:TlIkOaxm まだβ版だけど先取りして勉強。
素数判定。
const int MAX_COUNT = 1000;
int main() {
int num,check,count;
printf("1\n");
count = 1;
num = 2;
while (count<MAX_COUNT) {
for (check=2;check<num;check++) {
if (num%check==0) break;
}
if (check==num) {
printf("%d\n",num);
count++;
}
num++;
}
return 0;
}
素数判定。
const int MAX_COUNT = 1000;
int main() {
int num,check,count;
printf("1\n");
count = 1;
num = 2;
while (count<MAX_COUNT) {
for (check=2;check<num;check++) {
if (num%check==0) break;
}
if (check==num) {
printf("%d\n",num);
count++;
}
num++;
}
return 0;
}
171名前は開発中のものです。
04/06/27 17:32ID:m6T91X5d >>163
ソース貼り付けのメリットも捨てがたいな
テキストファイルを扱えるあぷろだがあれば閲覧もダウンロードもできて楽かもしれん
スレにソース貼りまくりも妙に楽しいんだが
>>164
,,ヘ ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,, ゚∇゚) < クレクレ厨逝ってよち!
〜(,,_ノ \_____________
>>165
megaBBSスクリプト( http://pabbs.hp.infoseek.co.jp/haifu.html )が半角、全角、TABを扱えていい感じだった
しかも等幅フォントも使えるみたい
2chでインデントつける方法は教えてもらってきた
http://pc5.2ch.net/test/read.cgi/tech/1088022524/83-92
>>166
だよな、人のソースみて勉強してる立場からすると崩れたソースは辛い
>>167>>169
Win32APIで窓プログラミング汁!
ぬくぬくどころか最難関だw
といっても参加者やわかる人が多い環境でもあるので王道かもしれん
ひたすらたくさんの開発環境を整えてPCの基礎知識を仕入れるのも(・∀・)イイ!
>>170
D言語知らないから間違ってたら悪いんだが
それって1も表示されないか?(1はもちろん素数じゃない)
>>生徒BLUE氏
BRUSHの解放忘れがあるよ
ソース貼り付けのメリットも捨てがたいな
テキストファイルを扱えるあぷろだがあれば閲覧もダウンロードもできて楽かもしれん
スレにソース貼りまくりも妙に楽しいんだが
>>164
,,ヘ ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,, ゚∇゚) < クレクレ厨逝ってよち!
〜(,,_ノ \_____________
>>165
megaBBSスクリプト( http://pabbs.hp.infoseek.co.jp/haifu.html )が半角、全角、TABを扱えていい感じだった
しかも等幅フォントも使えるみたい
2chでインデントつける方法は教えてもらってきた
http://pc5.2ch.net/test/read.cgi/tech/1088022524/83-92
>>166
だよな、人のソースみて勉強してる立場からすると崩れたソースは辛い
>>167>>169
Win32APIで窓プログラミング汁!
ぬくぬくどころか最難関だw
といっても参加者やわかる人が多い環境でもあるので王道かもしれん
ひたすらたくさんの開発環境を整えてPCの基礎知識を仕入れるのも(・∀・)イイ!
>>170
D言語知らないから間違ってたら悪いんだが
それって1も表示されないか?(1はもちろん素数じゃない)
>>生徒BLUE氏
BRUSHの解放忘れがあるよ
173名前は開発中のものです。
04/06/27 18:31ID:fYoguU/V テスト
というかこんな感じのロダでいいのかな?cppアップ可能に設定してみた
http://cgi.f11.aaacafe.ne.jp/~novarabb/phpup/img/007.cpp
各言語のテキストに対応させればそのままあpできるし。
というかこんな感じのロダでいいのかな?cppアップ可能に設定してみた
http://cgi.f11.aaacafe.ne.jp/~novarabb/phpup/img/007.cpp
各言語のテキストに対応させればそのままあpできるし。
174名前は開発中のものです。
04/06/27 19:00ID:PY8053hi >>169
実際にはWindowsのゲームプログラミングはそれほど難しくないよ。
内部にゲーム画像を作成してキー入力などに応じて更新、それを
描画するだけだからね。ウインドウプログラミングの「流れ」を
掴めれば、パズルゲームやADV/RPGは比較的簡単に作れる。
何からはじめればよいかわからない、ということなら
C++ ゲーム プログラミング
といったキーワードでぐぐるなり、書店で「Windowsプログラミングの本」
を眺めて何をすれば「Windows用プログラム」になるのか、調べてみると
良いかも。
本当に「基礎」をやるなら、高レベルのライブラリではなくまずSDK
ベースのWindowsプログラミングで「Windowsのプログラムの流れ」を
しっかり追った方が良い。
実際にはWindowsのゲームプログラミングはそれほど難しくないよ。
内部にゲーム画像を作成してキー入力などに応じて更新、それを
描画するだけだからね。ウインドウプログラミングの「流れ」を
掴めれば、パズルゲームやADV/RPGは比較的簡単に作れる。
何からはじめればよいかわからない、ということなら
C++ ゲーム プログラミング
といったキーワードでぐぐるなり、書店で「Windowsプログラミングの本」
を眺めて何をすれば「Windows用プログラム」になるのか、調べてみると
良いかも。
本当に「基礎」をやるなら、高レベルのライブラリではなくまずSDK
ベースのWindowsプログラミングで「Windowsのプログラムの流れ」を
しっかり追った方が良い。
04/06/27 19:17ID:v+n6K1pQ
インベーダー途中
http://gamdev.org/up/img/757.zip
http://gamdev.org/up/img/757.zip
176生徒A
04/06/27 19:26ID:WIo25CTE しばらく来ない内にすごい事になってるよ…もう付いていけない
177生徒BLUE
04/06/27 22:04ID:b0jvqBNF あまりソースを貼り付けるのは荒らしっぽい?のでうぷろだにしました
今はまだ170行ですがインベーダーなら500〜1000ぐらいにたぶんなるので
そろそろ切り替えようと思っていたところです
キー入力はGetAsyncKeyStateを使いました
0x8000の意味とかまだよくわかりませんけれど
if ((GetAsyncKeyState( VK_UP ) & 0x8000) == 0x8000)
{
y--;
}
チラチキ対策でダブルバッファを使った描画をしています
参考にしたソースをほぼそのままコピペしていますが内容は理解しています
このあたりは以前、やったことがあるのでまだまだ大丈夫
課題5キー入力
http://gamdev.org/up/img/759.zip
今はまだ170行ですがインベーダーなら500〜1000ぐらいにたぶんなるので
そろそろ切り替えようと思っていたところです
キー入力はGetAsyncKeyStateを使いました
0x8000の意味とかまだよくわかりませんけれど
if ((GetAsyncKeyState( VK_UP ) & 0x8000) == 0x8000)
{
y--;
}
チラチキ対策でダブルバッファを使った描画をしています
参考にしたソースをほぼそのままコピペしていますが内容は理解しています
このあたりは以前、やったことがあるのでまだまだ大丈夫
課題5キー入力
http://gamdev.org/up/img/759.zip
178名前は開発中のものです。
04/06/27 22:28ID:6fdveQpW 画像だけなら簡単だが、音をつける段階で挫折しそうだ。
ダイレクトXを使わずに、WAVを複数同時に鳴らすことがどれほど大変か・・・
ダイレクトXを使わずに、WAVを複数同時に鳴らすことがどれほど大変か・・・
179名前は開発中のものです。
04/06/27 22:41ID:PY8053hi >>178
そうだね。
「自分でPCMバッファを作成し波形を合成、リアルタイムに出力」
なんてことになると結構しんどい(面白いとも言うがw)・・・。
まあ、画像でも同じような場面(自分で管理するバッファを処理し
ながらのリアルタイム出力)はあるわけだが。
そうだね。
「自分でPCMバッファを作成し波形を合成、リアルタイムに出力」
なんてことになると結構しんどい(面白いとも言うがw)・・・。
まあ、画像でも同じような場面(自分で管理するバッファを処理し
ながらのリアルタイム出力)はあるわけだが。
180名前は開発中のものです。
04/06/27 22:48ID:qWAk5Epz ほらほら、先生が仕切らないから、落ちこぼれがでちゃったぞ。
一人は突っ走ってるし。
一人は突っ走ってるし。
181名前は開発中のものです。
04/06/27 22:58ID:qWAk5Epz >>177
> 0x8000の意味とかまだよくわかりませんけれど
「ANDでマスクとる」とかはわかる?
定数書いちゃダメとか、staticって書くようにするとか、
拡張子がcppなのにC言語風じゃん!とか、
バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ
作成してしまった方が処理の無駄がないとか、ブラシとペンも。
> 0x8000の意味とかまだよくわかりませんけれど
「ANDでマスクとる」とかはわかる?
定数書いちゃダメとか、staticって書くようにするとか、
拡張子がcppなのにC言語風じゃん!とか、
バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ
作成してしまった方が処理の無駄がないとか、ブラシとペンも。
04/06/27 23:05ID:v+n6K1pQ
04/06/27 23:07ID:v+n6K1pQ
( ゚д゚)ハッ!もしや、落ちこぼれが俺か!
184副担任
04/06/27 23:48ID:sIosK61q 先生が帰ってくるまで漏れが面倒みましょうか?
185ぷち
04/06/28 00:10ID:W5zBmX8i186名前は開発中のものです。
04/06/28 03:20ID:vjeNxAuN 落ちこぼし師
187名前は開発中のものです。
04/06/28 04:46ID:AKJFcicb188生徒A
04/06/28 06:10ID:D8BhR1kS なんとか徹夜して6時間ほど粘ってキー入力まで行ったけど、限界が近い…
WM_TIMERで画面の更新を行っているんですが、なんかすごくちらつくんですよ
あと、DeleteObject(hBr)というのを使うと、何故か画面が白くなるんです…
なので、使ってません。
http://gamdev.org/up/img/762.lzh
WM_TIMERで画面の更新を行っているんですが、なんかすごくちらつくんですよ
あと、DeleteObject(hBr)というのを使うと、何故か画面が白くなるんです…
なので、使ってません。
http://gamdev.org/up/img/762.lzh
1894 ◆3VUXqvbfSY
04/06/28 06:20ID:kLFrYp0l すみません皆様…
ミニ死の行進してました…
アプロダについて:
あっても、別に構いませんが、必要無いようにします。
具体的には、トップダウンで(例えばCなら)
メインを作る。
↓
個々に使われた関数を作る
みたいに、ソースを(出来るだけ解りやすく)分割して、表示しようと企んでいます。
進行度:
自分で出来る方がドンドン進まれるのは、むしろ、喜ばしいです。ただし、課題はあくまで初心者ラインにしておきます。
だから、焦らなくて大丈夫。今の課題は、「キーで、赤い四角を動かす」です。
先生:
や、やっと一人…m(_ _)mヨロシクオネガイシマス
次の課題:
当たり判定。
先ほどの、「動く赤い四角」を避けゲーに改造しましょう
敵は 敵x = rand() % 640;//rand()*640/RAND_MAX
で…敵y++;のように動く単純な敵です。
当たったら終了と言う仕様で…
ミニ死の行進してました…
アプロダについて:
あっても、別に構いませんが、必要無いようにします。
具体的には、トップダウンで(例えばCなら)
メインを作る。
↓
個々に使われた関数を作る
みたいに、ソースを(出来るだけ解りやすく)分割して、表示しようと企んでいます。
進行度:
自分で出来る方がドンドン進まれるのは、むしろ、喜ばしいです。ただし、課題はあくまで初心者ラインにしておきます。
だから、焦らなくて大丈夫。今の課題は、「キーで、赤い四角を動かす」です。
先生:
や、やっと一人…m(_ _)mヨロシクオネガイシマス
次の課題:
当たり判定。
先ほどの、「動く赤い四角」を避けゲーに改造しましょう
敵は 敵x = rand() % 640;//rand()*640/RAND_MAX
で…敵y++;のように動く単純な敵です。
当たったら終了と言う仕様で…
190副担任
04/06/28 10:23ID:HdfIcXTc 漏れは先生と考え方が違うので一応書いておきます。うざかったらクビにしてください。>先生
・動けば正義(いい設計はできたほうがいいけどまだ求める段階ではないと思う)
・ソースは固めてどこかにアップする(バックアップ、成果としてわかりやすい)
・バイナリは付けて欲しい(開発環境を全てそろえるのは難しい)
・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
あくまで初心者のためのライブラリとしてとらえています。
「絵を描くにはこうする」「動かすにはこうする」「…」「…」のサンプルコードの固まりにしたいです。
課題の方針には賛成なので従います。
というわけで分からんことがある人は漏れが面倒みます。勉強しながら…。orz
・動けば正義(いい設計はできたほうがいいけどまだ求める段階ではないと思う)
・ソースは固めてどこかにアップする(バックアップ、成果としてわかりやすい)
・バイナリは付けて欲しい(開発環境を全てそろえるのは難しい)
・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
あくまで初心者のためのライブラリとしてとらえています。
「絵を描くにはこうする」「動かすにはこうする」「…」「…」のサンプルコードの固まりにしたいです。
課題の方針には賛成なので従います。
というわけで分からんことがある人は漏れが面倒みます。勉強しながら…。orz
191副担任
04/06/28 10:26ID:HdfIcXTc 訂正すまそ。
× ・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
○ ・提出したソースにはよけいな機能は付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
× ・課題によけいなものは付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
○ ・提出したソースにはよけいな機能は付けないでください(初心者が提出したソースを参考にしたとき、必要な機能のみが実装されていたほうがいい)
192名前は開発中のものです。
04/06/28 10:28ID:Ten9Dr/x >>188
簡単だが添削。ウィンドウプロシージャだけ。
DeleteObjectの2行はWM_PAINT内でやってはダメ。
WM_PAINTは何度も呼ばれるため、最初の描画が終了した時点で、作ったペンやブラシは
無効になるため、色がつかなくなる。DeleteObjectするならWM_DESTROY内で。
ちなみにCreateしたものはちゃんと削除するのがお約束。
SelectObjectしたものに関しても、元に戻しておくのが一応の作法。
holdobj = SelectObject(hdc, hobj);// 以前のオブジェクトハンドルを保存
// 何か処理
holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
何故か赤く塗りつぶされないというのは、ディスプレイDCに複数回描画を行っていて、それが
ちらつきとして現れるから。こういう場合はオフスクリーンに描画し、最後にディスプレイDCに
BitBltする。
簡単だが添削。ウィンドウプロシージャだけ。
DeleteObjectの2行はWM_PAINT内でやってはダメ。
WM_PAINTは何度も呼ばれるため、最初の描画が終了した時点で、作ったペンやブラシは
無効になるため、色がつかなくなる。DeleteObjectするならWM_DESTROY内で。
ちなみにCreateしたものはちゃんと削除するのがお約束。
SelectObjectしたものに関しても、元に戻しておくのが一応の作法。
holdobj = SelectObject(hdc, hobj);// 以前のオブジェクトハンドルを保存
// 何か処理
holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
何故か赤く塗りつぶされないというのは、ディスプレイDCに複数回描画を行っていて、それが
ちらつきとして現れるから。こういう場合はオフスクリーンに描画し、最後にディスプレイDCに
BitBltする。
193名前は開発中のものです。
04/06/28 10:30ID:Ten9Dr/x ちと訂正・・orz
×holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
○SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
×holdobj = SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
○SelectObject(hdc, holdobj);// 以前のオブジェクトに戻す
195生徒A
04/06/28 16:36ID:D8BhR1kS >>194 190じゃないですが、もともとは2進数という意味だと思います。
だから、この場合は、1と0の組み合わせで作られた機械語データ
(実行ファイル)の意味だと思います。
他にも、テキストデータ以外のファイル全てを指す事もあります。
だから、この場合は、1と0の組み合わせで作られた機械語データ
(実行ファイル)の意味だと思います。
他にも、テキストデータ以外のファイル全てを指す事もあります。
196生徒A
04/06/28 16:40ID:D8BhR1kS197名前は開発中のものです。
04/06/28 17:06ID:cdlT0cfW CreateCompatibleBitmap
198副担任
04/06/28 17:37ID:HdfIcXTc199Ruby@課題6当たり判定
04/06/28 18:32ID:1FRiXQWF require 'sdl'
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
x=(639-32)/2
y=(479-32)/2
enemyX=rand(639-32)
enemyY=0
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit
exit
end
end
SDL::Key.scan
y -= 1 if SDL::Key.press?( SDL::Key::UP )
x += 1 if SDL::Key.press?( SDL::Key::RIGHT )
y += 1 if SDL::Key.press?( SDL::Key::DOWN )
x -= 1 if SDL::Key.press?( SDL::Key::LEFT )
x=0 if x<0
x=(639-32) if x>(639-32)
y=0 if y<0
y=(479-32) if y>(479-32)
enemyY=enemyY+1
enemyY=0 if enemyY>479
if (x-enemyX).abs<32 and (y-enemyY).abs<32 then
exit
end
SDL.init( SDL::INIT_VIDEO )
screen = SDL.setVideoMode( 640, 480, 16, SDL::SWSURFACE )
x=(639-32)/2
y=(479-32)/2
enemyX=rand(639-32)
enemyY=0
loop do
while event = SDL::Event2.poll
case event
when SDL::Event2::Quit
exit
end
end
SDL::Key.scan
y -= 1 if SDL::Key.press?( SDL::Key::UP )
x += 1 if SDL::Key.press?( SDL::Key::RIGHT )
y += 1 if SDL::Key.press?( SDL::Key::DOWN )
x -= 1 if SDL::Key.press?( SDL::Key::LEFT )
x=0 if x<0
x=(639-32) if x>(639-32)
y=0 if y<0
y=(479-32) if y>(479-32)
enemyY=enemyY+1
enemyY=0 if enemyY>479
if (x-enemyX).abs<32 and (y-enemyY).abs<32 then
exit
end
200Ruby@課題6当たり判定
04/06/28 18:33ID:1FRiXQWF screen.fillRect( 0, 0, 640, 480, [ 0, 0, 0 ] )
screen.fillRect( x, y, 32, 32, [ 255, 0, 0 ] )
screen.fillRect( enemyX, enemyY, 32, 32, [ 0, 255, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
end
課題6当たり判定(実行ファイル付き)
http://gamdev.org/up/img/764.zip
【Rubyスクリプトを実行ファイルにする方法】
http://exerb.sourceforge.jp/ からExerbををダウンロード
レシピファイルを書く
add_ruby_script[TAB](スクリプト名)
add_extension_library[TAB](ライブラリ名)[TAB](パスを含めたライブラリ名)
例)
add_ruby_script[TAB]collision.rb
add_extension_library[TAB]sdl.so[TAB]sdl.so
※注意
[TAB]はTABキーで入力してください
通常のエディタだと空白と判別できませんので注意
Exerb添付ドキュメントは旧式の書き方になっているようです
サンプルは新しいものだったのでそちらを参考にしました
screen.fillRect( x, y, 32, 32, [ 255, 0, 0 ] )
screen.fillRect( enemyX, enemyY, 32, 32, [ 0, 255, 0 ] )
screen.updateRect( 0, 0, 0, 0 )
end
課題6当たり判定(実行ファイル付き)
http://gamdev.org/up/img/764.zip
【Rubyスクリプトを実行ファイルにする方法】
http://exerb.sourceforge.jp/ からExerbををダウンロード
レシピファイルを書く
add_ruby_script[TAB](スクリプト名)
add_extension_library[TAB](ライブラリ名)[TAB](パスを含めたライブラリ名)
例)
add_ruby_script[TAB]collision.rb
add_extension_library[TAB]sdl.so[TAB]sdl.so
※注意
[TAB]はTABキーで入力してください
通常のエディタだと空白と判別できませんので注意
Exerb添付ドキュメントは旧式の書き方になっているようです
サンプルは新しいものだったのでそちらを参考にしました
202生徒BLUE
04/06/28 21:18ID:mIyMN4GH2034 ◆3VUXqvbfSY
04/06/28 21:39ID:kLFrYp0l 参考程度に…
オフスクリーン:
変数宣言 前略
hdcOFF=CreateCompatibleDC(hdcON);//空の描画ハンドルを作る
CopyBitmap=CreateCompatibleBitmap(hdcON,640,480);//表のウィンドウと互換のビットマップをつくる。
SelectObject(hdcOFF,CopyBitmap);//んで、設定
中略
BitBlt(hdcON,0,0,640,480,hdcOFF,0,0,SRCCOPY);//裏に書かれた内容を、表に上書きする。
後略
こんな感じ。…VC++だけでごめんなさい…
オフスクリーン:
変数宣言 前略
hdcOFF=CreateCompatibleDC(hdcON);//空の描画ハンドルを作る
CopyBitmap=CreateCompatibleBitmap(hdcON,640,480);//表のウィンドウと互換のビットマップをつくる。
SelectObject(hdcOFF,CopyBitmap);//んで、設定
中略
BitBlt(hdcON,0,0,640,480,hdcOFF,0,0,SRCCOPY);//裏に書かれた内容を、表に上書きする。
後略
こんな感じ。…VC++だけでごめんなさい…
204LGP@課題1数当て
04/06/28 23:47ID:1FRiXQWF スクリプト組はあまり時間もかからず有利なので
複数言語同時習得を目指してみます
CH = G@SETUP( 640 , 480 , 16 , 1 )
RANDSET(SYSTIME())
RN = RAND()%9+1
G@PRINT(CH,0,0,"1〜9の数を入力せよ")
G@FLIP()
LOOP
I@KEYGET2( )
IF I@KEYBTN2(1)=2 THEN
ANS=I@KEYBTN2(0)-1
IF ANS=RN THEN
SYSEXIT()
ENDIF
IF (ANS>0) AND (ANS<10) THEN
N=N+1
G@GDIBOXFULL( CH , 0, 100, 640, 480 )
G@PRINT(CH,0,100,"はずれ"+STR(N)+"回目")
ENDIF
G@FLIP()
ENDIF
S@WAIT()
ENDLOOP
LGP@課題1数当て(実行ファイル付き)
http://gamdev.org/up/img/767.zip
複数言語同時習得を目指してみます
CH = G@SETUP( 640 , 480 , 16 , 1 )
RANDSET(SYSTIME())
RN = RAND()%9+1
G@PRINT(CH,0,0,"1〜9の数を入力せよ")
G@FLIP()
LOOP
I@KEYGET2( )
IF I@KEYBTN2(1)=2 THEN
ANS=I@KEYBTN2(0)-1
IF ANS=RN THEN
SYSEXIT()
ENDIF
IF (ANS>0) AND (ANS<10) THEN
N=N+1
G@GDIBOXFULL( CH , 0, 100, 640, 480 )
G@PRINT(CH,0,100,"はずれ"+STR(N)+"回目")
ENDIF
G@FLIP()
ENDIF
S@WAIT()
ENDLOOP
LGP@課題1数当て(実行ファイル付き)
http://gamdev.org/up/img/767.zip
205名前は開発中のものです。
04/06/29 06:26ID:Ngmzz0xf 課題6
実行方法:@メモ帳にコピペ、A名前をつけて保存でinvader.html、BブラウザにD&D
<html><head><title>Invader Game?</title><style type="text/css"><!--
.self{background-color:#FF0000;position:absolute;width:32px;height:32px;}
.enemy{background-color:#0000FF;position:absolute;width:32px;height:32px;}
--></style></head>
<body onLoad="m()"onKeyDown="k[event.keyCode]=1"onKeyUp="k[event.keyCode]=0">
<div id=c class=self></div><div id=e class=enemy></div>
<script language="Javascript"><!--
var alive=true,timerID,k=[],x=304,y=448,eX,eY= 480;
var charElm=document.getElementById('c'),enemyElm=document.getElementById('e');
function m(){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;
eY+=8;if(eY>480){eY=-32;enemyElm.style.left=eX=Math.floor(Math.random()*640);}
enemyElm.style.top=eY;
if(Math.abs(x-eX)>32||Math.abs(y-eY)>32)timerID=setTimeout(m,30);}
//--></script></body></html>
実行方法:@メモ帳にコピペ、A名前をつけて保存でinvader.html、BブラウザにD&D
<html><head><title>Invader Game?</title><style type="text/css"><!--
.self{background-color:#FF0000;position:absolute;width:32px;height:32px;}
.enemy{background-color:#0000FF;position:absolute;width:32px;height:32px;}
--></style></head>
<body onLoad="m()"onKeyDown="k[event.keyCode]=1"onKeyUp="k[event.keyCode]=0">
<div id=c class=self></div><div id=e class=enemy></div>
<script language="Javascript"><!--
var alive=true,timerID,k=[],x=304,y=448,eX,eY= 480;
var charElm=document.getElementById('c'),enemyElm=document.getElementById('e');
function m(){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;
eY+=8;if(eY>480){eY=-32;enemyElm.style.left=eX=Math.floor(Math.random()*640);}
enemyElm.style.top=eY;
if(Math.abs(x-eX)>32||Math.abs(y-eY)>32)timerID=setTimeout(m,30);}
//--></script></body></html>
206LGP@課題2素数
04/06/29 09:54ID:OSp1CFcf FH=F@OPEN("PrimeNumber.txt" , 3 )
F@WRITES( FH , STR(2) )
COUNT=COUNT+1
I=3
WHILE COUNT<1000
SOSU=-1
FOR J=3 TO I/2 STEP 2
IF I%J=0 THEN
SOSU=0
ENDIF
NEXT
IF SOSU=-1 THEN
F@WRITES( FH , STR(I) )
COUNT=COUNT+1
ENDIF
I=I+2
S@WAIT()
ENDWHILE
F@CLOSE( FH )
F@WRITES( FH , STR(2) )
COUNT=COUNT+1
I=3
WHILE COUNT<1000
SOSU=-1
FOR J=3 TO I/2 STEP 2
IF I%J=0 THEN
SOSU=0
ENDIF
NEXT
IF SOSU=-1 THEN
F@WRITES( FH , STR(I) )
COUNT=COUNT+1
ENDIF
I=I+2
S@WAIT()
ENDWHILE
F@CLOSE( FH )
207名前は開発中のものです。
04/06/29 13:12ID:WW/6W0k2 dpかwinsockでチャット作りたひ。
208名前は開発中のものです。
04/06/29 18:46ID:vpUdLCjy >>207
自分で作ったチャットソフトで皆と繋げられたら楽しそうな予感!
自分で作ったチャットソフトで皆と繋げられたら楽しそうな予感!
209名前は開発中のものです。
04/06/29 21:15ID:OSp1CFcf もの凄い勢いで進行してるのでまとめの意味もあって統計をとってみました
抜けてる人がいたらごめんなさい
JavaScript ****** 6
Ruby.. ****** 6
生徒A(Win32API). ***** 5
生徒BLUE (Win32API). ***** 5
Delphi ***** 5
D言語 ** 2
LGP ** 2
x≠先生かつx=生徒 ⇒ x=俺(VB) 測定不能
まとめページ
http://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
アップローダ
http://gamdev.org/up/
抜けてる人がいたらごめんなさい
JavaScript ****** 6
Ruby.. ****** 6
生徒A(Win32API). ***** 5
生徒BLUE (Win32API). ***** 5
Delphi ***** 5
D言語 ** 2
LGP ** 2
x≠先生かつx=生徒 ⇒ x=俺(VB) 測定不能
まとめページ
http://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
アップローダ
http://gamdev.org/up/
04/06/29 21:28ID:gNXtRGm+
211名前は開発中のものです。
04/06/29 22:14ID:OSp1CFcf >>210
混同してました
2人も先行者がいたのかorz
修正しました
HSPのほうはもうやらないの?
JavaScript ****** 6
Ruby.. ****** 6
生徒A(Win32API). ***** 5
生徒BLUE (Win32API). ***** 5
Delphi ***** 5
D言語 ** 2
LGP ** 2
x≠先生かつx=生徒 ⇒ x=俺(Win32API) 測定不能
VB 測定不能
混同してました
2人も先行者がいたのかorz
修正しました
HSPのほうはもうやらないの?
JavaScript ****** 6
Ruby.. ****** 6
生徒A(Win32API). ***** 5
生徒BLUE (Win32API). ***** 5
Delphi ***** 5
D言語 ** 2
LGP ** 2
x≠先生かつx=生徒 ⇒ x=俺(Win32API) 測定不能
VB 測定不能
212LGP@課題3赤い四角
04/06/29 22:53ID:OSp1CFcf //640x480、16ビット色、ウィンドウ画面
CH = G@SETUP( 640 , 480 , 16 , 1 )
//ブラシを赤色に設定(RGBはそれぞれ0〜1.0で設定)
G@GDISETBRUSH( 0 , 1.0 , 0 , 0 )
//四角を描画
G@GDIBOXFULL( CH , 0, 0, 320, 240 )
//フリップ
G@FLIP()
//無限ループ
LOOP
S@WAIT()
ENDLOOP
CH = G@SETUP( 640 , 480 , 16 , 1 )
//ブラシを赤色に設定(RGBはそれぞれ0〜1.0で設定)
G@GDISETBRUSH( 0 , 1.0 , 0 , 0 )
//四角を描画
G@GDIBOXFULL( CH , 0, 0, 320, 240 )
//フリップ
G@FLIP()
//無限ループ
LOOP
S@WAIT()
ENDLOOP
213生徒BLUE
04/06/30 00:29ID:HYWm3For >>181
>「ANDでマスクとる」とかはわかる?
はい、この場合は2進数に直して一番左のビット以外を全部0にするってことですよね
MSDN読んだりあれからさらに調べてみたので前よりはちょっとわかったのですが
左端のビットが1ならボタンが押されているという程度の理解でいいのでしょうか
・定数書いちゃダメ
defineを積極的に使ってみました
C++の場合だとdefineは使わずにconstを使ったほうがいいと書いてあるホームページも
みつけましたがどうなんでしょう?
・拡張子がcppなのにC言語風
意識せずに全部cppにする習慣がついてたので……
クラスを使う→cpp、使わない→cでいいですか?
拡張子の使い分けむずかしい
・バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ
GetDCを使えばいいんだ!と前回は気づいてませんでした
WEBの情報をあちこちからつまみ食いしてるので全体的にチグハグな感じに
なっていたようで指摘してもらって勉強になります
ソースみていただける方は2ちゃんねるに貼り付けとアップローダのどちらが見やすいでしょうか?
それとも両方のほうがよい?
>「ANDでマスクとる」とかはわかる?
はい、この場合は2進数に直して一番左のビット以外を全部0にするってことですよね
MSDN読んだりあれからさらに調べてみたので前よりはちょっとわかったのですが
左端のビットが1ならボタンが押されているという程度の理解でいいのでしょうか
・定数書いちゃダメ
defineを積極的に使ってみました
C++の場合だとdefineは使わずにconstを使ったほうがいいと書いてあるホームページも
みつけましたがどうなんでしょう?
・拡張子がcppなのにC言語風
意識せずに全部cppにする習慣がついてたので……
クラスを使う→cpp、使わない→cでいいですか?
拡張子の使い分けむずかしい
・バックバッファあたりは毎回生成&破棄しなくても最初に一度だけ
GetDCを使えばいいんだ!と前回は気づいてませんでした
WEBの情報をあちこちからつまみ食いしてるので全体的にチグハグな感じに
なっていたようで指摘してもらって勉強になります
ソースみていただける方は2ちゃんねるに貼り付けとアップローダのどちらが見やすいでしょうか?
それとも両方のほうがよい?
214名前は開発中のものです。
04/06/30 11:43ID:0T8fXV58 そろそろ本気で見にくくなってきたわけだが、
ちょっと言語が大杉やしないかい?
もうちょっと絞ろうよ
ちょっと言語が大杉やしないかい?
もうちょっと絞ろうよ
215通りすがり人
04/06/30 12:46ID:qBs2hfFg >>213
> 左端のビットが1ならボタンが押されているという程度の理解でいいのでしょうか
HELPには...
最上位ビットがセットされたときは現在キーが押されていることを示し、
最下位ビットがセットされたときは直前のGetAsyncKeyState関数呼び出し以降に
キーが押されたことを示します。
って書いてある。つまり・・・
#include<windows.h>
#include<stdio.h>
void main()
{
intRv;
for(;;) {
Sleep(1);
Rv = GetAsyncKeyState(VK_SPACE);
if (Rv != 0) {
printf("%08x\n", Rv );
}
}
}
スペースをバシッと叩くとわかるんだけど、初回だけ最下位ビットが変化してる。
つまり、リピート状態なのかを判断できるわけ。
> 左端のビットが1ならボタンが押されているという程度の理解でいいのでしょうか
HELPには...
最上位ビットがセットされたときは現在キーが押されていることを示し、
最下位ビットがセットされたときは直前のGetAsyncKeyState関数呼び出し以降に
キーが押されたことを示します。
って書いてある。つまり・・・
#include<windows.h>
#include<stdio.h>
void main()
{
intRv;
for(;;) {
Sleep(1);
Rv = GetAsyncKeyState(VK_SPACE);
if (Rv != 0) {
printf("%08x\n", Rv );
}
}
}
スペースをバシッと叩くとわかるんだけど、初回だけ最下位ビットが変化してる。
つまり、リピート状態なのかを判断できるわけ。
216生徒BLUE
04/06/30 17:09ID:HYWm3For >>215
早速、コンパイルして試してみました
最下位ビットに注目してみると
1000000000100100100100100100......
といったように変化します
初回だけということなので10000000......というものを期待していたのですがうまくいかないです
早速、コンパイルして試してみました
最下位ビットに注目してみると
1000000000100100100100100100......
といったように変化します
初回だけということなので10000000......というものを期待していたのですがうまくいかないです
217生徒BLUE
04/06/30 17:38ID:HYWm3For 課題6 当たり判定
赤い四角のサイズを元に当たり判定をしました
//****** 変更箇所 ******
//乱数の初期化
srand((unsigned)time(NULL));
//敵の移動
++ty;
if (ty>YMAX)
{
ty=0;
tx=rand()*640/RAND_MAX;
}
//当たり判定
if (abs(x-tx)<BOXWIDTH && abs(y-ty)<BOXHEIGHT)
{
PostQuitMessage(0);
}
http://gamdev.org/up/img/775.zip
赤い四角のサイズを元に当たり判定をしました
//****** 変更箇所 ******
//乱数の初期化
srand((unsigned)time(NULL));
//敵の移動
++ty;
if (ty>YMAX)
{
ty=0;
tx=rand()*640/RAND_MAX;
}
//当たり判定
if (abs(x-tx)<BOXWIDTH && abs(y-ty)<BOXHEIGHT)
{
PostQuitMessage(0);
}
http://gamdev.org/up/img/775.zip
218名前は開発中のものです。
04/06/30 18:49ID:3iu2d+4i >>216
ん?スペースキーを押すと、こんな風に表示されませんか?
ffff8001
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ん?スペースキーを押すと、こんな風に表示されませんか?
ffff8001
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
ffff8000
219生徒BLUE
04/06/30 19:04ID:HYWm3For■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【学術団体】高市総理の台湾有事に関する発言を巡り、学者らが日中関係修復を求める緊急声明を発表… [BFU★]
- 「脅迫だ」国分太一に同情論 音声データ削除要求など日テレの対応を疑問視する声ネットに噴出「それこそコンプラ違反では」 [muffin★]
- 中国と対話で良い関係つくるのが責任と首相 ★4 [少考さん★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★3 [おっさん友の会★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★4 [Ailuropoda melanoleuca★]
- 【国際法を無視】日本での「中華人民共和国に台湾問題を論じる資格なし」との声に 中国外交部が厳しく反論… [BFU★]
- 【衝撃】ネトウヨ「半額シール」というコテと42歳が討論した結果、 人生このままでいいのだろうか [974680522]
- 【実況】博衣こよりのえちえちSSholox4周年切り抜き鑑賞🧪★2
- 【実況】博衣こよりのえちえちSSholox4周年切り抜き鑑賞🧪★3
- ヤンジャン新人漫画大賞、入賞作品のAI絵疑惑で大荒れ😄😄😄 高市早苗要素あり [175344491]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ167
- 秘書企業に2千万円支出🏺自民・北村経夫氏、チラシ印刷 [545512288]
