本文整理汇总了C#中Ui.Add方法的典型用法代码示例。如果您正苦于以下问题:C# Ui.Add方法的具体用法?C# Ui.Add怎么用?C# Ui.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ui
的用法示例。
在下文中一共展示了Ui.Add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Update
public void Update(Control control, Camera camera, Player player, NpcPackage npcs, Ui.FloatingTextCollection floatingText, ref Map map)
{
#region Initialize Weapons
if (player.Inventory.Quickbar.UsingItem.Type == "useweapon")
{
ItemUse use = player.Inventory.Quickbar.UsingItem;
Weapon weapon = GetWeaponById(int.Parse(use.Value));
if (weapon.Type.Name == "Sword" && !player.Inventory.Quickbar.IsUsingItem)
{
LiveWeapons.Add(new LiveSword(GetWeaponById(player.Inventory.Quickbar.UsingItem.IntValue),new Vector2(player.Movement.Area.Center.X, player.Movement.Area.Center.Y - 5), player.Movement.Direction));
player.Inventory.Quickbar.IsUsingItem = true;
}
if (weapon.Type.Name == "Arrow")
{
if(control.currentMouse.LeftButton == ButtonState.Pressed){
if(!player.Inventory.Quickbar.IsUsingItem) {
player.Inventory.Quickbar.IsUsingItem = true;
use.Charge = 10f;
} else {
use.Charge += 0.1f;
}
} else {
LiveProjectile liveWeapon = new LiveProjectile(Weapons[2], new Vector2(player.Movement.Area.Center.X, player.Movement.Area.Center.Y), (float)use.Charge, control, camera);
use.Charge = 0;
LiveWeapons.Add(liveWeapon);
player.Inventory.Quickbar.IsUsingItem = false;
Player = player;
}
}
}
#endregion
#region Update weapons
for ( int i = 0; i < LiveWeapons.Count; i++)
{
if (LiveWeapons[i].Weapon.Type.Name == "Sword")
{
LiveSword weapon = LiveWeapons[i];
weapon.Rotation += LiveWeapons[i].Speed;
LiveWeapons[i].Location += player.Movement.Moved;
if ((LiveWeapons[i].SwingEnd > 0 && LiveWeapons[i].Rotation > LiveWeapons[i].SwingEnd) || (LiveWeapons[i].SwingEnd < 0 && LiveWeapons[i].Rotation < LiveWeapons[i].SwingEnd))
{
LiveWeapons.RemoveAt(i);
player.Inventory.Quickbar.IsUsingItem = false;
}
} else if(LiveWeapons[i].Weapon.Type.Name == "Arrow")
{
LiveProjectile weapon = LiveWeapons[i];
if (weapon.Movement.Velocity != Vector2.Zero)
{
weapon.Movement.Update(map);
}
else
{
weapon.TimeToLive -= 1;
if (weapon.TimeToLive <= 0) { LiveWeapons.RemoveAt(i); }
}
}
}
#endregion
#region Check for weapon collisions
// Npc Collisions
for (int w = 0; w < LiveWeapons.Count; w++)
{
var weapon = LiveWeapons[w];
for (int i = 0; i < npcs.ActiveNpcs.Count; i++)
{
if (weapon.Weapon.Type.Name == "Sword")
{
LiveSword sword = weapon;
if (weapon.currentLocation.Intersects(npcs.ActiveNpcs[i].Movement.Area))
{
if (npcs.Damage(npcs.ActiveNpcs[i], 10, weapon.Location))
{
floatingText.Add("10", weapon.Location);
}
}
}
else if(weapon.Weapon.Type.Name == "Arrow" && weapon.Movement.Velocity != Vector2.Zero)
{
LiveProjectile projectile = weapon;
if (projectile.Movement.Area.Intersects(npcs.ActiveNpcs[i].Movement.Area))
{
if (npcs.Damage(npcs.ActiveNpcs[i], 10, weapon.Location))
{
floatingText.Add("10", new Vector2(projectile.Movement.Area.Center.X, projectile.Movement.Area.Center.Y));
LiveWeapons.RemoveAt(w);
}
}
}
//.........这里部分代码省略.........