GDI+ Animationen innerhalb eines Spieles

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Gelöschter Benutzer.

    GDI+ Animationen innerhalb eines Spieles

    Hey all,
    Ich weiß nciht, ob das hier das richtige Forum ist -> Wenn nicht, dann sry. :love:
    Ich habe ein ganz normales (Kurz-)Spiel mit GDI+ erstellt und alles funktioniert soweit.
    ABER:
    Wenn man jetzt etwas erreicht, z.B. eine Münze einsammelt, dann soll diese Münze anfangen zu wackeln. Aber das ist schwer in eine normale Update-funktion zu packen und (bewegte) Gifs kann man mit GDI+ auch nicht anzeigen.
    ALSO:
    Wie macht man Kurzanimationen während einem Spiel?
    Bitte um Hilfe :thumbup: :love:
    Valerian
    Wenn man jetzt etwas erreicht, z.B. eine Münze einsammelt, dann soll diese Münze anfangen zu wackeln. Aber das ist schwer in eine normale Update-funktion zu packen und (bewegte) Gifs kann man mit GDI+ auch nicht anzeigen.

    Geht natürlich...
    msdn.microsoft.com/en-us/libra…ge.selectactiveframe.aspx
    Diese Methode benötigst du dafür, genaueres sollte dazu dann noch zu hauf zu finden sein...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    ok, danke schonmal für die Antworten, aber ich kapiere irgentwie nicht, was SelectActiveFrame tun soll.
    Ich habe zumindest schon mal kapiert, dass man dadurch ein Bildabschnitt einer Bilderfolge anzeigen kann, oder liege ich da falsch?
    und ich glaube ich sollte dann einen Integer mitlaufen lassen der mir dann das Entsprechende Bild mit SelectActivFrame liefert?
    Bitte um Hilfe :S ?( :love:
    Valerian :whistling:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim animation As New Bitmap("C:\...")
    3. Public Sub New()
    4. InitializeComponent()
    5. If ImageAnimator.CanAnimate(animation) Then
    6. ImageAnimator.Animate(animation, AddressOf OnNextFrame)
    7. End If
    8. End Sub
    9. Private Sub OnNextFrame(ByVal sender As Object, ByVal e As EventArgs)
    10. Me.Invalidate()
    11. End Sub
    12. Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    13. With e.Graphics
    14. .DrawImage(animation, New Point(20, 20))
    15. ImageAnimator.UpdateFrames(animation)
    16. End With
    17. End Sub
    18. End Class
    UpdateFrames() musst du dann nur während der Animation anwenden.
    Oder StopAnimate() nutzen.
    damn den hab ich schon wieder vergessen, das hatte schonmal jemand geschrieben und ich habs noch nicht gekannt...xD

    Naja selber machen macht mehr Spaß :P
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Danke!
    Jetzt ist das Bild schonmal richtig, aber wenn ich jetzt die münze anwachsen lassen will??
    eigentlich hatte ich nämlich an sowas wie die baum-wachs-effekte in Bud gedacht.
    Aber eure Antworten haben mir schon sehr geholfen! Danke :thumbup:
    Valerian