2016-07-16 2 views
0

Я пытаюсь нарисовать пулю в Моногаме с высокой скоростью. Когда я рисую его примерно на 400 пикселей/сек «Который довольно медленный», но около 1500 пикселей в секунду, он начинает «дублировать» или «ореовить» текстуру. Я довольно новичок в Monogame и не имею много знаний о Graphics.Быстро движущийся объект оставляет «призрак» след

Как я могу перемещать объект с высокой скоростью без создания эффекта «призрак»?

SpriteBatch Начало:

sb.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.LinearWrap, DepthStencilState.None, RasterizerState.CullNone, 
      null, Global.Camera.GetViewTransformationMatrix()); 

Нарисовать Метод:

public override void Draw(SpriteBatch sb) 
{ 
     Vector2 origin = new Vector2(source.Width/2, source.Height/2); 
     Rectangle tRect = Bounds; 

     sb.Draw(
      texture: TDTGame.GameAssets.Texture, 
      destinationRectangle: tRect, 
      sourceRectangle: source, 
      rotation: MathHelper.ToRadians(Rotation - 270f), //Set rotation to forward of the texture. 
      color: Color.White, 
      origin: origin, 
      layerDepth: 1f 
      ); 
} 

Edit:

Youtube Ссылка: here

движение пули:

float traveledDistance; 
    public override void Update(GameTime gt) 
    { 
     float deltaTime = (float)gt.ElapsedGameTime.TotalSeconds; 
     traveledDistance += Speed * deltaTime; 

     Position += Forward * Speed * deltaTime; 

     if (traveledDistance > Range) 
     { 
      Destroy(); 
     } 
    } 
+0

Вы можете опубликовать снимок экрана или видеоролик о ореоле? Возможно ли, что ореолы - это иллюзия. – craftworkgames

+0

@craftworkgames Это похоже на иллюзию, поскольку, когда я записывался с более низкой частотой кадров, вы не видите след. Также захват его в неподвижном изображении «prntscrn» не показывал след. Любите MonoGame. Расширенная библиотека просто хочу сказать, что продолжайте работать! –

+0

В таком случае, возможно, поиграйте с цветом фона и посмотрите, можете ли вы от него избавиться, или посмотрите на другие игры с быстро движущимися объектами и посмотрите, делают ли они что-нибудь интересное. – craftworkgames

ответ

0

Это, скорее всего, артефакт низкой частоты кадров. Чем выше частота кадров, тем меньше ваш мозг регистрирует тот факт, что «движение» пули просто рисует одно и то же изображение в нескольких и меняющихся местах с течением времени :)

0

Как указано, следы, вероятно, находятся в ваших глазах, а не на экране. Если вы хотите преодолеть этот эффект, вы можете пропустить некоторые кадры (возможно, полностью удалите пулю с экрана или, по крайней мере, пропустите движение).

Смежные вопросы