Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
在Python3中以特定分辨率播放pygame电影_Python_Python 3.x_Video_Pygame_Video Processing - Fatal编程技术网

在Python3中以特定分辨率播放pygame电影

在Python3中以特定分辨率播放pygame电影,python,python-3.x,video,pygame,video-processing,Python,Python 3.x,Video,Pygame,Video Processing,我目前正在pygame(Python 3)上制作一个游戏,我希望在开始时播放一个小电影介绍。我对pygame.movie模块有几个问题,类似问题的解决方案似乎不适合我。有没有一种简单的方法可以在预先存在的屏幕上播放MPG电影 我尝试了以下代码: import pygame pygame.init() movie = pygame.movie.Movie('intro.mpg') screen = pygame.display.set_mode(movie.get_size()) movie_s

我目前正在pygame(Python 3)上制作一个游戏,我希望在开始时播放一个小电影介绍。我对pygame.movie模块有几个问题,类似问题的解决方案似乎不适合我。有没有一种简单的方法可以在预先存在的屏幕上播放MPG电影

我尝试了以下代码:

import pygame

pygame.init()
movie = pygame.movie.Movie('intro.mpg')
screen = pygame.display.set_mode(movie.get_size())
movie_screen = pygame.Surface(movie.get_size()).convert()

movie.set_display(movie_screen)
movie.play()
但这让python崩溃了。当我试着

import pygame

FPS = 60

pygame.init()
clock = pygame.time.Clock()
movie = pygame.movie.Movie('intro.mpg')
screen = pygame.display.set_mode(movie.get_size())
movie_screen = pygame.Surface(movie.get_size()).convert()

movie.set_display(movie_screen)
movie.play()


playing = True
while playing:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            movie.stop()
            playing = False

    screen.blit(movie_screen,(0,0))
    pygame.display.update()
    clock.tick(FPS)

pygame.quit()
屏幕出现了,出于某种原因,屏幕上布满了绿色的方块。我做错了什么


第二,我的电影分辨率是480*360,我玩游戏的屏幕是640*480。我想让视频占据整个屏幕——有没有办法做到这一点?

您可以在表面和屏幕中央运行视频

pygame.init()

clock = pygame.time.Clock()
FPS = 20
appActive = True
movie = pygame.movie.Movie('movie.mpg')

#full screen display
mainDisplay = pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
offscreen = pygame.Surface(movie.get_size())
movie.set_display(offscreen)

center = offscreen.get_rect()
center.center = mainDisplay.get_rect().center

while appActive:
    mainDisplay.blit(offscreen, center)
    pygame.display.update()
    clock.tick(FPS)
你的代码看起来不错,我自己也试过了,效果不错。我注意到pygame在屏幕上渲染电影时非常模糊。如果屏幕尺寸不适合电影,那么它就会崩溃。到目前为止,你在控制电影大小方面运气好吗