コード例 #1
0
        /// <summary>
        /// 位置補正
        /// </summary>
        private void SetDisplayModify()
        {
            float setModifyX = -Position.X + (Screen.WIDTH / 2 - Width / 2);
            float setModifyY = -Position.Y + (Screen.HEIGHT / 2);

            //x方向の画面端の処理
            if (Position.X < Screen.WIDTH / 2 - Width / 2 + BlockSize.WIDTH)                                                            //+BlockSize.WIDTHを外すと一番左のブロックも見えます
            {
                setModifyX = -BlockSize.WIDTH;                                                                                          //-BlockSize.WIDTHを0にすると一番左のブロックも見えます
            }
            else if (Position.X > mediator.MapSize().X - Screen.WIDTH / 2 - Width / 2 - BlockSize.WIDTH)                                //-BlockSize.WIDTHを外すと一番右のブロックも見えます
            {
                setModifyX = -(mediator.MapSize().X - Screen.WIDTH / 2 - Width / 2) + (Screen.WIDTH / 2 - Width / 2 + BlockSize.WIDTH); //+BlockSize.WIDTHを外すと一番右のブロックも見えます
            }

            //y方向 マップの一番下のブロック以下が見えないようにする
            if (Position.Y > mediator.MapSize().Y - Screen.HEIGHT / 2 - BlockSize.HEIGHT) // -BlockSize.HEIGHTを外すと一番下のブロックも見えます。
            {
                setModifyY = -(mediator.MapSize().Y - Screen.HEIGHT - BlockSize.HEIGHT);  // -BlockSize.WIDTHを外すと一番下のブロックも見えます。
            }

            gameDevice.SetDisplayModify(new Vector2(setModifyX, setModifyY));
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: Jun-Takahashi/MagicAction
        /// <summary>
        /// 位置補正
        /// </summary>
        private void setDisplayModify()
        {
            //中心で描画するよう補正値を設定
            gameDevice.SetDisplayModify(new Vector2(-position.X + (Screen.Width / 2 - width / 2), 0.0f));
            //Playerのx座標が画面の中心より左なら見切れてるので、Vector2.Zeroで設定しなおす
            if (position.X < Screen.Width / 2 - width / 2)
            {
                gameDevice.SetDisplayModify(Vector2.Zero);
            }

            //右端は画面2.5画面を越えたら3画面目が出るよう2画面分のx座標で補正する
            //if (position.X > Screen.Width * 2 + (Screen.Width / 2 - width / 2))
            //{
            //gameDevice.SetDisplayModify(new Vector2(
            //    -(48 * 32 - Screen.Width / 2 - width / 2) + (Screen.Width / 2 - width / 2),
            //    0.0f));
            //    gameDevice.SetDisplayModify(new Vector2(-Screen.Width * 2, 0));
            //}
            if (position.X > mediator.MapSize().X - Screen.Width / 2 - width / 2)
            {
                gameDevice.SetDisplayModify(new Vector2(-(mediator.MapSize().X - Screen.Width / 2 - width / 2) + (Screen.Width / 2 - width / 2), 0.0f));
            }
        }