本文整理汇总了C#中IMap.GetEvent方法的典型用法代码示例。如果您正苦于以下问题:C# IMap.GetEvent方法的具体用法?C# IMap.GetEvent怎么用?C# IMap.GetEvent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMap
的用法示例。
在下文中一共展示了IMap.GetEvent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Update
public void Update(IMap map, float seconds)
{
_map=map;
_lastSpeed = _speed;
if (changed > 0)
changed--;
if (_moveVectorSet)
{
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;
if (seconds > 0.1f)
if (_speed.Y * seconds > 8)
_speed.Y = 8 / seconds;
_body.Update(seconds * 1000f);
for (int x = 0; x < _attachedAnimations.Count; x++)
{
if (!_attachedAnimations[x].Update(seconds * 1000f))
{
_attachedAnimations.RemoveAt(x);
x--;
}
}
if (_onGround && !flying && Math.Abs(_speed.X) > 0 && !wallCollision && (_aniControl.Run.GetFrameNum() == 3 || _aniControl.Run.GetFrameNum() == 0))
{
Vector2 pos = _position;
pos.Y += Rect.Height;
pos.X += Left ? Rect.Width : 0;
}
wallCollision = false;
TryMove(_speed * seconds, map);
if (!stunned)
_aniControl.Update(seconds * 1000, this);
if (wallCollision)
{
_speed.Y = 0;
}
#region Animation Handling
if (jump)
{
if (!_onGround && !flying)
{
jump = false;
}
}
/*
else if (_onGround && flying)
Land.Update(seconds * 1000);
else
Run.Update(seconds * 1000);
*/
if (_aniControl.Jump.GetFrameNum() == 5 && jump)
{
jump = false;
}
if (_aniControl.Land.GetFrameNum() == 4 && flying)
{
flying = false;
}
#endregion
EventObject obj = map.GetEvent(this);
if (obj != null)
obj.Event(this);
if (_targetExp > _exp)
{
_exp++;
if (_exp >= nextLevelExp)
{
int add = nextLevelExp - lastExp;
lastExp = _exp;
nextLevelExp += add + add / 3;
level++;
}
}
if (_onGround && flying && _aniControl.Land.GetFrameNum() == 0)
{
}
if (_onGround || wallCollision)
airstun = false;
if (stunTimeout <= 0 && !airstun)
stunned = false;
_invincibleTime -= seconds;
//.........这里部分代码省略.........