Sound (TFMX) geloest: MIT-lizenzierter Player eingebunden, Titelmusik in Intro-Sequenz
This commit is contained in:
@@ -45,6 +45,7 @@ import time
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
from kellogg_formats import DATContainer, load_pcc
|
||||
import tfmx_audio
|
||||
|
||||
import pygame
|
||||
|
||||
@@ -214,6 +215,18 @@ def run_once(screen, clock, assets):
|
||||
return True
|
||||
|
||||
# 5) Kellogg's-Logo + "praesentiert"-Palettenfade
|
||||
# Titelmusik (TITEL.TFX/.SAM) setzt hier ein und laeuft geloopt weiter
|
||||
# bis zum Ende der Sequenz (Original hat vermutlich durchgehende
|
||||
# Titelmusik ueber Logo+Titelbild+Karte -- noch nicht per Referenz-
|
||||
# Sichtung bestaetigt, aber plausibelste Annahme fuers erste v1).
|
||||
try:
|
||||
if pygame.mixer.get_init():
|
||||
titel_wav = tfmx_audio.render_wav(assets.container, 'TITEL', seconds=60)
|
||||
pygame.mixer.music.load(titel_wav)
|
||||
pygame.mixer.music.play(-1)
|
||||
except Exception as exc:
|
||||
print(f'[intro_sequence] Titelmusik konnte nicht geladen werden: {exc}', file=sys.stderr)
|
||||
|
||||
kw, kh, kidx, kpal = assets.pcc('KELLOGGS')
|
||||
|
||||
def show_kelloggs(t):
|
||||
@@ -260,7 +273,14 @@ def run_once(screen, clock, assets):
|
||||
|
||||
def main():
|
||||
once = '--once' in sys.argv
|
||||
pygame.mixer.pre_init(44100, -16, 2, 512)
|
||||
pygame.init()
|
||||
try:
|
||||
pygame.mixer.init()
|
||||
except pygame.error as exc:
|
||||
# Kein Audio-Device vorhanden (z.B. headless VM/Container ohne
|
||||
# Soundkarte) -- Sequenz laeuft stumm weiter statt abzustuerzen.
|
||||
print(f'[intro_sequence] Audio nicht verfuegbar, laeuft stumm: {exc}', file=sys.stderr)
|
||||
screen = pygame.display.set_mode((WINDOW_W, WINDOW_H))
|
||||
pygame.display.set_caption("Tony & Friends in Kellogg's Land -- Intro (Remake)")
|
||||
clock = pygame.time.Clock()
|
||||
@@ -271,6 +291,8 @@ def main():
|
||||
while not quit_requested and not once:
|
||||
quit_requested = run_once(screen, clock, assets)
|
||||
|
||||
if pygame.mixer.get_init():
|
||||
pygame.mixer.music.stop()
|
||||
pygame.quit()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user