// 在指定位置绘制一张牌, 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; }
//绘画筹码 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; }
//绘画扑克 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; }
//绘画扑克 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; }
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; }