Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録
< anond:20190103192623 |anond:20190103191930 >

2019-01-03

anond:20190103193157

結構面倒

過去ブロックを覚えておく領域

intblocks[100][100];

過去ブロックを再描画

BOOL WriteBoxOLDBox(){int width =24;HDC hdc = GetDC(hWnd);HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 48));for (int y = 0; y &lt; 30; y++){for (int x = 0; x &lt; 8; x++){if (blocks[y][x] == 0){continue;}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, &amp;amp;Rect, hBrush);}}DeleteObject(hBrush);returnFALSE;}

この辺は めんどくさくはあるけど みてわかってほしい

描画したWriteBoxとおなじ BOXが落ちた場所BOXの有無)を保存しておく

ここがわかりにくいといえば わかりにくい

BOOL SaveBoxI(){blocks[y  ][x] = 1;blocks[y+1][x] = 1;blocks[y+2][x] = 1;blocks[y+3][x] = 1;returnTRUE;}

Permalink |記事への反応(1) | 19:35

このエントリーをはてなブックマークに追加ツイートシェア

記事への反応 -
  • テトリス風 落ちてくるブロックの描き方 わかりやすく関数化してみた まずはブロックの種類は3種類   WriteBoxLとWriteBoxIとWriteBoxZ の違いをよく見比べて 自力で違いがわかれば プログラ...

    • // WindowsProject7.cpp: アプリケーションのエントリ ポイントを定義します。//#include &quot;stdafx.h&quot;#include &quot;WindowsProject7.h&quot;#define MAX_LOADSTRING 100// グローバル変数:HINSTANCE hInst; ...

      • 結構面倒 過去のブロックを覚えておく領域 int blocks[100][100]; 過去のブロックを再描画 BOOL WriteBoxOLDBox() { int width = 24; HDC hdc = GetDC(hWnd); HBRUSH hBrush = CreateSolidBrush(RGB(48, 48, 48)); for (int y = 0; ...

        • 次はシューティングなどでもよくある 当たり判定   つまり過去の落ちた残骸のBOXと 今のBOXがあたるかどうかの判定   テトリスのBOXをあたりはんてい というのはどうかとはおもうけど ...

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

全てのコメントを見る

人気エントリ

注目エントリ

ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2026 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2026 Movatter.jp