1

XNA を使用して C# で Tetris クローンを作成していますが、ブロックを実際に実装する方法がわかりません。

イメージ通りに形を作るのはうまくいかないと思うので(線が形成されるときにパーツが削除されるため)、このようなピースを構成するブロックがあります。

残念ながら、ブロックを実際に定義してピースを作成する方法も、ブロックを操作して回転させる方法もわかりません。

編集: Tetris Grid の作成方法を学習する際にも支援が必要です。

4

4 に答える 4

1

ブロックについては、3Dで作業することを強くお勧めします。カメラをロックするなどしてゲームを2Dのように見せることはできますが、ベクターグラフィックスで作業することで多くのメリットが得られます。ブロックは、画面上で回転および移動する単純な立方体(フラットまたはある程度の深さ)になります。

グリッドについては、@fortranと@aaronの回答を見てください。ブール行列でうまくいきます。

于 2010-03-16T08:53:05.063 に答える
1

たぶん、Coding4Funへのこのリンクが役立つでしょう。ドイツ語ですが、ソースコードを入手して、ここで問題がどのように解決されるかを確認できるはずです。

念のため、ここに直接ダウンロードリンクがあります。

于 2010-03-16T10:20:13.187 に答える
1

ブール行列を使用して、画面の状態をモデル化します。各ピースは、それ自体が別の小さなブール行列です。

ピースを回転させるのは、座標を少しいじるだけで簡単です (これはお任せします)。

oredレンダリング方法については、現在落下しているピースをシフトおよび回転させて、マトリックス内の真の値ごとにピース タイルを描画するだけです。

于 2010-03-15T18:38:28.703 に答える
1

以前にテトリスを作成したことはありませんが、少し考えた後、単純なマトリックスを使用して作品を作成すると思います。たとえば、ゲーム ボード全体が 1 つの大きなマトリックスになります。そのマトリックスのサブセット、たとえば 4x4 ブロックがゲームのピースになります。その 4x4 ブロックのどの部分が埋めら​​れるかは、作成する特定のピースによって決まります。マトリックスの各部分は、それが満たされているかどうかを示すブール値フラグを持つことができます。これは非常に単純化した見方ですが、実行可能な解決策だと思います。

于 2010-03-15T18:39:21.183 に答える