今回はブロックの操作に関する制御について解説する
〇操作方法
当ゲームでのブロックの操作については下記の3種類
1 左右移動 画面の左右スワイプ
2 落下 画面の下ヘのスワイプ
3 回転 画面をタップ
制御の仕方としては、画面を指でタップした位置と話した位置を比較して、X方向に増加していたら左、現状していたら左、Y方向にマイナス移動していたら落下としているのみ
実際のコードは下記の通り
//スワイプによる左右下移動//////////////////////////////////////////////////////
if (Input.GetMouseButtonDown(0))//画面をタップ
{
//タップしたポジションを記憶
TapStartPos = Input.mousePosition;
}
else if (Input.GetMouseButtonUp(0))//タップ終了
{
//タップを終了した時の位置を記憶
TapEndPos = Input.mousePosition;
//開始と終了位置を比較
float dir = TapEndPos.x - TapStartPos.x;
float dirH = TapEndPos.y - TapStartPos.y;
//Y方向に下がっていたら
if (dirH < -100)
{
//落とせるところまで落とす
while (IsCurrentGOExit[0] || IsCurrentGOExit[1])
{
MoveBlock(MoveDirection.DOWN);
}
}
//右に増加していたら右に移動
else if (dir > 30)
{
if (IsMoveRLEnable)
MoveBlock(MoveDirection.RIGHT);
}
//左に増加していたら右に移動
else if (dir < -30)
{
if (IsMoveRLEnable)//
MoveBlock(MoveDirection.LEFT);
}
//タップされたのみの場合は画面の左右のどちらの半分かで回転方向を変える
else
{
if(TapStartPos.x>540)
RotateBlock(0);
else
RotateBlock(1);
}
はじめのうちは画面に配置したボタンで移動させていたが、試行錯誤の上、スマホらしい操作方法がいちばんしっくり来たので、この方法に落ち着いた
画面もすっきりしたし、制御方法も簡単
今日のところは以上