Exemplo n.º 1
0
        // 在指定位置绘制一张牌, bCardData为0时绘制背面
        public void DrawOneCard(Graphics g, byte bCardData, int nX, int nY)
        {
            //变量定义

            Color clrTrans = Color.FromArgb(255, 0, 255);

            //CImageHandle HandleCard(&m_ImageCard);

            GameGraphics.DrawAlphaImage(g, m_ImageCard, nX, nY, SMALL_CARD_WIDTH, SMALL_CARD_HEIGHT, 0, 0, clrTrans);
            return;
        }
Exemplo n.º 2
0
        //绘画筹码
        public void DrawGoldView(Graphics g, int nXPos, int nYPos, bool bCount, bool bCenter, byte bDUser)
        {
            //加载位图
            //CImageHandle ImageHandle(&m_ImageGold);

            if (!bCenter)
            {
                //绘画筹码
                int nYPosDraw  = nYPos - GOLD_IMAGE_HEIGHT / 2;
                int iDrawCount = 0;
                for (int i = 0; i < m_lGoldCount.Length; i++)
                {
                    for (int j = 0; j < m_lGoldCount[i]; j++)
                    {
                        iDrawCount++;
                        GameGraphics.DrawAlphaImage(g, m_ImageGold, nXPos - GOLD_IMAGE_WIDTH / 2, nYPosDraw, GOLD_IMAGE_WIDTH, GOLD_IMAGE_HEIGHT,
                                                    (m_lGoldCount.Length - i - 1) * GOLD_IMAGE_WIDTH, 0, Color.FromArgb(255, 0, 255));
                        nYPosDraw -= 3;
                        if (iDrawCount >= m_lMaxLayer)
                        {
                            break;
                        }
                    }
                    if (iDrawCount >= m_lMaxLayer)
                    {
                        break;
                    }
                }
            }
            else     //中心筹码
            {
                //绘画筹码
                int nYPosDraw = nYPos - GOLD_IMAGE_HEIGHT / 2;
                int nXPosDraw = nXPos - GOLD_IMAGE_HEIGHT / 2;
                int iCount = 0, iDrawCount = 0;
                int xTemp = 0, yTemp = 0;
                for (int i = 0; i < m_lGoldCount.Length; i++)
                {
                    for (int j = 0; j < m_lGoldCount[i]; j++)
                    {
                        iDrawCount++;
                        GameGraphics.DrawAlphaImage(g, m_ImageGold, nXPosDraw + xTemp, nYPosDraw + GOLD_IMAGE_HEIGHT / 2 + 2, GOLD_IMAGE_WIDTH,
                                                    GOLD_IMAGE_HEIGHT, (m_lGoldCount.Length - i - 1) * GOLD_IMAGE_WIDTH, 0, Color.FromArgb(255, 0, 255));
                        nYPosDraw -= 3;
                        if (iDrawCount >= m_lMaxLayer)
                        {
                            iDrawCount = 0;
                            nYPosDraw  = nYPos - GOLD_IMAGE_HEIGHT / 2;
                            iCount++;
                            if (iCount == 1)
                            {
                                xTemp = GOLD_IMAGE_WIDTH;
                            }
                            else if (iCount == 2)
                            {
                                xTemp = -GOLD_IMAGE_WIDTH;
                            }
                            else if (iCount == 3)
                            {
                                xTemp = GOLD_IMAGE_WIDTH * 2;
                            }
                            else if (iCount == 4)
                            {
                                xTemp = -GOLD_IMAGE_WIDTH * 2;
                            }
                        }
                    }
                }
            }

            //绘画数字
            if ((m_lGold >= 1L) && (bCount == true))
            {
                Font  ViewFont;
                Brush brush;
                if (bCenter)
                {
                    //ViewFont = new Font((-17,0,0,0,400,0,0,0,134,3,2,1,1,TEXT("Arial"));
                    ViewFont = new Font("Arial", 17);
                    brush    = new SolidBrush(Color.FromArgb(255, 255, 4));
                }
                else
                {
                    //ViewFont = new Font(-15,0,0,0,400,0,0,0,134,3,2,1,1,TEXT("Arial"));
                    ViewFont = new Font("Arial", 15);
                    brush    = new SolidBrush(Color.FromArgb(255, 255, 4));
                }
                //CFont *pOldFont=pDC->SelectObject(&ViewFont);

                //int iBkMode = pDC->SetBkMode( TRANSPARENT );

                string    szBuffer = GameGraphics.GetGoldString(m_lGold);
                int       iY       = nYPos + GOLD_IMAGE_HEIGHT / ((bCenter)?1:2) + 1;
                int       iX       = (bDUser != 4)?0:62;
                Rectangle DrawRect = new Rectangle(nXPos - 50 + iX, iY, 96, 20);


                if (bDUser != 4)
                {
                    GameGraphics.DrawString(g, szBuffer, ViewFont, brush, DrawRect);
                }
                else
                {
                    StringFormat stringFormat = new StringFormat();
                    stringFormat.Alignment = StringAlignment.Center;
                    //stringFormat.LineAlignment = StringAlignment.Center;
                    stringFormat.FormatFlags = StringFormatFlags.NoWrap;

                    g.DrawString(szBuffer, ViewFont, brush, DrawRect, stringFormat);
                }
                //pDC->SetBkMode(iBkMode);

                //pDC->SelectObject(pOldFont);
                //ViewFont.DeleteObject();
            }

            return;
        }
Exemplo n.º 3
0
        //绘画扑克
        public void DrawCardControl(Graphics g, bool ISbEffect)
        {
            //加载位图
            //CImageHandle HandleCard(&m_ImageCard);

            //扑克掩图
            //CImageHandle ImageCardMaskHandle(&m_ImageCardMask);
            //CImageHandle ImageWinHandle(&m_ImageWin);

            //掩图大小
            int nCardMaskWidth  = m_ImageCardMask.Width;
            int nCardMaskHeight = m_ImageCardMask.Height;

            //获取位置
            Point OriginPoint = GetOriginPoint();

            //变量定义
            int nXDrawPos = 0, nYDrawPos = 0;
            int nXImagePos = 0, nYImagePos = 0;

            //绘画扑克
            for (int i = 0; i < m_cbCardCount; i++)
            {
                //获取扑克
                bool bShoot     = m_CardItemArray[i].bShoot;
                bool bEffect    = m_CardItemArray[i].bEffect;
                int  cbCardData = m_CardItemArray[i].cbCardData;

                //间隙过滤
                if (cbCardData == SPACE_CARD_DATA)
                {
                    continue;
                }

                //图片位置
                if ((m_bDisplayItem == true) && (cbCardData != 0))
                {
                    if ((cbCardData == 0x4E) || (cbCardData == 0x4F))
                    {
                        nXImagePos = ((cbCardData & CARD_MASK_VALUE) % 14) * m_CardSize.Width;
                        nYImagePos = ((cbCardData & CARD_MASK_COLOR) >> 4) * m_CardSize.Height;
                    }
                    else
                    {
                        nXImagePos = ((cbCardData & CARD_MASK_VALUE) - 1) * m_CardSize.Width;
                        nYImagePos = ((cbCardData & CARD_MASK_COLOR) >> 4) * m_CardSize.Height;
                    }
                }
                else
                {
                    nXImagePos = m_CardSize.Width * 2;
                    nYImagePos = m_CardSize.Height * 4;
                }

                //屏幕位置
                if (m_bHorizontal == true)
                {
                    nXDrawPos = m_nXDistance * i;
                    nYDrawPos = (bShoot == false)?m_nShootDistance:0;
                }
                else
                {
                    nXDrawPos = 0;
                    nYDrawPos = m_nYDistance * i;
                }

                //绘画扑克
                GameGraphics.DrawAlphaImage(g, m_ImageCard, OriginPoint.X + nXDrawPos, OriginPoint.Y + nYDrawPos, m_CardSize.Width, m_CardSize.Height, nXImagePos, nYImagePos, Color.FromArgb(255, 0, 255));
                if (bEffect && ISbEffect)
                {
                    GameGraphics.DrawAlphaImage(g, m_ImageCardMask, OriginPoint.X + nXDrawPos - 2, OriginPoint.Y + nYDrawPos - 2, nCardMaskWidth, nCardMaskHeight, 0, 0, Color.FromArgb(255, 0, 255));
                }

                //扑克标志
                if (m_CardItemArray[i].bMy)
                {
                    GameGraphics.DrawAlphaImage(g, m_ImageWin, OriginPoint.X + nXDrawPos, OriginPoint.Y + m_CardSize.Height + ((m_YCollocateMode == enYCollocateMode.enYTop) ? (m_CardSize.Height / 2 - m_ImageWin.Width) : 0) - m_ImageWin.Height,
                                                m_ImageWin.Width, m_ImageWin.Height, 0, 0, Color.FromArgb(255, 0, 255));
                }
            }

            return;
        }
Exemplo n.º 4
0
        //绘画扑克
        public void DrawCardControl(Graphics g)
        {
            //加载位图
            //CImageHandle HandleCard(&m_ImageCard);

            //获取位置
            Point OriginPoint = GetOriginPoint();

            //变量定义
            int nXDrawPos  = 0;
            int nYDrawPos  = 0;
            int nXImagePos = 0;
            int nYImagePos = 0;

            //绘画扑克
            for (int i = 0; i < m_wCardCount; i++)
            {
                //获取扑克
                bool bShoot     = m_CardItemArray[i].bShoot;
                int  cbCardData = m_CardItemArray[i].cbCardData;

                //间隙过滤
                if (cbCardData == SPACE_CARD_DATA)
                {
                    continue;
                }

                //图片位置
                if ((m_bDisplayItem == true) && (cbCardData != 0))
                {
                    if ((cbCardData == 0x4E) || (cbCardData == 0x4F))
                    {
                        nXImagePos = ((cbCardData & CARD_MASK_VALUE) % 14) * m_CardSize.Width;
                        nYImagePos = ((cbCardData & CARD_MASK_COLOR) >> 4) * m_CardSize.Height;
                    }
                    else
                    {
                        nXImagePos = ((cbCardData & CARD_MASK_VALUE) - 1) * m_CardSize.Width;
                        nYImagePos = ((cbCardData & CARD_MASK_COLOR) >> 4) * m_CardSize.Height;
                    }
                }
                else
                {
                    nXImagePos = 0;
                    nYImagePos = 0;
                }

                //屏幕位置
                if (m_bHorizontal == true)
                {
                    nXDrawPos = m_nXDistance * i;
                    nYDrawPos = (bShoot == false)?m_nShootDistance:0;
                }
                else
                {
                    nXDrawPos = 0;
                    nYDrawPos = m_nYDistance * i;
                }

                //绘画扑克
                GameGraphics.DrawAlphaImage(g, m_ImageCard, OriginPoint.X + nXDrawPos, OriginPoint.Y + nYDrawPos, m_CardSize.Width, m_CardSize.Height, nXImagePos, nYImagePos, Color.FromArgb(255, 0, 255));
            }

            return;
        }
Exemplo n.º 5
0
        private void ScoreView_Paint(object sender, PaintEventArgs e)
        {
            if (this.Visible != true)
            {
                return;
            }

            //CPaintDC dc(this);
            //SetupRegion(&dc,m_ImageBack,RGB(255,0,255));

            //设置 DC
            //dc.SetBkMode(TRANSPARENT);
            //dc.SetTextColor(RGB(250,250,250));
            //dc.SelectObject(CSkinResourceManager::GetDefaultFont());

            Graphics g     = e.Graphics;
            Brush    brush = new SolidBrush(Color.FromArgb(250, 250, 250));

            Font viewFont = new Font("Arial", 12);

            //绘画背景
            //CImageHandle ImageHandle(&m_ImageBack);
            if (m_lGameScore > 0)
            {
                //	m_ImageBack.BitBlt(dc.GetSafeHdc(),0,0,m_ImageBack.GetWidth()/3,m_ImageBack.GetHeight(),0,0,SRCCOPY);
                GameGraphics.DrawAlphaImage(g, m_ImageBack, 0, 0, m_ImageBack.Width / 3, m_ImageBack.Height, 0, 0, Color.FromArgb(255, 0, 255));
            }
            else if (m_lGameScore == 0L)
            {
                GameGraphics.DrawAlphaImage(g, m_ImageBack, 0, 0, m_ImageBack.Width / 3, m_ImageBack.Height, m_ImageBack.Width / 3, 0, Color.FromArgb(255, 0, 255));
            }
            else
            {
                GameGraphics.DrawAlphaImage(g, m_ImageBack, 0, 0, m_ImageBack.Width / 3, m_ImageBack.Height, 2 * m_ImageBack.Width / 3, 0, Color.FromArgb(255, 0, 255));
            }

            //显示分数
            string    szBuffer = string.Empty;
            Rectangle rcScore  = new Rectangle(60, 60, 65, 19);

            //用户金币
            szBuffer = string.Format("{0}", m_lGameScore);
            GameGraphics.DrawString(g, szBuffer, viewFont, brush, rcScore);

            //dc.SetTextColor(RGB(0,0,0));

            //显示秒数
            string    szBuffe = string.Empty;
            int       ileft   = 52;
            int       itop    = 8;
            Rectangle rcScor  = new Rectangle(ileft, itop, ileft + 15, itop + 15);

            //创建资源
            Font InfoFont;

            //InfoFont.CreateFont(-14,0,0,0,10,0,0,0,4,0,2,1,2,TEXT("宋体"));
            InfoFont = new Font("宋体", 14);

            //设置 DC
            //dc.SetTextAlign(TA_CENTER|TA_TOP);
            //CFont * pOldFont=dc.SelectObject(&InfoFont);

            //绘画信息
            szBuffe = string.Format("{0}", m_bTimes);
            //dc.Ellipse(&rcScor);
            brush = new SolidBrush(Color.FromArgb(255, 255, 255));
            g.DrawString(szBuffe, InfoFont, brush, ileft + 132, itop - 2);

            //清理资源
            //dc.SelectObject(pOldFont);
            //InfoFont.DeleteObject();

            return;
        }