私は、IT部門の小さなディスプレイとなるPython 2.7.9とPygameの小さなスクリプトを作成しています。私たちの現在のステータス(イン・アウトなど)、学校でのプログラムに関する情報、ITスタッフのイメージなどを繰り返す短いビデオを再生するトグルスイッチがいくつかあるという考えがあります。 pygame.movieが機能するようにコンパイルされたPygameのバージョンです。なぜイベント入力時にPygame Movie Rewindを行うのですか
スクリプトのすべての部分は機能しますが、.mpgの最後まで来ると、ステータスが切り替わるかマウスを動かすなど、EVENTが再生されるまでムービーは再生されません。 movie.get_timeで変数を定義しようとしましたが、特定の時刻に巻き戻しを呼び出すようにしましたが、ムービーは巻き戻されません(現在コメントアウトされています)。イベントを必要とせずにリピート時にムービーを再生する方法はありますか?または、特定の時間が経過するとイベントをスプーフィングすることができますか?(pygame.movieのドキュメントは古く、ループ機能は機能しません)
ありがとうございました!
import pygame, sys, os, time, random
from pygame.locals import *
pygame.init()
windowSurface = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
pygame.display.set_caption("DA IT Welcome Sign")
pygame.font.get_default_font()
bg = pygame.image.load('da.jpg')
in_img = pygame.image.load('in.png')
out_img = pygame.image.load('out.png')
etc_img = pygame.image.load('etc.png')
present = in_img
done = False
img = 1
clock = pygame.time.Clock()
movie = pygame.movie.Movie('wallace.mpg')
movie_screen = pygame.Surface(movie.get_size()).convert()
playing = movie.get_busy()
movie.set_display(movie_screen)
length = movie.get_length()
currenttime = movie.get_time()
movie.play()
while not done:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
done = True
if event.type == pygame.QUIT:
movie.stop()
done = True
if event.type == pygame.KEYDOWN and event.key == pygame.K_1:
img = 1
if event.type == pygame.KEYDOWN and event.key == pygame.K_2:
img = 2
if event.type == pygame.KEYDOWN and event.key == pygame.K_3:
img = 3
if event.type == pygame.KEYDOWN and event.key == K_w:
pygame.display.set_mode((800, 600))
if event.type == pygame.KEYDOWN and event.key == K_f:
pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
if img == 1:
present = in_img
if img == 2:
present = out_img
if img == 3:
present = etc_img
if not(movie.get_busy()):
movie.rewind()
movie.play()
#movie.get_time()
#if currenttime == 25.0:
# movie.stop()
# movie.rewind()
# movie.play()
windowSurface.blit(bg, (0, 0))
windowSurface.blit(movie_screen,(550,175))
windowSurface.blit(present, (0,0))
pygame.display.flip()
ありがとうございました!問題が解決しました。私はときどき特定のpython/pygameがインデントの書式設定にどのようにあるのか忘れてしまいます。 – azaletel