初めまして、黒ヤギというものです。
私は現在学校の卒業制作でゲームを作ることになり、その作業に着手しているのですが、プログラムとアルゴリズムの壁にぶち当たっています。
作成したいのはテトリスのような落ちゲーです。
現在壁となっているのはピースの作成と作成したピースを落下させるためのアルゴリズムです。
タイトル通り、ピースの作成方法と落下のアルゴリズムをご教授していただきたいです。
Cは授業で基礎的なところ(ブロック崩しを製作)までは勉強しましたが、それでもあまり理解できていないレベルです。
使用ソフトはMicrosoft visual Studioです。
どうか、よろしくお願いします
落ちゲーのピースの作り方と落下のアルゴリズムについて
Re:落ちゲーのピースの作り方と落下のアルゴリズムについて
今、まさに過去に作ったコンソールアプリのテトリスをDXライブラリを使用したものにリメイクしているところです(笑)
C++で組んだものでよければ、下記URLにソースを置いてありますので見てみてください。
あまりコメントを入れていないので、内容で分からない点があれば質問してくれても構いません(^_^;)
http://park.geocities.jp/bugbugbugbug2001/
C++で組んだものでよければ、下記URLにソースを置いてありますので見てみてください。
あまりコメントを入れていないので、内容で分からない点があれば質問してくれても構いません(^_^;)
http://park.geocities.jp/bugbugbugbug2001/
Re:落ちゲーのピースの作り方と落下のアルゴリズムについて
ブロックを落とす表現をするのに一番理解しやすいのは、レイヤを2枚(C言語的に言えば、2次元配列を2つ持つ3次元配列をひとつ)作って、一枚はブロックを落とすためのレイヤ、もう一枚は、既に落ちたブロック。例えば、ブロックが地面に着いたら、2つのレイヤをOR加算します。
画面がどうであれ、2つのレイヤをOR加算したものを表示するようにすれば、ブロックを落とすためには、ブロックを落とすために使用するレイヤの各行の値を、それぞれ一行下の1次元配列にコピーする処理をすれば良いだけになります。
ただし、この方法は、非常に処理が重くなるだけでなく、上に書いてあることをそのまま書くと、セグメンテーション違反を起こします。
画面がどうであれ、2つのレイヤをOR加算したものを表示するようにすれば、ブロックを落とすためには、ブロックを落とすために使用するレイヤの各行の値を、それぞれ一行下の1次元配列にコピーする処理をすれば良いだけになります。
ただし、この方法は、非常に処理が重くなるだけでなく、上に書いてあることをそのまま書くと、セグメンテーション違反を起こします。
Re:落ちゲーのピースの作り方と落下のアルゴリズムについて
こちらにテキストだけで作るテトリスがありますので参考にしてください。
http://www.nhk.or.tv/kow/program/index.php
http://www.nhk.or.tv/kow/program/index.php
Re:落ちゲーのピースの作り方と落下のアルゴリズムについて
返信が非常に遅くなってすみません。
皆さんのおかげで基礎的なところはなんとか理解できました。
それでまた質問なのですが、配列でブロックパターンを作ったところに画像を当てはめる(配列内で1のところに画像をあてる)ことは可能なのでしょうか?
皆さんのおかげで基礎的なところはなんとか理解できました。
それでまた質問なのですが、配列でブロックパターンを作ったところに画像を当てはめる(配列内で1のところに画像をあてる)ことは可能なのでしょうか?