Video Loop unbemerkbar machen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Video Loop unbemerkbar machen

    Hallo Leute,

    ich arbeite zurzeit an einem Spiel, welches ähnlich wie ein Browserspiel ist, jedoch wesentlich komplexer und animierter ist.
    Hierzu möchte ich sowohl Controls als auch GDI + benutzen.
    Momentan stehe ich jedoch vor einem Problem, ich möchte Loop videos als animation von beispielsweise
    einem Ozean oder sowas darstellen. D.h. das Video soll sich wiederholen, dies ist an sich kein Problem.
    Vielmehr stört mich die tatsache, dass beim Wiederholen des Videos kurz beispielsweise der Mediaplay "schwarz" wird, und dann
    erst wieder das Video abspielt.
    Dies möchte ich unterbinden, sodass es wie eine "richtige" Animation abläuft und für den Benutzer unbemerkt bleibt.

    Ich bendanke mich jetzte schonmal :D

    MfG Trunk
    Hi
    sowas macht man wenn dann schon per GDI oder gleich mit XNA. Einfach eine Stopwatch deklarieren, die die vergangene Zeit mittrackt und ein entsprechendes Bild zeichnen oder generieren. Wenn du ein Array von Bitmaps nimmst (gibt auch andere Möglichkeiten):

    VB.NET-Quellcode

    1. Public Class BitmapElement
    2. Inherits RenderableElement
    3. Private _frames() As Bitmap
    4. Private _fps As Integer
    5. Private _manager As GameManager
    6. Private _bounds As Rectangle
    7. Public Sub New(ByVal manager As GameManager, ByVal frames() As Bitmap, ByVal fps As Integer)
    8. _manager = manager
    9. _frames = frames
    10. _fps = fps
    11. End Sub
    12. Public ReadOnly Property Manager As GameManager
    13. Get
    14. Return _manager
    15. End Get
    16. End Property
    17. Public Property Bounds As Rectangle
    18. Get
    19. Return _bounds
    20. End Get
    21. Set(ByVal value As Rectangle)
    22. _bounds = value
    23. End Set
    24. End Property
    25. Public Overrides Sub Draw(ByVal surface As Graphics)
    26. 'GameManager.TicksElapsed gebe die vergangene Zeit in Ticks an (also z.B. StopWatch.Elapsed.Ticks)
    27. surface.DrawImage(_frames(fps * GameManager.TicksElapsed \ TimeSpan.TicksPerSecond), Bounds)
    28. End Sub
    29. End Class

    oder ähnlich.

    Gruß
    ~blaze~

    Trunk schrieb:


    Momentan stehe ich jedoch vor einem Problem, ich möchte Loop videos als animation von beispielsweise
    einem Ozean oder sowas darstellen. D.h. das Video soll sich wiederholen, dies ist an sich kein Problem.


    Du möchtest mit einem Mediaplayer-Control für ein Spiel eine Wassertexture anzeigen? Bist du noch ganz bei trost?
    So hallo Leute,

    erstmal danke für die Vorschläge.

    und @ J-F Naja, nur im "Menu" also Hintergund, ist mir schon klar, dass es an sich nicht sinnvol ist: ein Spiel mit Controls
    aber ich fand einfach keine bessere alternative, höchstens einzelne bilder die sich dann wiederholen.
    In Spielen verwendet man einfach keine Controls. Keine Pictureboxen und auch sonst nix...
    Für die einfachen Spiele kann man von mir aus noch GDI+ verwenden. Sobald du aber Videos und den ganzen Kram willst, wirste wohl auf nen Framework zurück greifen.
    In dem Fall wäre das einfachste garantiert XNA. Ist einfach und leicht zu verstehen bzw. auch schnell zum coden. Basiert aber trotzdem immerhin auf DX9.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.