ChineseChess/CGame.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Drawing;
using System.Windows.Forms;

using ChineseChess.Core;

namespace ChineseChess
{
    internal class CGame : Control
    {
        private Bitmap _ChessboardBitmap;
        private ResourceHelper _ResHelper;

        private Game _Game;
        private ChessboardPosition? _CurrMouseOverPos;
        private Chessman _CurrSelectedChessman;

        public CGame()
        {
            DoubleBuffered = true;
            _ResHelper = ResourceHelper.Instance;
            _ChessboardBitmap = _ResHelper.GetChessboardBitmap(0);
            MinimumSize = MaximumSize = Size = _ChessboardBitmap.Size;
            _Game = new Game();

        }

        protected override void OnPaint(PaintEventArgs pevent)
        {
            foreach (var chessman in _Game.Chessboard.GetChessmen())
                DrawChessman(pevent.Graphics, chessman);

            if (_CurrSelectedChessman != null && _CurrMouseOverPos.HasValue && _CurrSelectedChessman.Position != _CurrMouseOverPos.Value)
                DrawChessman(pevent.Graphics, _CurrSelectedChessman, _CurrMouseOverPos.Value);


            base.OnPaint(pevent);
        }

        protected override void OnMouseMove(MouseEventArgs e)
        {
            var pos = GetChessboardPosition(e.Location);
            if (_CurrMouseOverPos != pos)
            {
                _CurrMouseOverPos = pos;
                Invalidate();
            }
            base.OnMouseMove(e);
        }

        protected override void OnClick(EventArgs e)
        {
            try
            {
                Chessman selected = null;
                if (_CurrMouseOverPos.HasValue)
                    selected = _Game.Chessboard.GetChessmanByPos(_CurrMouseOverPos.Value);
                if (_CurrSelectedChessman == null)
                {
                    if (selected != null)
后面还有 151 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。