- 締切済み
テトリスを作りたいんですげど・・・・・
sankaku197の回答
- sankaku197
- ベストアンサー率47% (29/61)
・テトリスのブロックをランダムで出力する方法 C言語の標準関数でよければ、rand()というものがあります。 例えばブロックが5種類の場合、各ブロックに番号を割り当てておきます。 int num = rand()%5; とすれば0~4の値が返ってくるので、次に出すブロックが決まります。 ・ブロックを下に落とす方法と左右に動かす方法 http://www.geocities.jp/ky_webid/win32c/025.html キーを押した時、離した時を検知してくれるようです。 例えばWM_KEYDOWNしたら落ちる速度があがる、WM_KEYUPしたら元に戻る。 とすれば押しっぱなしも表現できます。
関連するQ&A
- テトリスの作り方について質問します。
テトリスの作り方について質問します。 ゲームプログラミングの勉強をしています。 今のお題はテトリスなのですが、少々行き詰ってしまいました。 今の進行状況ですが、 落下ブロックの生成 ↓ 自動落下処理 ↓ キー判定でブロック移動処理 ↓ 徐々にブロックが落ちてきて、一番下のラインまで落ちる までいったのですが、その次のブロックの着地処理といいますか、落下ブロックが下まで落ちた時に積み上がる処理のイメージが湧かずに困っています。 まだ、『積み上がったブロックが揃っている段があるか』まで実装するつもりはありませんので、まず『積み上がるブロックの表現』について悩んでいます。 例えば、積み上がるブロック用のPictureBoxを用意して、落下ブロックをコピーして描画していく、とか、背景になっている親コントロールに直接描画してしまう、とか。 いずれにしても、後々、『積み上がったブロックに揃っている段があり、そのラインが消えて、そこから上のブロックがダンッ!と落ちる』処理がやり易くなる方法を探しています。 何かアドバイスをください。
- ベストアンサー
- Visual Basic
- C言語でゲーム作り テトリス
忙しい中失礼します。愚問過ぎて済みませんが・・・ 今C言語に興味が沸いて来て、ゲームを作りたい、と思っています。 最終的にはC言語を駆使してテトリスを作りたい、と思っています。 あの、アーケードゲームにあるやつ(ブロックの絵があり、カーソルスティック?でブロックの方向を変えて等)、そのまま作りたい、と思っています。 可能でしょうか?やはりC++言語は必要になってくるのでしょうか? 要はC、またはC++(←出来ればこの2言語まででテトリスゲームを作成したい)等、Cに関する言語を使って、ゲームを完成させたい、と思っているのです。 開発環境はWindows XP Home Edition C言語:http://www.codegear.com/jp/downloads/free/cppbuilder にあります、Borland C++Compiler / Turbo Debugger を使っています。 知らない言語を学ぶ場合、まずはウェブサイトを通して学びたい、と思っています。 なので、参照となるURLがあればご提示願います。 結局本だと相性があるので・・・。まあ、ウェブサイトもそうですが、お金がかからない・・・という時点でウェブサイトを探したい、と思っているのです。 その後必要な本を探す、という手立てで考えています。 宜しければ教えて下さい。お願いします。 下記のURLを参照してからこの質問を書き込みました: http://oshiete1.goo.ne.jp/qa1601586.html http://oshiete1.goo.ne.jp/qa2586359.html また、最終的にテトリスゲームなので、 ステップ1:C言語でじゃんけんゲームを作る必要有、で言語はC言語のみで十分 ステップ2:じゃんけんゲームでグラフィックを次に付け足す、言語はC言語で作成可、Graphic?関数を使う必要有 みたいな、手順を踏んでいこうと思っています。先ずは小さなものから・・・始めていこう、と思っています。
- ベストアンサー
- C・C++・C#
- ゲーム作成のプラットフォーム
テトリスのようなアイデア次第のゲームって色々ありますが、初心者にも作りやすいゲームのプラットフォームにはどういったものがあるのでしょう? もちろん、PSなどは知ってますがFLASHやJAVAとかいう環境でもありとのこと。C言語など全く分かりませんがこういったプラットフォームだと何か違うのでしょうか? また、こういった専門的なプログラミング技術に不慣れでも比較的入りやすいプラットフォームってあるのか知りたいです。作成するゲームのイメージはブロック崩し、倉庫番、テトリスのようなものです。
- ベストアンサー
- その他(ボードゲーム)
- 完全な乱数を生成する方法
C言語で乱数を生成するときに、今まで srand(time(NULL)); を使用していたのですが、それだと1秒以内に複数の処理を行った際に、 同一の乱数が生成されてしまいます。 時間にとらわれずに完全にランダムな数字を出現させるにはどのような方法を取るのが簡単なのでしょうか? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 7行テトリスコードで分からない所があります
某所の以下のテトリスのコードなのですが、何点かわからない点があります。初歩的な質問も混ざっているかもしれません。理解できるというお方おりましたらご教授いただけると幸いです。 下記の左の数字は行番号で、ソースを読む際の目安にしていただければと思います(大体の番号です;) ソース http://zapanet.info/blog/item/1125 7 d=K-37?1:-1 // d:x方向の差分 ★d=K-37がtrueなら1、falseなら-1を返すと私は読んだのですが、d=K-37がtrueというのはどういう意味か分かりません。どういう意味なのでしょうか? 10 f+=Z[h+E[i]+d]==S; // 移動先が空白かどうか ★fに配列Zの添字h+配列Eの添字i+dを足したものをfに代入。までは多分あっていると思うのですが、次の==Sの意味がわかりません。どうよめばよいのでしょうか? 17 v=Math.round(p/12); // 回転先の x 座標 18 w=p-v*12; // 回転先の y 座標 19 C[i]=w*12-v; // 回転先の座標計算 ★なぜpを12で割って丸めているのでしょうか?17、18、19とどういう計算をしているのでしょうか? 24 t*!f?E=B[t]=C:0; // すべて空白なので回転決定 ★t*fの否定がtrueならばEにB[t]を代入するのは分かりますが、Cはどこにはいるのでしょうか?=が2つ続いたときどう読めば良いでしょうか? 40 for(j=11;--j&&Z[i*12+j]==S;); // そろったラインを検索 ★j=11から、1減らしたjかつ配列Z添字i*12+jがSになるまで・・・3つめの;の後ろがありませんが、これはどういう意味でしょうか? そして、for()の後ろに;がありますが、それはどういう意味でしょうか? 43 for(j=++i*12;j>2*12;)Z[j]=Z[j---12] // 全体を一段下げる ★Z[j]=Z[j---12]の---12の意味は、12を2減らしたのを・・・であっていますか? 51 Z[5]!=S?setTimeout(Y,99):0; // 入り口にブロックがあったら終了 ★配列Z添字5がSじゃなければset~、Sなら0を返すで読みはあっていますか? 59 for(K=t=P=i=0;i<240;){ ★K、t、P、iに0をセット、iが240以下になるまで・・・これも2つめの;の後がないのですがどうなっているのでしょうか? 61 Z[240+i]=Z[i]=++i%12<2||i>228?S="□":" "; // 床と壁の設定、番兵にもなる ★Z[240+i]、Z[i]に++i%12を代入したものが2以下または、i>228がtrueなら"□"、falseなら" "を返す。で読みはあっていますか?
- ベストアンサー
- JavaScript