Esempio n. 1
0
        /// <summary>
        /// デザイナー:ドラッグ開始
        /// </summary>
        private void pnlPreview_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left || this.mgr.EdittingData?.CurrentLayer == null || this.lstFrameList.SelectedIndex == -1)
            {
                return;
            }

            var NotFound = true;

            //現在のレイヤーを掴めているか判定する
            var layerSize = new Size(
                (int)(this.mgr.EdittingData.CurrentLayer.SectionSize.Width * this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].Extend / 100.0),
                (int)(this.mgr.EdittingData.CurrentLayer.SectionSize.Height * this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].Extend / 100.0)
                );
            var layerRect = new Rectangle(
                this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].ViewPosition.X + mgrDBEffect.ScreenSize.Width / 2 - layerSize.Width / 2,
                this.mgr.EdittingData.CurrentLayer.Frames[this.lstFrameList.SelectedIndex].ViewPosition.Y + mgrDBEffect.ScreenSize.Height / 2 - layerSize.Height / 2,
                layerSize.Width,
                layerSize.Height
                );

            //ドラッグ可能な領域である場合
            if (layerRect.Contains(e.X, e.Y))
            {
                this.drugObj = new DrugObject(-1, new Point(e.X, e.Y));
                NotFound     = false;
            }

            if (NotFound)
            {
                this.drugObj = null;
                this.picPallet.Refresh();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// デザイナー:ドラッグ開始
        /// </summary>
        private void picPreview_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }

            var NotFound = true;

            //レイヤーはインデックスが後ろになるほど上に描画される構造であるため、逆から判定する
            for (var i = this.mgr.EdittingData.Enemies.Count - 1; i >= 0; i--)
            {
                //拡大率を適用する
                var enemyPos  = this.mgr.EdittingData.Enemies[i].Position;
                var enemySize = this.mgr.EdittingData.Enemies[i].Size;
                var pos       = new Point(e.X, e.Y);
                ViewScale.RestoreOriginalPoint(ref pos, this.mgr.Scale);
                ViewScale.ApplyRateToPoint(ref enemyPos, this.mgr.Scale);
                ViewScale.ApplyRateToSize(ref enemySize, this.mgr.Scale);

                //ドラッグ可能な領域である場合
                if (new Rectangle(enemyPos, enemySize).Contains(e.X, e.Y))
                {
                    this.drugObj = new DrugObject(i, new Point(e.X, e.Y));
                    this.ltvAnalyzer.SelectedIndices.Add(i);
                    NotFound = false;
                    break;
                }
            }

            if (NotFound)
            {
                this.drugObj = null;
                this.ltvAnalyzer.SelectedIndices.Clear();
                this.picPreview.Refresh();
            }
        }
Esempio n. 3
0
 /// <summary>
 /// デザイナー:ドラッグ中断
 /// </summary>
 private void pnlPreview_MouseLeave(object sender, EventArgs e)
 {
     this.drugObj = null;
 }
Esempio n. 4
0
 /// <summary>
 /// デザイナー:ドラッグ終了
 /// </summary>
 private void pnlPreview_MouseUp(object sender, MouseEventArgs e)
 {
     this.pnlPreview_MouseMove(sender, e);
     this.drugObj = null;
 }