2019-01-03

anond:20190103155208

これで、ブロックを4つ書くからテトリス

	BOOL WriteBox()
	{
		HDC hdc = GetDC(hWnd);
		HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246));

		int width = 24;

		RECT Rect = { 0,0,48,48 };
		BOOL ret;

		Rect.left = width * x + 1;
		Rect.right = width * (x + 1) -1 ;
		Rect.top = width * y + 1;
		Rect.bottom = width * (y + 1) -1;

		ret = FillRect(hdc, &Rect, hBrush);


		//Rect.left   += width;
		//Rect.right  += width;
		Rect.top    += width; 
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		Rect.top += width;
		Rect.bottom += width;
		ret = FillRect(hdc, &Rect, hBrush);

		DeleteObject(hBrush);

		return TRUE;
	}


	BOOL OnPaint(PAINTSTRUCT &ps)
	{
		if (x > 8) {
			x = 0;
		}
		if (x <0) {
			x = 8;
		}
		if (y > 8) {
			y = 0;
		}

		this->WriteBox();

		return TRUE;
	}


記事への反応 -
  • 描画部分の違い 変数 y をつかって 高さが8までで移動するように yが変わると■のいちも変わるから タイマーで呼び出されるたbに 下へ 下へと作画される だから まぁ アニメー...

    • こんな感じ GetMessageの上にタイマーも扱える MsgWaitForMultipleObjectsExを追加 GetMessageだとタイマーを処理できないのでPeekMessageに変更 >なぜかは ちょっと考えると面白い Getのときは必要な...

      • 次回 キー処理 ちなみに、グローバル関数>クラスメソッドのやりかたは 雑なやりかただけど書いてあるから クラス化の利点を生かして 同時にWindowを2枚出して 同じ処理をしてみ...

        • テトリス風?プログラムに向けて 第何回だろうな キー入力を追加した まだ、何を押してもブロックが右に移動するだけ(右端にいくと左にワープ) タイマーで自動落下   でもまぁ ...

          • で 次は キー入力が右しかないけど これじゃぁ テトリスっぽくないから ブロックの作画をもうちょっと 本格的にしてみよっか?

            • これで、ブロックを4つ書くからテトリス風 BOOL WriteBox() { HDC hdc = GetDC(hWnd); HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 246)); int width = 24; RECT Rect = { 0,0,48,48 }; BOOL ret; Rect.left = width * x + 1; Rect.rig...

              • ま、きちんと基礎を習っていれば テトリスぐらいはすぐに作れる とはいえ、基礎を習っていれば 絵ぐらいすぐに書けるとか そりゃなんでもそうだっていう突っ込みはあるだろうけど  ...

          • https://anond.hatelabo.jp/20190103154644   だいたい一式 せつめいもついてる いまなら、Q&Aがあるていど 無料でついてくる(w) ><が <とかに置き換わってるけど 一番最初に 無料...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん