Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Video in einem Game (https://www.delphipraxis.net/57911-video-einem-game.html)

Weazy 28. Nov 2005 16:37


Video in einem Game
 
Hi,

Ich programmiere gerade ein kleines ogl spiel. Beim Start soll ein kleines Intro-Video kommen. Wie kann ich ein 800 x 600 grosses Video in fullscreen abspielen, so dass das Video auf den ganzen bildschirm vergössert wird?

vielen Dank

hibbert 28. Nov 2005 17:35

Re: Video in einem Game
 
hi,
mach doch einfach Formblatt mit der größe 800x600 und packe da dein Intro rein, maximiere das Formblatt und stelle den Borderstyle auf bsnone dann nur noch die Bildschirmauflösung ändern und tadaa...

hibbert

Garfield 28. Nov 2005 18:07

Re: Video in einem Game
 
Zitat:

Zitat von hibbert
... dann nur noch die Bildschirmauflösung ändern und tadaa...

Wenn das Form maximiert wird, muss doch die Bildschirmauflösung nicht mehr geändert werden!?

ichbins 28. Nov 2005 18:30

Re: Video in einem Game
 
natürlich:

wenn der User 1024x768 Pixel hat, und das Form maximiert wird, hat es ja 1024x768 Pixel, aber du brauchst 800x600.

Bildschirmauflösung ändern geht damit:

Delphi-Quellcode:
function ChangeResolution(XResolution, YResolution, Depth: DWORD): BOOL;
var
  DevMode: TDeviceMode;
  i: Integer;
begin
  Result := False;
  i     := 0;
  while EnumDisplaySettings(nil, i, DevMode) do
    with DevMode do
    begin
      if (dmPelsWidth = XResolution) and
        (dmPelsHeight = YResolution) and
        (dmBitsPerPel = Depth) then          //CDS_UPDATEREGISTRY wenn Auflösung systemweit geändert wird
        if ChangeDisplaySettings(DevMode, [CDS_FULLSCREEN]) =
          DISP_CHANGE_SUCCESSFUL then
        begin
          Result := True;
          SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0);
          Break;
        end;
      Inc(i);
    end;
end;

Weazy 28. Nov 2005 20:55

Re: Video in einem Game
 
Vielen Dank, das kalppt scho ganz gut!

Mein Problem ist jetzt nur, dass ich eine cutscene mit video in mein spiel einbauen will. Wenn das Spiel also im Modus 1024x768 läuft, und ich dann ein Video mit 800 x 600 abspiele muss ich die ganze Bildschirmauflösung ändern, was einen nervigen unterbruch des SPiels bedeutet. Gibt es nicht noch eine andere Möglichkeit???

hibbert 28. Nov 2005 21:07

Re: Video in einem Game
 
ein paar Lösungsvorschläge:

• strecke das Video auf der Form
• mache das Video in 1024x768
• zentriere das Video, dann hast du aber ein Rahmen um das Video
• mach das ganze Spiel auf 800x600

hibbert

gordon freeman 28. Nov 2005 21:33

Re: Video in einem Game
 
Allgemein möchte ich zu bedenken geben, dass es eventuell einen User für dein Spiel gibt, dem es technisch nicht möglich ist, die Bildschirmauflösung zu ändern, weil er halt nur 'nen Bildschirm hat, der für 800*600 konzipiert ist. Eventuell solltest du also sowohl das Spiel als auch die vorkommenden Videos variabel für 800*600, 1024*768 und 1200*800 halten.

mfg, Martin

Daniel G 28. Nov 2005 21:43

Re: Video in einem Game
 
Ansonsten wäre noch ein anderer Weg denkbar:

Nutze für dein Intro / Cutscene doch einfach deine InGame - Grafik!

Weazy 29. Nov 2005 14:43

Re: Video in einem Game
 
Das ist leider fast unmöglich, denn so ne Grafik wie im Video bringt fast kein PC in realtime (3ds Max mit afterburn und Dreamscape!)

Gibt es denn keine möglichkeit, die videoausgabe des tmediaplayers zu stretchen?

Daniel G 29. Nov 2005 19:01

Re: Video in einem Game
 
Zitat:

Zitat von Weazy
Das ist leider fast unmöglich, denn so ne Grafik wie im Video bringt fast kein PC in realtime (3ds Max mit afterburn und Dreamscape!)

Gibt es denn keine möglichkeit, die videoausgabe des tmediaplayers zu stretchen?

Mal im Ernst:

Es handelt sich um ein einfaches Spiel. Muss es denn wirklich ein High - Performance Video sein? Ich würde soetwas wie Realtime viel ansprechender finden...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz