예제 #1
0
    void OnGUI()
    {
        if (board != null)
        {
            Event e = Event.current;

            switch (e.type)
            {
            case EventType.keyDown:
                if ((e.keyCode == KeyCode.A || e.keyCode == KeyCode.LeftArrow) && areKeysUp)
                {
                    board.MoveShapeLeft();
                    areKeysUp = false;
                }
                else if ((e.keyCode == KeyCode.D || e.keyCode == KeyCode.RightArrow) && areKeysUp)
                {
                    board.MoveShapeRight();
                    areKeysUp = false;
                }
                else if (e.keyCode == KeyCode.J || e.keyCode == KeyCode.Z)
                {
                    board.RotateShape(TetrisShape.RotateDirection.CounterClockwise);
                }
                else if (e.keyCode == KeyCode.L || e.keyCode == KeyCode.C)
                {
                    board.RotateShape(TetrisShape.RotateDirection.Clockwise);
                }
                else if (e.keyCode == KeyCode.Space && areKeysUp)
                {
                    board.DropShape();
                    areKeysUp = false;
                }

                break;

            case EventType.keyUp:
                areKeysUp = true;
                break;
            }

            board.Draw();
        }
        else
        {
            if (GUILayout.Button("New Game?"))
            {
                board = ScriptableObject.CreateInstance <TetrisBoard>();
                board.parentWindow = this;
            }
        }
    }