本文整理汇总了C#中GameEntity.PositionShift方法的典型用法代码示例。如果您正苦于以下问题:C# GameEntity.PositionShift方法的具体用法?C# GameEntity.PositionShift怎么用?C# GameEntity.PositionShift使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameEntity
的用法示例。
在下文中一共展示了GameEntity.PositionShift方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Control
public override bool Control( GameEntity control, TimeSpan gameTime, Microsoft.Xna.Framework.Input.KeyboardState keyState )
{
if ( control is Projectile )
{
control.Angle = ( float )control.Variables[ angleString ];
}
float speed = ( float )control.Variables[ speedString ];
float currentdist = ( float )control.Variables[ currentdistString ];
float ang = ( float )control.Variables[ angleString ];
speed *= speedFactor;
currentdist += speed;
float dist = Vector2.Distance( position, control.Position );
if ( dist <= currentdist )
{
control.Move( speed, ang );
control.Position = control.Bound( control.Position );
dist += speed;
}
if ( control is Tank && ( ( Tank )control ).Controller != null )
{
TankController t = ( TankController )( ( Tank )control ).Controller.Clone();
( ( Tank )control ).RemoveTankController();
TankControllerPickup p = new TankControllerPickup( t, 3000 );
float d = maxdist;
p.Position = control.Bound( control.PositionShift( d, ang ) );
p.Initialize( Game, gameTime );
p.Variables[ speedString ] = speed;
p.Variables[ currentdistString ] = currentdist + d;
p.Variables[ angleString ] = ang;
p.AppendController( this );
Game.QueueEntity( p );
}
control.Variables[ speedString ] = speed;
control.Variables[ currentdistString ] = currentdist;
if ( currentdist >= maxdist - epsilon || speed <= epsilon )
{
control.Variables.Remove( angleString );
control.Variables.Remove( speedString );
control.Variables.Remove( currentdistString );
control.RemoveController( this );
}
return true;
}