私はC#とXNAでテトリスのブロックをどのように作成するのですか?
質問
私はXNAとC#でテトリスクローンを作ってるんだ、と私は実際にブロックを実装する方法がわからないんです。
私は(ラインが形成される際に部品が削除されているため)イメージとして形を作ることは働くことはないと思うので、私は<のhref = "HTTPのような作品を補うためにブロックを持っている://img638.imageshackを。私たち/ img638 / 4719 / jsquarebig.png」のrel = "nofollowをnoreferrer">このを。
残念ながら、私は実際に作品を作るためにブロックを定義する方法がわからない、また私は彼らがなど、回転させるためにそれらを操作する方法を知っています。
編集:私は、あまりにもテトリスグリッドを作成する方法を学習の支援が必要になります。
解決
私は前にテトリスを作成していないが、いくつかの思考の後、私は自分の作品を作成するために、単純マトリクスを使用するであろうと信じています。たとえば、あなたの全体のゲームボードは一つの大きな行列になります。その行列のサブセットは、ゲームの駒となり、それの4×4ブロックを言います。満たされるだろうと4×4ブロックの部分は、作成したい特定のどの部分によって決定されるであろう。行列の各部分は、それが満たされたかいないかを示すだろうブールのフラグを持つことができます。これは非常に単純化した図であるが、私はそれが実行可能な解決策だと思います。
他のヒント
の画面の状態をモデル化するためにブール行列を使用します。各部分は、別の小さなブール行列自体である。
の部分を回転させると(私はあなたにこれを左)座標で少し遊んでするのと同じくらい簡単です。
レンダリングする方法について、ちょうど現在の落下作品であなたの行列ored
内の各真値のピースタイルを描くシフトし、回転させます。
ブロックのために、私は強く、3Dでの作業を示唆しています。あなたはまだゲームはカメラなどをロックすることにより、2Dのように見えるようにすることができますが、ベクターグラフィックスでの作業から多くの利益になります。あなたのブロックは、あなたが回転し、単純な立方体(フラットまたはいくつかの深さ)も、画面の周りに移動します。
グリッドの場合は、@のFORTRANのではとアーロンの答え@見て、ブール行列は、トリックを行います。
たぶん、このリンクは Coding4Funののに役立ちますします。それはドイツ語でですが、あなたがソースコードを入手し、問題についてはこちらを解決する方法について見てみることができる必要があります。
念のために、ここでは<のhref = "http://download.microsoft.com/download/3/2/5/325fd01e-437b-47d6-8e07-1ae66529b78b/XnaTetris_Code.zip" のrel =」 nofollowをnoreferrer ">直接ダウンロードリンクするます。