ぬるーむ

Unity初心者が誰もが知っているゲームの模倣をしています。個人的な備忘録ですが、入門書を読み終えたばかりの初心者の方は「こんなへなちょこでもいいのか!」「俺の方がうまく作れる」と作成意欲がわいたりするかもしれません。

Unity

Unityでぷよぷよを作ってみた 7

壁蹴り 壁が邪魔でぷよが回転できないとき、1列ずれてから回転するようにする。 壁蹴り private enum PuyoDirection { Top = 0, Right = 1, Bottom = 2, Left = 3 } public void TurnLeft(Vector3 rotatePosition) { transform.RotateAround(transform.Trans…

Unityでぷよぷよを作ってみた 6

得点の計算 計算式 総ボーナス = (連鎖ボーナス + 連結ボーナス + 色数ボーナス) (ただし、全てのボーナスが0の場合は1になる。) 得点 = 消したぷよの数 ×10 × 総ボーナス 連鎖ボーナス 連鎖数によりつくボーナス。 連鎖ボーナス 連結ボーナス つながってい…

Unityでぷよぷよを作ってみた 5

ゴーストの表示 手順は以下の通り ゴーストの位置を実体と同じにする。 2つのゴーストをY座標でソートする。 それぞれ、実体のある位置からハードドロップした位置を求める(ハードドロップの方法はテトリスと同じ) 位置が重なった場合、2で上にあった方を上…

Unityでぷよぷよを作ってみた 4

ぷよ同士をくっつける くっついている方向を4ビットの整数で表す。 上: 1(0b0001) 右: 2(0b0010) 下: 4(0b0100) 左: 8(0b1000) 上 + 右: 1 + 2 = 3(0b0011) 上 + 下: 1 + 4 = 5(0b0101) 上 + 左: 1 + 8 = 9(0b1001) 右 + 下: 2 + 4 = 6(0b0110) 右 +…

Unityでぷよぷよを作ってみた 3

ぷよの消去 毎フレーム、状態がVanishのとき以下の処理を行う。 隣接した同色ぷよを取得する(同色リスト)。 同色リストのぷよが4つ以上のものを消去可能リストに追加する。 消去可能リストの中のぷよを全て消去する。 隣接した同色ぷよの取得 迷路を深さ優先…

Unityでぷよぷよを作ってみた 2

ぷよの自由落下 毎フレーム、状態がFreeFallのとき以下の処理を行う。 落下可能なぷよを取得し、落下可能リストに追加する。 落下可能リストにあるぷよを下にあるものから順番に自由落下させる。 ぷよが落下できなくなったら、そのぷよの落下可能フラグを消…

Unityでぷよぷよを作ってみた 1

基本部分 2次元配列を用いて処理を行うなど基本的な考え方はテトリスとほほ同じ。 2つのぷよ(組ぷよ)に4つの状態(Normal, FreeFall, Vanish, Wait)をもたせ、これらを遷移させることで移動やぷよの自由落下、連鎖などを行う。 大まかな流れは以下の通り。 …

Unityでテトリスを作ってみた 5

完成 完成したものがこちら Unity WebGL Player | Tetris 遊び方 横移動:← → 落下速度を上げる:↓ ハードドロップ:↑ 左回転:Z 右回転:X 10ライン消すごとにレベルが1増える。 レベルが上がるごとに落下速度が増す。 レベル10でクリア。 ソースコードはこ…

Unityでテトリスを作ってみた 4

ゴーストとハードドロップ ゴーストの表示は落下地点を求めてそこにゴーストを表示すればよい。 ハードドロップは落下地点を求めてテトリミノをそこまで落下させればよい。 落下地点を求める部分は共通なので、ゴーストを表示するときに求めた落下地点をハー…

Unityでテトリスを作ってみた 3

キー入力処理を修正 入力処理にGetDownKeyを使っている為、キーを押しっぱなしで操作することができない。左右に素早く操作する必要があるときなど連打しなければならないのはやりづらい。市販のゲームやエディタにあるようなキーを長押しすると押しっぱなし…

Unityでテトリスを作ってみた 2

テトリミノの固定に猶予を持たせる 接触後、すぐに固定すると操作がしづらい。固定するまでに猶予時間を与えることにする。 落下判定。 落下判定が偽なら、遅延フラグを真にする。真なら、遅延フラグを偽にする。遅延カウントはそのまま。 遅延フラグが真の…

Unityでテトリスを作ってみた 1

基本部分 基本的な部分は下記のサイトなどを参考に作成。 Unityテトリスの作り方-1 | masalog テトリスの作り方 – 2dgames.jp CODING MY OWN TETRIS (Unity) 落下を滑らかにする 落下距離をピクセル単位にする 落下距離を常に一定(1ブロック分)に保ち、落下…