[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
121: 名前は開発中のものです。 [sage] 04/06/22 08:07 ID:bOsE7Dq6(1) AAS
 >>118-119 
 正解。 
122: 名前は開発中のものです。 [sage] 04/06/22 12:14 ID:vyNZUIcy(1) AAS
 >>111111(1): 生徒A [sage] 04/06/21 21:54 ID:jNWjDlXF(1/3) AAS
 とりあえず、sinカーブの方を少し遅れたんですが、作ってみました。 
  
 一番先頭に#include<math.h>を付けたら、あとはキャプション以外は、ウィンドウプロシージャーしか違わないので 
 そこだけ書く事にしました。 
  
 // ウインドウプロシージャ 
 LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) 
 { 
               HDC hDC;PAINTSTRUCT ps;static HPEN hPen;static HBRUSH hBr; 
               RECT box;box.bottom =480;box.left =0;box.right =640;box.top =0; 
               int  x=0,y,k=0; double  rad=3.14159/180; 
               // メッセージの種類に応じて処理を分岐 
               switch (message){ 
                             case WM_CREATE: 
                                           hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));hBr=CreateSolidBrush(0x00000000); 
                                           return 0; 
                             case WM_PAINT: 
                                           hDC=BeginPaint(hWnd,&ps);SelectObject(hDC,hBr);FillRect(hDC,&box,hBr); 
 for(x=0;x<=640;x++){ 
                                                         y=(int)(sin((double)k*rad)*100.0+240.0); 
                                                         x++; k++; 
                                                         if(k>360)k=0; 
                                                         SelectObject(hDC,hPen); SetPixel(hDC,x,y,RGB(255,0,0)); 
                                           } 
                                           EndPaint(hWnd,&ps); 
                                           return 0; 
                             case WM_DESTROY:PostQuitMessage(0);return 0; 
                             default:return DefWindowProc(hWnd, message, wParam, lParam);} 
 } 
作ったペンとブラシは終了時に開放したほうがいいですよ。 
123: 名前は開発中のものです。 [sage] 04/06/22 13:59 ID:z3uDPhKo(2/2) AAS
 階級制にしようぜ! 
  
 *問題に難易度設定 
 課題にも難易度が設定されていて大佐向け、中尉向けなどがある 
  
 *昇格資格 
 課題を一つクリアするたびに昇格 
 自分の階級より下の問題を解いても昇格しない(大佐は少尉向けの課題を解いても出世はなし) 
  
 *出題する権利 
 自分より2つ下向けの課題を出せる(大佐になれば少佐向けを出題できる) 
  
 *特別昇格 
 自分より格下の問題を解いた場合、通常は昇格しない 
 しかし、お手本になるようなすばらしい解答、解説をした場合は 
 昇格の対象となる 
 (上級職の人の任意か下級職の人の過半数の支持が目安) 
こんな感じでどうよ 
 せっかくだからゲーム感覚でやろうじゃないかと設定してみた 
 ちょっと昇格条件が甘すぎる気もするけど 
 もちろん4 ◆3VUXqvbfSY氏や他の先生役の人はそのまま出題してくれるとありがたい 
  
 階級はこれがわかりやすくていい 
 外部リンク[html]:www.special-warfare.net
124: 名前は開発中のものです。 [sage] 04/06/22 15:06 ID:3E6K9gNw(1) AAS
 階級みたいにポンポンと技術は上がらんからねぇ。 
 プログラミングの技術って、どちらかというと山登りみたいな感じだと思う。 
 準備(下積み)がほぼ大半を占めるけど、準備だけしてもだめで 
 登り方も知らないと駄目だし(変な登り方をすると途中でのたれ死ぬ) 
 なにより体力(根気)が必要。 
 どれをとっても「これだけやれば大丈夫」という基準が無い。 
  
 たまに天才がいて、Tシャツ短パンで一直線にエベレストに登頂したりするけど 
 そういうやつ以外は「大佐のくせにそんなことも知らないのかよ。プッ」って言われるのがオチかも。 
125(2): 生徒BLUE@入隊希望 [] 04/06/22 23:32 ID:ImuZbVzv(1) AAS
 赤い四角の課題解きました 
 書き込み制限に引っ掛かりますのでのんびり貼り付けていきます 
 参考にしたのは猫でもわかるプログラミングと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: 名前は開発中のものです。 [sage] 04/06/23 01:15 ID:4HGTxQki(1) AAS
 怖いのは登山ルートが間違った状態で登っていることだ 
 行き先は崖だったり
127(2): 生徒BLUE@入隊希望 [] 04/06/23 15:21 ID:G2RbfgcV(1/2) AAS
 >>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); 
 } 
128(1): 名前は開発中のものです。 [] 04/06/23 18:23 ID:XpSZny8Q(1) AAS
 VBも参加していいですか? 
129(3): 名前は開発中のものです。 [sage] 04/06/23 19:25 ID:mQ2LYzxk(1) AAS
 mingwとかSDLとかHSPとかSDKとかSDLPerlとかが一体なんなのか 
 理解できない漏れ… 
  
 とりあえずHelloWorldはできたけどウインドウ表示なんて壁高杉 
 どうすればいいんだよう… 
130(3): 4  ◆3VUXqvbfSY  [] 04/06/23 20:11 ID:YwmthHB/(1) AAS
 >>128 
 ぜんぜんOK!HSPが居るんだから大じょーぶ。 
  
 >>129 
 MSDNライブラリを読む事から始めましょう。 
 ウィンドウ表示に関しては、VCの最初の壁です。コレがあるからVCは面倒くさいんですが…。 
 しかし、ウィンドウが表示できれば、簡単なゲームは直ぐ作れるようになりますって。 
  
 まあ、難しければHSPに転向しちゃうって手もあります。 
 スピードが要求されなければ、かなり便利な言語です。 
  
 HSPでググってみてください。 
>>ALL 
 わかりました。インベーダーで始めましょう。 
 ただし、インベーダーが一通り作れたら、落ちゲーにも触れますよ(ぷよぷよやドリラー等) 
  
 階級制は面白いんですが…判断基準が…微妙…。 
 昇級試験制にしたらどうでしょう。 
 たとえば。 
 問題(if文を使わずに、A=Bなら0。A≠Bなら1を表示するプログラムを作れ) 
  
 とか 
131(1): 名前は開発中のものです。 [sage] 04/06/23 20:12 ID:bTZutcV4(1) AAS
 真に初心者であれば分からないのは当然。 
 とりあえず分からない単語を列挙すれば、誰か暇な人が答えてくれるかもしれない。 
132(1): 名前は開発中のものです。 [sage] 04/06/23 22:00 ID:dPgxaG/R(1) AAS
 >>129 
 hello worldを何で表示したか分からんからアレだけど、 
 取り合えずC/C++と仮定した場合、キミがいくべきところはここだ。 
  
 外部リンク:www.kumei.jp 
133(1): 生徒BLUE@入隊希望 [] 04/06/23 22:23 ID:G2RbfgcV(2/2) AAS
 >>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); 
 } 
134(16): 名前は開発中のものです。 [] 04/06/24 00:34 ID:9IgBi+UW(1) AAS
 >>130 ありがとうございます。C言語でも出来ますけど、あまり自信が無いんです…。 
  
 VBでキャラの移動と弾の発射だけやってみました。 
 ←→キーで左右移動、Z or Spaceキーで弾の発射です。 
 外部リンク[lzh]:gamdev.org 
135: 名前は開発中のものです。 [sage] 04/06/24 14:35 ID:9ja3YKOg(1) AAS
 >>134 
 ×押して終了しても、プロセスが残ってるみたい 
136: メトロイド オモロイド [sage] 04/06/24 21:11 ID:Yq9S/x7T(1) AAS
 2Dメトロイド&3Dメトロイド作ってみたらどうだ? 
 難しいがエラー無く完成したら腕上がるぞ。 
137: 生徒BLUE [] 04/06/24 23:20 ID:kfww3pCy(1) AAS
 次はいよいよインベーダーですか 
  
 参考にしたサイト:外部リンク:www3.omn.ne.jp 
 今回新しく使った関数: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; 
 } 
138: 134 [] 04/06/25 02:41 ID:dGOyDbGP(1) AAS
 当たり判定などを追加しました。問題のメモリリークのバグも直しました。 
  
 外部リンク[lzh]:gamdev.org 
139(1): 4  ◆3VUXqvbfSY  [] 04/06/25 07:09 ID:va8qXu2v(1) AAS
 >>134さん 
 まずは、sinからお願いします。 
 あんまり爆走すると、先生にしますよ。 
 むしろ、なって欲し… 
>>ALL 
 次の課題は、基本中の基本。 
 キー入力です。 
 先程の赤い四角を使い、カーソル(テンキーでも可)でグリグリ動く物を作ってください。 
参考程度に 
 VC++  GetKeyState();//バーチャルキーの状態取得。 
 C++  getch();//標準入力 
 VB  _KeyDown(key%,Shift%)//keyにキーコードが返る 
 HSP  getkey p1,p2//p2のキーが押されていると、p1に1が代入される。 
140: x≠先生かつx=生徒 ⇒ x=俺 [sage] 04/06/25 18:25 ID:oIl/kTfS(1) AAS
 sin波生成 
 外部リンク[zip]:rupan.zive.net 
141: 63 ◆xdaKt6k1XI  [sage] 04/06/25 23:47 ID:BZ++Tyug(1) AAS
 動かせました。 
  
 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 [sage] 04/06/26 00:54 ID:NxwPZgd2(1/3) AAS
 今日から参加します。 
 まずは四角 
 外部リンク[lzh]:gamdev.org 
  
 キー入力に取りかかります。 
 赤い四角を動かせばいいんですよね? 
143: 生徒142 [sage] 04/06/26 03:19 ID:NxwPZgd2(2/3) AAS
 連投 
 プロシージャのみ貼り付けてみます。 
  
 描画がカクカクします、再描画の処理はどうすればきれいに動くのでしょうか? 
 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(1): 名前は開発中のものです。 [sage] 04/06/26 04:14 ID:sMwugFr/(1) AAS
 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;}} 
145: 生徒142 [sage] 04/06/26 04:30 ID:NxwPZgd2(3/3) AAS
 >>144 
 すみません、ソース書いた時は{使ってなかったもので 
 ここに貼り付ける時に急遽書きました。 
  
 iが消えたり;の前に}書いたり間抜けなことになってますね。 
 次からはよく確かめます 
上下前次1-新書関写板覧索設栞歴
あと 642 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s