当前位置: 首页>>代码示例>>C#>>正文


C# IGraphic.DrawImage方法代码示例

本文整理汇总了C#中IGraphic.DrawImage方法的典型用法代码示例。如果您正苦于以下问题:C# IGraphic.DrawImage方法的具体用法?C# IGraphic.DrawImage怎么用?C# IGraphic.DrawImage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IGraphic的用法示例。


在下文中一共展示了IGraphic.DrawImage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ShowTower

 /// <summary>
 /// Shows the tower.
 /// </summary>
 /// <param name="canva">The canva.</param>
 /// <param name="visibleStart">The visible start.</param>
 /// <param name="visibleFinish">The visible finish.</param>
 internal void ShowTower(IGraphic canva, Point visibleStart, Point visibleFinish)
 {
   //Checking, is tower visible map area or not
   bool flag = (((ArrayPos.X + 1) * Settings.ElemSize/* - CurrentTowerParams.AttackRadius */< visibleFinish.X * Settings.ElemSize) ||
                ((ArrayPos.Y + 1) * Settings.ElemSize/* - CurrentTowerParams.AttackRadius */< visibleFinish.Y * Settings.ElemSize));
   //if ((ArrayPos.Y >= VisibleFinish.Y) || (ArrayPos.X >= VisibleFinish.X))
   //if ((Flag)&&((ArrayPos.X < (VisibleStart.X-1)) || (ArrayPos.Y < (VisibleStart.Y-1))))
   if ((flag) && (!(((ArrayPos.X + 1) * Settings.ElemSize/* + CurrentTowerParams.AttackRadius */> visibleStart.X * Settings.ElemSize) ||
     ((ArrayPos.Y + 1) * Settings.ElemSize/* + CurrentTowerParams.AttackRadius */> visibleStart.Y * Settings.ElemSize))))
     flag = false;
   if (!flag) return;
   canva.DrawImage(CurrentTowerParams.Picture,
     Convert.ToInt32((-(CurrentTowerParams.Picture.Width / 2) + (ArrayPos.X + 1 - visibleStart.X) * Settings.ElemSize) * Scaling + Settings.DeltaX),
     Convert.ToInt32((-(CurrentTowerParams.Picture.Height / 2) + (ArrayPos.Y + 1 - visibleStart.Y) * Settings.ElemSize) * Scaling + Settings.DeltaY),
     Convert.ToInt32(CurrentTowerParams.Picture.Width * Scaling), Convert.ToInt32(CurrentTowerParams.Picture.Height * Scaling));
   if (_wasCrit == 0) return;
   _wasCrit--;
   //Critical strike notification
   canva.DrawString(
     string.Format("{0}!", CurrentTowerParams.Damage * CurrentTowerParams.CritMultiple),
       new Font("Arial", 20), new SolidBrush(Color.Red),
       new PointF(
         (-(CurrentTowerParams.Picture.Width / 2) + (ArrayPos.X + 1 - visibleStart.X) * Settings.ElemSize) * Scaling + Settings.DeltaX,
         (-(CurrentTowerParams.Picture.Height / 2) + (ArrayPos.Y + 1 - visibleStart.Y) * Settings.ElemSize) * Scaling + Settings.DeltaY));
 }
开发者ID:tupieurods,项目名称:tower-defense-csharp-opengl.gamelogic,代码行数:31,代码来源:Tower.cs

示例2: ShowTowerShopPage

 /// <summary>
 /// Shows the tower shop page.
 /// </summary>
 /// <param name="graphObject">Graphic render object</param>
 private void ShowTowerShopPage(IGraphic graphObject)
 {
   ShopPageAction((int i, int j, int offset, int xMouse, int yMouse) =>
   {
     graphObject.DrawImage(_towerIcons[(CurrentShopPage - 1) * (Settings.LinesInOnePage * Settings.MaxTowersInLine) + offset],
       BuildRectPage(i, j));
     if (TowerConfSelectedID == (CurrentShopPage - 1) * (Settings.LinesInOnePage * Settings.MaxTowersInLine) + offset)
       //Border line
       graphObject.DrawRectangle(new Pen(Color.Red, Settings.PenWidth * Scaling), BuildRectPage(i, j));
     return false;
   });
 }
开发者ID:tupieurods,项目名称:tower-defense-csharp-opengl.gamelogic,代码行数:16,代码来源:TowerShop.cs

示例3: ShowMonster

    /// <summary>
    /// Shows the monster.
    /// </summary>
    /// <param name="canva">The canva.</param>
    /// <param name="visibleStart">The visible map area start.</param>
    /// <param name="visibleFinish">The visible map area finish.</param>
    internal void ShowMonster(IGraphic canva, Point visibleStart, Point visibleFinish)
    {
      if (_currentBaseParams.Invisible)
        return;
      if (!InVisibleMapArea(visibleStart, visibleFinish))
        return;
      //Unit picture
      Bitmap tmp = _params[GetDirection, _movingPhase];
      //Real coords calculating
      int realX = Settings.DeltaX + (int)((_canvaPos.X - visibleStart.X * Settings.ElemSize) * Scaling);
      int realY = Settings.DeltaY + (int)((_canvaPos.Y - visibleStart.Y * Settings.ElemSize) * Scaling);
      canva.DrawImage(tmp, (int)(realX - (tmp.Width / 2.0) * Scaling), (int)(realY - (tmp.Height / 2.0) * Scaling), (int)(tmp.Width * Scaling), (int)(tmp.Height * Scaling));
      #region Effect Colors
      int r = 0;
      int g = 0;
      int b = 0;
      foreach (var effect in _effects)//Effects visualization
      {
        r += effect.EffectColor.R;
        g += effect.EffectColor.G;
        b += effect.EffectColor.B;
      }
      if (r != 0 || g != 0 || b != 0)
        canva.FillEllipse(new SolidBrush(Color.FromArgb((byte)r, (byte)g, (byte)b)), realX - 5 * Scaling, realY - 5 * Scaling, 10 * Scaling, 10 * Scaling);
      #endregion Effect Colors

      //HP bar showing

      int hpLineLength = (int)(Math.Round(_currentBaseParams.HealthPoints * 100.0 / _params.Base.HealthPoints) / 10.0);

      if (hpLineLength < 0)
        hpLineLength = 0;
      switch (GetDirection)
      {
        case MonsterDirection.Left:
        case MonsterDirection.Right:
          canva.DrawLine(Helpers.BlackPen, realX - 5 * Scaling, realY, realX + 5 * Scaling, realY);
          if (hpLineLength == 0)
            break;
          canva.DrawLine(Helpers.GreenPen, realX - 5 * Scaling, realY, realX + (-5 + hpLineLength) * Scaling, realY);
          break;
        case MonsterDirection.Up:
        case MonsterDirection.Down:
          canva.DrawLine(Helpers.BlackPen, realX, realY + 5 * Scaling, realX, realY - 5 * Scaling);
          if (hpLineLength == 0)
            break;
          canva.DrawLine(Helpers.GreenPen, realX, realY - 5 * Scaling, realX, realY + (-5 + hpLineLength) * Scaling);
          break;
      }
    }
开发者ID:tupieurods,项目名称:tower-defense-csharp-opengl.gamelogic,代码行数:56,代码来源:Monster.cs


注:本文中的IGraphic.DrawImage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。