Movie als Hintergrund!

Anfängerfragen zum Programmieren mit PureBasic.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Movie als Hintergrund!

Beitrag von D4uS1 »

Viel von uns kennen bestimmt Battlefield 2. In dem Menu läuft im Hintergrund ein Video. Genauso wollte ich es auch machen. Hab das Video wiedergeben lassen, die Buttons darüber geladen und schließlich alles mit flipbuffers()
beendet. Doch wenn ich nun das Programm starte dann bekomme ich das videio ungefähr jeden 2. Frame zu sehen, mit Streifen, Flimmern, usw. woran kann das liegen?

Beispielcode

Code: Alles auswählen


Repeat
ExamineKeyboard()
 
 PlayMovie(Menu, ScreenID())
 DisplayTransparentSprite(BUtton1, 0, 150)
 DisplayTransparentSprite(...)
...
...

FlipBuffers()

If Keyboardpushed(1)
  Beenden = 1
endif

Until Beenden = 1
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

RenderMovieFrame(#Movie, SpriteID)
Windows 10 Pro, 64-Bit / Outtakes | Derek
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

hab ich auch gemacht, hab aber immernoch die gleichen fehler,oder muss man für jedes bild, also auch die die über dem video stehen,diese zeile eintippen?
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Quelltext bitte!
Windows 10 Pro, 64-Bit / Outtakes | Derek
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

der ist zu lang. Aber ich habe das ganze auch mal ohne sprites, einfach auf einem bildschrim als test versucht. Es hat nicht geklappt!
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

hier ist ein video mit dem fehler.
http://cod2-obstclan.de/PBVideofehler.wmv

hier ist der code zu dem test.

Code: Alles auswählen

InitSprite()
InitKeyboard()
InitMovie()

OpenScreen(1024, 768, 16, "Test")

LoadMovie(0, "Sounds/menu.wmv")

Repeat
ExamineKeyboard()

If MoviePlayed = 0
PlayMovie(0, ScreenID())
MoviePlayed = 1
EndIf



FlipBuffers()
Until KeyboardPushed(1)


Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

kann sein dass der bug noch nicht gefixt wurde, kannst ja fred daran errinern, falls es wirklich so ist: http://www.purebasic.fr/english/viewtopic.php?t=17878

ansonsten als workaround:

Code: Alles auswählen

#Width = 1024
#Height = 768
#Depth = 16

If InitSprite() And InitMovie() And InitKeyboard() 
  
  File.s = OpenFileRequester("", "", "*.*", 0) 
  If File And LoadMovie(0, File) And OpenScreen(#Width, #Height, #Depth, "Test") 
    
    If CreateSprite(0, #Width, #Height) 
      
      PlayMovie(0, #PB_Movie_Rendered) 
      
      Repeat 
        Delay(10) 
        
        RenderMovieFrame(0, SpriteID(0)) 
        DisplaySprite(0, 0, 0) 
        FlipBuffers(2) 
        
        ExamineKeyboard() 
      Until KeyboardPushed(#PB_Key_Escape) 
      
    EndIf 
    
  EndIf 
  
EndIf
c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Uhmm, wo ist die Stelle wo du RenderMovieFrame() verwendest?
Windows 10 Pro, 64-Bit / Outtakes | Derek
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

RenderMovieFrame hab ich in meinem originalcode, das was ich hier geschickt habe ist der test mit dem ich festgestellt habe das der fehler nicht an meinem code liegt. Ausserdem muss man RendermovieFrame nur einsetzen um ein Video mit Sprites zu rendern, ohne Sprites bracuht man das doch nicht, oder?
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

St@ndFurz hat geschrieben:RenderMovieFrame hab ich in meinem originalcode, das was ich hier geschickt habe ist der test mit dem ich festgestellt habe das der fehler nicht an meinem code liegt. Ausserdem muss man RendermovieFrame nur einsetzen um ein Video mit Sprites zu rendern, ohne Sprites bracuht man das doch nicht, oder?
Ich fasse noch mal kurz zusammen:

- Du willst ein Movie auf einem Screen abspielen
- Beim Abspielen gibst es Darstellungsprobleme
- Die Darstellungsprobleme ergeben sich durch die Tatsache das das Abspielen in einem Screen nicht von PB unterstützt wird (kein Bug)
- Ich habe dir zu RenderMovieFrame geraten weil es damit (jedenfalls bei mir) keine Probleme gibt + diverse nette Effkete wie z.B. Transparenz
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten