本文整理汇总了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));
}
示例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;
});
}
示例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;
}
}