Delphi-PRAXiS

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...

Weazy 29. Nov 2005 21:11

Re: Video in einem Game
 
So einfach ist es nun auch wieder nicht :) ! Immerhin gibt es schon LOD-Terrain, funktionierende Physik, 8 Waffen, Partikel-effekte, Autos, Special-effects, mehrere Ansichten, CG-Shadereffekte und sogar einige Sounds. Das ganze sieht auf einem schnelleren PC auch gar nicht so schlecht aus...(erwartet aber nicht zu viel!)

Daniel G 29. Nov 2005 21:16

Re: Video in einem Game
 
Zitat:

Zitat von Weazy
So einfach ist es nun auch wieder nicht :) ! Immerhin gibt es schon LOD-Terrain, funktionierende Physik, 8 Waffen, Partikel-effekte, Autos, Special-effects, mehrere Ansichten, CG-Shadereffekte und sogar einige Sounds. Das ganze sieht auf einem schnelleren PC auch gar nicht so schlecht aus...(erwartet aber nicht zu viel!)

:shock:

Worum gehts in dem Spiel eigentlich?

=> Wenn du schon funktionierende Physik und alles hast, dann ist das doch Perfekt für In - Game Szenen, oder?

Tubos 29. Nov 2005 21:25

Re: Video in einem Game
 
Zitat:

Wenn du schon funktionierende Physik und alles hast, dann ist das doch Perfekt für In - Game Szenen, oder?
Es gibt viele Dinge die in 3D-Programmen einfach zu machen sind, zum selber programmieren aber einen unglaublichen Aufwand darstellen. Von daher ist es schon begründet wenn er Videos verwenden will.

@Weazy: Ich kenne mich mit OpenGL gar nicht und mit DirectX ein bisschen aus.
DirectX bietet direkt Möglichkeiten, Videos abzuspielen.
Ich weiß dass OpenGL an sich keine solchen Zusatzfunktionen hat, aber es gibt bestimmt eine Bibliothek o.ä. für das Abspielen von Videos.

Daniel G 29. Nov 2005 21:30

Re: Video in einem Game
 
Zitat:

Zitat von Tubos
Zitat:

Wenn du schon funktionierende Physik und alles hast, dann ist das doch Perfekt für In - Game Szenen, oder?
Es gibt viele Dinge die in 3D-Programmen einfach zu machen sind, zum selber programmieren aber einen unglaublichen Aufwand darstellen. Von daher ist es schon begründet wenn er Videos verwenden will.

Jepp, weiß ich, arbeite selbst mit einem Animationsprogramm für schulische Zwecke. Ich weiß ja nicht, wie groß das Spiel vom Download her ist/sein wird, aber ich bin der Meinung, das vorgerenderte Videos die Größe unnötig aufpusten.

Weazy 29. Nov 2005 22:44

Re: Video in einem Game
 
So gross sind die Videos mit DivX nun auch wieder nicht, ausserdem macht es die Story extrem viel spannender!

Weazy 29. Nov 2005 22:51

Re: Video in einem Game
 
Zudem: Jedes kommerziele Spiel hat doch eine gewisse Grösse (dieses wird aber Freeware!). Momentan arbeite ich an den Videos, der Story und der Engine, ein Freund arbeitet an Soundeffekten und ein anderer an den 3d Szenen und Figuren. Da es in einem halben Jahr an die Matura geht wird es nun aber etwas langsamer voran gehen...

Oxmyx 29. Nov 2005 23:01

Re: Video in einem Game
 
Wenn du mit DirectX arbeitest, sind dir mit DirectShow alle Werkzeuge an die Hand gegeben, um Mediendateien abzuspielen. Konkreten Code zur Videowiedergabe kann ich dir nicht geben, aber die SDK wird dir da sicher helfen.

-NIP- 30. Nov 2005 19:39

Re: Video in einem Game
 
[OT] Nur nebenbei, euer "kleines Spiel" scheint schon etwas umfangreicher zu sein.
Wenn es möglich ist, fänd ich es cool, wenn ihr mal eine Vorabversion hier posten würdet. :D [/OT]

Weazy 30. Nov 2005 20:33

Re: Video in einem Game
 
Keine Sorge, eine Vorabversion werdet ihr schon sehen, bei der ihr auch eigene Wünsche unterbringen könnt. Da ich wie gesagt gerade etwas im Klausuren Stress bin könnte es aber etwas dauern.... :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.

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