Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XNA游戏-播放视频作为起始屏幕_C#_Xna_Screen - Fatal编程技术网

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

C# XNA游戏-播放视频作为起始屏幕,c#,xna,screen,C#,Xna,Screen,我想在XNA游戏开始屏幕上播放视频。该游戏是一款3D游戏(XNA 3.1)(基于著名的XNA赛车游戏-)。我使用IGameScreen界面。我想在游戏开始时播放视频(wmv格式文件)。不需要全屏播放视频 请帮帮我。 多谢各位 制作一个新的iGaMesscreen,在启动时添加到游戏中。当用户点击某个键或在X秒后(X是游戏长度)将其转发到不同的iGames屏幕 作为GameScreen对象的成员,您将需要一个和视频成员。就像这样 VideoPlayer videoPlayer; Video vid

我想在XNA游戏开始屏幕上播放视频。该游戏是一款3D游戏(XNA 3.1)(基于著名的XNA赛车游戏-)。我使用IGameScreen界面。我想在游戏开始时播放视频(wmv格式文件)。不需要全屏播放视频

请帮帮我。
多谢各位

制作一个新的iGaMesscreen,在启动时添加到游戏中。当用户点击某个键或在X秒后(X是游戏长度)将其转发到不同的iGames屏幕

作为GameScreen对象的成员,您将需要一个和视频成员。就像这样

VideoPlayer videoPlayer;
Video video;
video = content.Load<Video>("yourvideoname");
videoPlayer = new VideoPlayer();
在GameScreen LoadContent中,您需要加载视频,如果尚未加载,请创建VideoPlayer对象。就像这样

VideoPlayer videoPlayer;
Video video;
video = content.Load<Video>("yourvideoname");
videoPlayer = new VideoPlayer();
每次调用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);
  }
}

当然,您可以在代码方面做一些改进来帮助垃圾收集器并提高其性能(比如不要每次都创建一个新的矩形),但这是显示视频的最低要求。

当然,如果您能够完成整个游戏的开发,显示视频应该是一项简单的任务?dmttk,你能把你的iGamesScreen界面的代码贴出来吗?非常感谢你的回答。但我已经试过了。但它与iGamesScreen界面不兼容。在我的iGamesScreen界面中,有一种方法称为“渲染”。因此,我不能使用常规的重写方法(如LoadContent、Draw等)。当我使用这些方法时,出现了一个错误(“没有找到合适的方法来重写”)。因为我在视频播放课上使用了iGamesScreen接口。请给我一个解决方案。@Hexxagonal不是值类型吗?如果是这样,它不会对GC产生任何性能影响。但不确定-如果它是引用类型,我会非常惊讶。它是。如你所见,“结构”。嗯。。。我从未意识到。谢谢斯科特/马特。