XNA游戏 - 播放视频作为起始屏幕

时间:2011-09-12 12:40:28

标签: c# xna screen

我想播放视频作为我的XNA游戏开始画面。游戏是3D游戏( XNA 3.1 )(基于着名的XNA赛车游戏 - http://exdream.com/XnaRacingGame/ )。我使用 IGameScreen 界面。我想用游戏开始播放视频( wmv 格式文件)。没有必要全屏播放视频。

请帮帮我。 谢谢。

1 个答案:

答案 0 :(得分:3)

创建一个在启动时添加到游戏中的新IGameScreen。当用户点击一个键或X秒后,X是游戏的长度时,将它转发到不同的IGameScreen。

作为GameScreen对象的成员,您需要VideoPlayer和视频成员。像这样......

VideoPlayer videoPlayer;
Video video;

在GameScreen LoadContent中,您需要加载视频,如果还没有,请创建您的VideoPlayer对象。像这样......

video = content.Load<Video>("yourvideoname");
videoPlayer = new VideoPlayer();

好的,现在在某些时候你会想要启动你的视频播放器。您可以在第一次进入Update方法时执行此操作。不要在每次更新电话时都这样做。

videoPlayer.Play(video)

每次调用Draw方法时,您都希望从最新帧的视频播放器中获取纹理,但前提是视频播放器正在播放。如果填充了纹理,请绘制它。您必须指定所需的目标矩形,或者您可以选择其他SpriteBatch.Draw重载之一。确保在代码中调用了SpriteBatch.Begin / End调用。

if(videoPlayer.State != MediaState.Stopped)
{
  Texture2D texture = videoPlayer.GetTexture();
  if(texture != null)
  {
    spriteBatch.Draw(texture, new Rectangle(0, 0, YOURWIDTH, YOURHEIGHT),
        Color.White);
  }
}

肯定会有一些改进,你可以通过代码来帮助垃圾收集器并使其更高效(比如不要每次都创建一个新的Rectangle),但这是显示视频的低位。