本文整理汇总了C#中IMap.DoPlayerEvents方法的典型用法代码示例。如果您正苦于以下问题:C# IMap.DoPlayerEvents方法的具体用法?C# IMap.DoPlayerEvents怎么用?C# IMap.DoPlayerEvents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMap
的用法示例。
在下文中一共展示了IMap.DoPlayerEvents方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Update
public virtual void Update(IMap map, float seconds)
{
if (changed > 0)
changed--;
_map = map;
_lastlastSpeed = _lastSpeed;
_lastSpeed = Speed;
if (_moveSet)
{
Move(_moveVector.X, _moveVector.Y, true);
}
if (!wallCollision) _speed.Y += gravity * seconds;
if (_speed.X < 0) Left = true;
else if (_speed.X > 0) Left = false;
//Making sure we don't glitch through walls
//_lastlastSpeed = _lastSpeed;
//_lastPosition = _position;
_body.Update(seconds * 1000f);
wallCollision = false;
TryMove(_speed * seconds);
if (wallCollision)
_speed.Y = 0;
if (!map.MapBoundaries.Contains((int)MidPosition.X, (int)MidPosition.Y))
{
GetDamage(10);
}
_map.DoPlayerEvents(this);
_invincibleTime -= seconds;
_speed.X = 0;
attackCooldown -= seconds;
if (attackerTimeout > -1)
{
attackerTimeout -= seconds;
if (attackerTimeout < 0)
attackerID = -1;
}
else if (attackerTimeout < -1)
{
attackerTimeout = 0;
if (_hp < _maxhp)
{
//this.GetDamage(-1);
}
}
if (_onGround || wallCollision)
airstun = false;
if (stunTimeout <= 0 && !airstun)
stunned = false;
stunTimeout -= seconds;
//Make sure that hasStoppedMoving is only set for one frame
//when this guy stops moving
if (wasMoving > 0)
{
hasStoppedMoving = false;
wasMoving--;
}
else if (wasMoving == 0)
{
hasStoppedMoving = true;
_moveVector = Vector2.Zero;
wasMoving--;
}
else
hasStoppedMoving = false;
}