Cでブロック崩しを作りたい
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
03/12/08 00:21ID:YP9pjvLE0002名前は開発中のものです。
03/12/08 00:22ID:YP9pjvLE0003名前は開発中のものです。
03/12/08 00:50ID:XapCE/Zhさぞかし楽な世の中であろう。
0004名前は開発中のものです。
03/12/08 00:50ID:Rc2apOdK0005名前は開発中のものです。
03/12/09 07:57ID:I9RIreYvhttp://pc.2ch.net/tech/kako/1004/10048/1004855513.html
0006名前は開発中のものです。
03/12/11 14:39ID:FV1LIWexなにもわからないから教えようがないな
0007名前は開発中のものです。
03/12/11 20:47ID:qHow8O8P心配するな。
ここは、>>1が立て逃げしたスレだ。
0008名前は開発中のものです。
03/12/13 02:17ID:6XmZl8Hm話はそれからだ。
0009名前は開発中のものです。
03/12/13 02:32ID:QNEM2G110010名前は開発中のものです。
03/12/16 11:49ID:AbmLxMwB001110
03/12/16 12:29ID:AbmLxMwBhttp://www.gaia.h.kyoto-u.ac.jp/users/izui/technotes/escape.html
上記サイトの情報を元にまとめてみた
// ansi.sys用の画面操作
#define BLACK 0
#define RED 1
#define GREEN 2
#define YELLOW 3
#define BLUE 4
#define MAGENTA 5
#define CYAN 6
#define WHITE 7
#define clearScreen() printf("\x1b[0m\x1b[2J")
#define setColor(f, b) printf("\x1b[0;1;3%d;4%dm", f, b)
#define setColorDark(f, b) printf("\x1b[0;3%d;4%dm", f, b)
#define setCursorPos(x, y) printf("\x1b[%d;%dH", y+1, x+1)
#define displayCursor(disp) printf("\x1b[>5%c", disp ? 'l':'h')
0012名前は開発中のものです。
03/12/16 12:48ID:X4Q7cl+/いや、止めやしないが。
0013名前は開発中のものです。
03/12/16 12:49ID:Dm2m+BAd「C」が言語のことだとは限らんぞ。
つまり、>>1が作りたいのは、こう↓だ。
CCCCCCCCCCCCCCCCCCCCCCCCC ←ブロック
CCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCC CCCCCCC
C ←ボール
/
CCCCC ←バー
001410
03/12/16 13:03ID:AbmLxMwBとりあえず後回しにしてロジックから組もう…
#define FPS 60
void wait()
{
static long waitTime = 0;
long count1, count2;
int second;
if(waitTime == 0)
{
second = time(NULL);
while(second == time(NULL));
second = time(NULL);
for(waitTime = 0; second == time(NULL); waitTime++)
{
for(count2 = 0; count2 < 0x10000; count2++);
}
waitTime /= FPS;
}
for(count1 = 0; count1 < waitTime; count1++)
{
second = time(NULL);
for(count2 = 0; count2 < 0x10000; count2++);
}
}
001510
03/12/16 13:13ID:AbmLxMwB6で右移動、4で左移動… あれ?「キーが離されて止まる」
ことが認識できない!?
// キーボード入力
int getKey()
{
int result = 0;
while(kbhit())result = getch();
return result;
}
001610
03/12/16 13:53ID:AbmLxMwBint main( int argc , char *argv[])
{
〜〜〜初期化〜〜〜
while(true)
{
key = getKey();
if(key == 0x1b)break;
〜〜〜各種処理〜〜〜
wait();
}
return 0;
}
001710
03/12/16 14:49ID:AbmLxMwBint px, py;// パドルの位置
int pu ;// パドルの進行方向
// 座標系:256単位 = 全角1キャラクタ
int bx, by;// ボールの位置
int bu, bv;// ボールの進行方向
int bs, bc;// ボールのスピードとウェイと用
int stock = 4;// ボールのストック
char block[14][27] = {0};// ブロックテーブル
int norma = 0;// 残りのブロック
001810
03/12/16 19:27ID:AbmLxMwBint x, y, key;
displayCursor(0);
clearScreen();
setColor(WHITE, WHITE);
for(y=0; y<25; y++)
{
setCursorPos( 0, y); printf("■");
setCursorPos( 50, y); printf("■");
setCursorPos(y*2, 0); printf("■");
}
for(y=0; y<6; y++)for(x=0; x<12; x++)
{
setColor(RED+y, RED+y);
setCursorPos(x*4+2, y+3); printf("[##]");
block[x+1][y+3] = 1;
norma++;
}
px = 26-4; py = 22;
pu = 0;
bx = 26; by = 21;
bu = 1; bv = -1;
bs = 4; bc = 0;
001910
03/12/16 19:31ID:AbmLxMwBbc++;
if(bc >= bs)
{
if(bx <= 2)bu = 1;
if(bx >= 49)bu = -1;
if(by <= 1)bv = 1;
setColor(WHITE, BLACK);
setCursorPos(bx, by); printf(" ");
if(block[(bx+2+bu)/4][by])
{
block[(bx+2+bu)/4][by] = 0;
norma--; bs = norma/18 + 1;
setColor(WHITE, BLACK);
setCursorPos((bx+2+bu)/4*4-2, by); printf(" ");
bu = -bu;
}else bx += bu;
if(block[(bx+2)/4][by+bv])
{
block[(bx+2)/4][by+bv] = 0;
norma--; bs = norma/18 + 1;
setColor(WHITE, BLACK);
setCursorPos((bx+2)/4*4-2, by+bv); printf(" ");
bv = -bv;
}else by += bv;
bc = 0;
}
setColor(YELLOW, GREEN);
setCursorPos(bx, by); printf("O");
0020名前は開発中のものです。
03/12/16 19:38ID:55g8ZfCO0021名前は開発中のものです。
03/12/16 19:46ID:Uo9/VOQt0022名前は開発中のものです。
03/12/16 20:09ID:a7/wgjw6002310
03/12/16 22:45ID:AbmLxMwB// クリア判定
if(norma <= 0)
{
setColor(WHITE, RED);
setCursorPos(17, 12); printf("ALL CLEAR");
for(x=0; x<60; x++)wait();
break;
}
002410
03/12/16 22:57ID:AbmLxMwBうごかない。ansi.sys を適用させるため config.nt や command.com の
ショートカットをいじってみたが効果なし。どうやらWin32コンソール用に
コンパイルしたのがいけないらしい。
LSI C-86試食版を落としてきたのでこちらでコンパイルしようとしている。
これどうやって使うんだろ?
002510
03/12/17 00:09ID:pfCf+iQ3コメントに//が使えないとか、long型を使用すべき場所でint型を使って
いたとか、問題が多発。全体的に修正しよう。
002610
03/12/17 00:24ID:pfCf+iQ3command.comを実行しただけでも、キーのレスポンスがものすごく悪い。
全画面化するとキー入力を全く受け付けない。
どういうこと?だれかHELP!
cmd.exeは正常に動作している。
002710
03/12/17 00:42ID:pfCf+iQ3行われていないように見える。
0028名前は開発中のものです。
03/12/17 01:05ID:C3C73JZvWin32のコンソールでやりたかったら、ここら辺を参考にしれ。
ttp://www.kumei.ne.jp/c_lang/intro/no_61.htm
0029名前は開発中のものです。
03/12/17 12:14ID:USu6w+V30030名前は開発中のものです。
03/12/17 21:10ID:C3C73JZv>>1がアフォだから
0031名前は開発中のものです。
03/12/30 20:08ID:vKDCLhIz{
if(e.KeyCode == Keys.NumPad4)
{
Pad.X -= 4;
}
if(e.KeyCode == Keys.NumPad6)
{
Pad.X += 4;
}
e.Handled = true;
}
0033名前は開発中のものです。
03/12/31 10:20ID:1FVv67t8{
SolidBrush brushball = new SolidBrush(Color.Pink);
e.Graphics.FillEllipse(brushball, Ball);
SolidBrush brushpad = new SolidBrush(Color.Yellow);
e.Graphics.FillRectangle(brushpad, Pad);
}
0034名前は開発中のものです。
03/12/31 11:11ID:lrTGEVSA重そう
0035名前は開発中のものです。
04/01/13 19:52ID:Pt4fK32M0036名前は開発中のものです。
04/01/13 23:24ID:gVPfZUgA0037名前は開発中のものです。
04/01/19 09:00ID:65lFw0+/0038名前は開発中のものです。
04/01/20 17:59ID:R6008Bhw0039名前は開発中のものです。
04/01/21 09:03ID:1BeIUSrOC#経験ないんだけど、Cと比較して難しいの?Javaみたいなモンじゃないの?
OO慣れていればBasicやったりCで実装するより簡単なような気も。
SharpDevelop入れてみるかな。
0040名前は開発中のものです。
04/01/22 12:43ID:ZFWypAZ00041名前は開発中のものです。
04/01/22 17:21ID:viuBoj2b往年のPCのスプライト的な実装作るのって
そんなに手間かからんでしょ。
ドライバアクセスがこんなにラクなんだから。
0042名前は開発中のものです。
04/01/22 20:04ID:cutdAgu4スプライトオヤジキタ━━━━━━(゚∀゚)━━━━━━!!!!
0043名前は開発中のものです。
04/01/22 22:05ID:IS3WpODp0044名前は開発中のものです。
04/01/23 21:40ID:tTds2/9p0045名前は開発中のものです。
04/01/25 11:24ID:RsMxbw9n0046名前は開発中のものです。
04/01/25 12:49ID:OzO634EJ0047名前は開発中のものです。
04/01/25 13:55ID:hyKM2g2B0048名前は開発中のものです。
04/01/26 10:59ID:S3/uC7m5それはむしろエディット系コントロールとか作るときに不便
0049名前は開発中のものです。
04/01/26 12:59ID:reTPUXlQスプライトまんせー
0050名前は開発中のものです。
04/01/26 18:07ID:0Y9OAJKd消すのも背景色で塗りつぶさなくちゃいけないし
FONTROM最強
0051名前は開発中のものです。
04/01/26 22:01ID:qnPUEFWD0052名前は開発中のものです。
04/01/26 23:08ID:FFAkzKMpやはりPCGが最強。
0053名前は開発中のものです。
04/01/30 08:44ID:n8YkP2Tj0054名前は開発中のものです。
04/01/31 00:23ID:rIH36sCbあんた賢いな・・・
0055名前は開発中のものです。
04/02/08 16:52ID:4z3IB4nU0056名前は開発中のものです。
04/02/08 17:02ID:JCXudZiKプロパティ:位置
メソッド:描画
メソッド:移動(全キャラクタへの参照)
メソッド:接触判定(キャラクタへの参照)
クラス:ブロック
プロパティ:ブロック種別
プロパティ:接触回数
クラス:玉
プロパティ:玉種別
クラス:パドル
プロパティ:パドル種別
意外といけそうですが。
0057名前は開発中のものです。
04/02/08 18:43ID:2mWO52jYブロックの角に当たったとき、もときた方向に
もどるのはいいとして、ブロックがたくさん並んでいて
見た目平らな面のときは都合が悪い。せっかく穴に球が
入っていったのにすぐ戻ってきたりして。
あと、L字型に並んだブロックに対して三つ同時に
ブロックに当たったとき跳ね返る方向とか。
その辺まで考えないで作れられてるブロック崩しの
サンプルが以外と多い。
0058名前は開発中のものです。
04/02/09 01:19ID:WyPVuQOqフリーのライブラリ使って結構手軽に作れる。
入門書一冊読んだ位でも十分理解できると思う。
0059名前は開発中のものです。
04/02/09 10:32ID:1WSvqWyH0060名前は開発中のものです。
04/02/11 13:30ID:LH5M+8w7玉は丸いので3つはあり得ません。
0061名前は開発中のものです。
04/02/18 19:33ID:YOmVW/HZ0062名前は開発中のものです。
04/02/18 22:19ID:kDe87Fwu0063名前は開発中のものです。
04/02/29 14:02ID:uEbYKDWd3Dアルファベットの…
0064名前は開発中のものです。
04/03/10 08:44ID:giSbGFqT0065名前は開発中のものです。
04/03/19 23:15ID:360obb7C0066名前は開発中のものです。
04/04/06 04:38ID:/FyuV5gE0067名前は開発中のものです。
04/05/30 23:40ID:537BkZ7rわらた
0068名前は開発中のものです。
04/07/13 20:11ID:pw2kpSDi0069名前は開発中のものです。
04/07/13 22:29ID:SoTalbLf0070名前は開発中のものです。
04/07/15 13:25ID:X52tYOaK0071名前は開発中のものです。
04/07/16 01:36ID:61MHJAlW無理だろう いくらansi.sys使って色変えても
お前は見てしまったんだ、悪魔のcursesを
お前はまた作りだすしかないんだヨ。
0072名前は開発中のものです。
04/07/19 20:47ID:84bjiiMxどうせなら、日本語にしようぜ。
0073名前は開発中のものです。
2005/03/26(土) 20:53:20ID:Xnx1Pxfz0074名前は開発中のものです。
2005/03/27(日) 15:46:18ID:+/8gQ34kmov ax,13h
int 10h
}
0075名前は開発中のものです。
2005/03/28(月) 03:27:19ID:PZRMp7um遊ぶだけならエミュでもいいんだろうけど
やっぱWinネイティブでプレイしたいな。誰か作らんものか。
0076名前は開発中のものです。
2005/03/29(火) 14:32:54ID:Uyk71npF0077名前は開発中のものです。
2005/05/11(水) 16:39:18ID:KXJgGIuo0078名前は開発中のものです。
2005/07/11(月) 14:17:40ID:vHxAPJZA>>56を参考にして作ってみた。
ボールの動きに何かおかしい
所とか無いかな?誰かやってみてくだされ
重いかもしれないがスマソ
Escで終了します
0079名前は開発中のものです。
2005/07/11(月) 14:29:04ID:vHxAPJZA0080名前は開発中のものです。
2005/07/12(火) 21:15:17ID:6qcsMNaR,,--―'''""`ヽ'  ̄`ヽ、
/ ヾ / ~`ヽ
/ ヽ;:/""""ヾ ミ ヽ
/ ;:;;:::''''"""" \ i
/ / ヽ ヾヽ
/ / / ;/ ヾ ヽ
/ ;:;:ヽ ,,,,;;::'''''ヽ ;:|
i / ,,,,;;::::::::::::::: ヽ ヽ
| | | " :::: /\ ヾ ヽ
| | ヾ | /\ ::::::. : | ;:|
| ;:| : ::::::: : .、 | :|
| ヽ ( ,--、 ,:"' | /|!
| ヽ ヾ |;:/
| | __,-'ニニニヽ /|
|| `、ヽ ヾニ二ン" /;:|
| ヽ \ /ノ
| i `ー-::、_ ,,..-'|ヽ
ヽ;:;:;:;: ;:人 `ー――'''''"~ / ヽ
\;:;:;:;:/ `ー-、 ,.-'" \ー-、
,.-'" :/ \ ,.-''" |
/ ! ~>、,.-''" |
,,..-‐'''"" ヾ ,.-''"――――-、 /
008178
2005/07/19(火) 21:47:15ID:bXQldkgM0082名前は開発中のものです。
2005/08/15(月) 22:11:18ID:Bbh+qhM20084名前は開発中のものです。
2005/08/19(金) 00:07:59ID:0hphMafB俺は昨日一日で作れたぞ
0085名前は開発中のものです。
2006/03/10(金) 21:24:02ID:TvojFba80086名前は開発中のものです。
2006/03/30(木) 13:15:43ID:enwbEtPD今絵出す関数作るから待って〜。
0087名前は開発中のものです。
2006/03/30(木) 18:01:13ID:ib7z7ViG0088名前は開発中のものです。
2006/03/31(金) 02:25:46ID:vB+ZMqyX0089名前は開発中のものです。
2006/04/02(日) 17:13:18ID:NJTsWheqブロック崩しを作りたい
ttp://gamdev.org/w/?%5B%5B%A5%D6%A5%ED%A5%C3%A5%AF%CA%F8%A4%B7%A4%F2%BA%EE%A4%EA%A4%BF%A4%A4%5D%5D
ここに丁寧な作例が。先は長いですね。
0090名前は開発中のものです。
2006/04/04(火) 01:14:00ID:axYsssSw今ここ〜
ttp://gamdev.org/up/img/5196.png
早くもしんどくなってまいりました orz
0091名前は開発中のものです。
2006/04/06(木) 20:27:02ID:WsDr4Aa2全然進んでないけど絵をうp
サイズを決定して描画テストしただけ
まだまだ動かない ∩(´Д`)∩
0092名前は開発中のものです。
2006/04/08(土) 00:08:29ID:bezS0kHr■ このスレッドは過去ログ倉庫に格納されています