JumpAndRun-2d (Gelegenheitsspiel)

    • Beta

    Es gibt 114 Antworten in diesem Thema. Der letzte Beitrag () ist von J-F.

      Sorry aber !

      1. Das Spiel ist ?-- Wollen wir Ehrlich sein - Unspielbar :cursing:

      2. Bekomme ich nach 10 Sekunden nen Krampf in der Hand :wacko:

      3 Was ist das Ziel dieses Spiels ?? ?(

      Ich möchte Deine Arbeit in keinster Weise herabwürdigen aber ich denke da ist noch viel zu machen ;)

      MFG netlogger :)
      :D Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben. (Michael Anton) :D

      MFG Jörg ;)

      Muss jeder vermeintliche Programmierer ne Signatur haben ??
      Wegen dem Flackern, schreib mal diesen Code ins Form-Load:

      VB.NET-Quellcode

      1. SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True)
      2. UpdateStyles()

      Und dein Screenshot lässt irgendwie darauf schließen, dass du nicht das Graphics des Paint-Events verwendest.

      Artentus schrieb:


      Wegen dem Flackern, schreib mal diesen Code ins Form-Load:

      SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.OptimizedDoubleBuffer Or ControlStyles.ResizeRedraw Or ControlStyles.UserPaint, True)
      UpdateStyles()

      Und dein Screenshot lässt irgendwie darauf schließen, dass du nicht das Graphics des Paint-Events verwendest.
      Also das PaintEreigniss benutze ich nicht...


      Hab grad das Paint-Ereigniss mal getestet,es flackerte mehr...
      Und auch die Objekte,diese bewegten sich unwillug wirr durch die Form...

      Auch mit Deinem Code flackert es...

      Mfg.eniking1998
      Hast du gleichzeitig auch noch von außerhalb des Paint-Ereignisses gezeichnet? Ich habe schon sehr oft mit GDI gearbeitet, also glaub mir bitte wenn ich sage, dass die einzige funktionierende Möglichkeit das Paint-Event ist (ich bin auch nicht der einzige, der das sagt).
      Hi,ja soll ich dann statt

      Dim test As Graphics im Paint-Ereigniss

      e.DrawImage benutzen?

      !!!

      Also das Paint-Ereigniss kommt wohl auch am gelegensten...


      Ich animiere zurzeit im Timer ... .- ...

      Ich überarbeite es nachher auf das Paint-Ereigniss,was die Animation betrifft...


      Nur muss ich wissen ob das was bringt...

      Mfg.eniking1998

      EDIT:

      e.Graphics.DrawImage

      Hmm...

      Das gleiche Ergebniss...
      Du verwendest im Paint-Event immer e.Graphics, wo anders verwendest du gar kein Graphics, sonder arbeitest nur mit den Daten. Das heißt in deinem Timer bewegst du die ganzen Spielobjekte und führst auch sonst alle Berechnungen durch. Dann rufst du mittels Invalidate das Paint-Event auf, wo du dann auf Basis der vorher gespeicherten Daten deine Zeichnungen durchführst.
      Ich hätte auch noch ein paar Vorschläge:
      - Speicher die Tasten beim MouseDown in Bool's, ob eine Taste gedrückt ist (MouseUp setzt wieder auf False)
      - Dann nimm die Labels raus, das ist nicht besonders vorteilhaft, wenn du noch weitere Controls auf der Form hast...
      - Warum machst du nicht anstatt myrectangle1, myrectangle2, myrectangle3, etc. ein Array? myrectangle(5) oder so, das wäre doch viel geschickter :)
      - Anstatt so viele Timer zu nehmen, pack das alles doch lieber in einen einzigen ;)
      Hoffe das sind hilfreiche Tipps :)
      LG
      Valerian
      Hey,

      Hab jetzt das zusammenbekommen:

      VB.NET-Quellcode

      1. Public Class Form1
      2. Dim rectangle1 As Rectangle
      3. Dim newPOS As Integer = 800
      4. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      5. End Sub
      6. Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
      7. DoubleBuffered = True
      8. rectangle1 = New Rectangle(x:=newPOS, y:=500, Width:=30, Height:=30)
      9. e.Graphics.DrawRectangle(Pens.Black, rectangle1)
      10. End Sub
      11. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
      12. newPOS -= 8
      13. Me.Invalidate()
      14. End Sub
      15. End Class


      Und muss sagen,Juhu...

      Es flackert gar nicht!
      Dazu auch noch mehr FPS...

      Ich werde es in den nächsten Tagen dann übertragen...

      Danke für den Tipp...

      Mfg.eniking1998
      nicht nur, dass es nicht wirklich funktioniert, das was funktioniert ist auch noch mega ranzig gemacht. ne zweite form die das hintergrundbild via transparency channel anzeigt? ernsthaft??!!

      - Anstatt so viele Timer zu nehmen, pack das alles doch lieber in einen einzigen ;)


      anstatt so viele timer zu nehmen, nimm keinen einzigen sondern nutze einen oderntlichen gameloop
      SOOOO!!!

      Nun ist die neuste Version released...

      Fast 120 FPS mehr und kein flackern!

      Nun werden die Animationen im Paint-Ereigniss gemalt...


      Ich wünsch Euch mit JumpAndRun2d Version 0,2 viel Spaß!

      Download im ersten Post!

      Mfg.eniking1998
      Hast du dir die Tipps eigentlich mal genauer angeguckt? Lass das mit mehreren Forms sein, das ist wirklich schwachsinnig und nicht im Sinne des Erfinders. Guck dir bitte mal genauer die Funktionen von GDI+ an, und erstell dein Spiel dann nochmal komplett neu. Mit objektorientierter Programmierung, ohne Controls, und mit dem sinnvollen Einsatz von GDI.
      Außerdem: abgesehen davon, dass die Umsetzung schlecht ist (s.o.) lässt es sich auch absolut nicht spielen, da die "Person" maximal 30px voran kommt, und dann immer wieder zurückfliegt.
      Ich benutze keine Controls.

      Ja zur zweiten Form:

      Wenn ich das Hintergrundbild zur ersten Form hinzufüge,laggt es...

      Und der Sinn ist es auszuweichen...

      Naja ich muss dann ein Video hochladen,wie man es spielt...


      Mfg.eniking1998