Archiv verlassen und diese Seite im Standarddesign anzeigen : Movie Abspielen?
UltimateZeldaFan
22.02.2007, 15:59
Ich habe im netz gelesen, dass man .Avi`s und .wav datein als Vorspann und
als Movie im spiel einfühgen kann, weiß aber nicht wie.
Bitte um Hilfe.
Mit freundlichen Grüßen: UZF
.avi geht im XP nicht mehr ohne weiteres. Hat beim 2k auch keiner benutzt.
Dark Shisha
23.02.2007, 21:52
natürlich geht das hier ist der script (credits an soundspawn)
die videos müssen 640x480 groß sein snonst sind sie zu klein oder zu groß.
die movies müssen unter den ordner Movies sein.
das script über Main einfügen und scene_Movie nennen.
class Scene_Movie
def initialize(movie,length,exit_to_game=true)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
@counter = length*10
@exit_to_game = exit_to_game
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
Graphics.transition
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
@movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
@movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Screen::update
sleep(1)
Screen::update
sleep(1)
Screen::update
sleep(1)
end
@movie.call("play FILE",0,0,0)
@counter=10*@counter
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update if @counter%50==0
@message.call(@temp.to_i,11,1,0)
Input.update
if Input.trigger?(Input::B)
break
end
@counter = @counter - 1
if @counter <= 0
break
end
end
@movie.call("close FILE",0,0,0)
if @exit_to_game
$scene = Scene_Map.new
else
$scene = nil
end
Graphics.freeze
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Und damit kannst du es im spiel aktivieren
$scene = Scene_Movie.new("Movie name",Movie länge)
Beispiel:
$scene = Scene_Movie.new("intro",8 )
um es vor dem titelmenü erscheinen zu lassen diese script in Main einfügen
begin
$scene = Scene_Movie.new("intro", 8 ,false)
# Èéó¸·çó–™
Graphics.freeze
# ·üóªÖ¸§¯È (¿¤Èë;b) ’\
$scene = Scene_Title.new
end
man kann mehrere hinterereinander laufen lassen
ich weis aber nicht ob .wav funktioniert
die movies können mit der x taste abgebrochen werden
Wenn ich das Game mit Alt+Enter auf Fullscreen mache (vor dem Video), kommt
http://cherry1.ch.ohost.de/imgs/err1.bmp
Das sind die Zeilen
Screen::update
sleep(1)
Screen::update
sleep(1)
Screen::update
sleep(1)
offensichtlich findet RGSS "Screen" nicht...
Was soll ich tun? Ich will weder auf Videos noch auf Vollbild verzichten...
Dark Shisha
24.02.2007, 16:41
das video darf keinen codec haben.
und angeblich soll MPG und WMV laufen. hab ich aber noch nicht ausprobiert...
ich hab meinen Beitrag editiert...
Naja, es gibt auch kein Screen-Modul in der RGSS. Das Script ist entweder fehlerhaft oder unvollständig (überhaupt ergibt Screen::update für mich keinen Sinn, update ist ja offenbar eine Methode da klein geschrieben. Nur dann müsste es doch afair Screen.update heißen oO).
Hab mal gegoogelt und eine andere Version des Scripts gefunden, wo an dieser Stelle die Graphics.update aufgerufen wurde. Ich denke das ergibt schon mehr Sinn.
class Scene_Movie
def initialize(movie,length,exit_to_game=true)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
@counter = length*10
@exit_to_game = exit_to_game
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
Graphics.transition
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
@movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
@movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
@movie.call("play FILE",0,0,0)
@counter=10*@counter
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update if @counter%50==0
@message.call(@temp.to_i,11,1,0)
Input.update
if Input.trigger?(Input::B)
break
end
@counter = @counter - 1
if @counter <= 0
break
end
end
@movie.call("close FILE",0,0,0)
if @exit_to_game
$scene = Scene_Map.new
else
$scene = nil
end
Graphics.freeze
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.