gpt4 book ai didi

python - 在Python 3中使用pygame以特定分辨率播放电影

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:04 25 4
gpt4 key购买 nike

我目前正在 pygame (Python 3) 上制作一个游戏,我希望在开始时播放一个小电影介绍。我在 pygame.movi​​e 模块上遇到了几个问题,类似问题的解决方案似乎对我不起作用。有没有一种简单的方法可以在现有屏幕上播放 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()

出现了一个屏幕,并且由于某种原因充满了绿色方 block 。我做错了什么?

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

最佳答案

您可以在 Surface 和 Screen 中心运行视频

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 在屏幕上渲染电影时非常模糊。如果屏幕尺寸不适合电影,那么它就会崩溃。到目前为止,您在控制电影尺寸方面运气好吗?

关于python - 在Python 3中使用pygame以特定分辨率播放电影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34936847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com