2011-02-10 2 views
0

У меня есть приложение, которое воспроизводит видео и рисует видео на экране в движущейся позиции. Когда я запускаю приложение, видео перемещается по экрану во время воспроизведения. Вот мой метод Draw ...Как рисовать видеокадры на экране постоянно с помощью XNA?

protected override void Draw(GameTime gameTime) 
    { 
     Texture2D videoTexture = null; 

     if (player.State != MediaState.Stopped) 
      videoTexture = player.GetTexture(); 

     if (videoTexture != null) 
     { 
      spriteBatch.Begin(); 
      spriteBatch.Draw(
        videoTexture, 
        new Rectangle(x++, 0, 400, 300), /* Where X is a class member */ 
        Color.White); 
      spriteBatch.End(); 
     } 

     base.Draw(gameTime); 
    } 

видео перемещается по горизонтали ACROS экрана. Это не совсем так, как я ожидал, так как у меня нет строк кода, которые очищают экран. Мой вопрос: почему он не оставляет след?

Кроме того, как я могу заставить его оставить след?

+1

(Для тех, кто придет сюда, у этого вопроса есть несколько ответов на http: // gamedev. stackexchange.com/questions/8369/how-do-i-draw-video-frames-onto-the-screen-permanently-using-xna) –

ответ

1

Я думаю, что видео перемещается горизонтально, потому что в новом Rectangle (объявление u имеет «x ++» и увеличивается по чертежам, зацикливает позицию на x os на прямоугольнике, чтобы сделать следы позади или не чистить previus рисует u нужно реализовать обратный буфер, который выводит цели, сделать копию буфера предиума и снова нарисовать его. , что я бы попробовал.

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