Pong Remake - 0.96

    • Beta

    Es gibt 41 Antworten in diesem Thema. Der letzte Beitrag () ist von nafets3646.

      Update -> 0.90 BETA

      Neues Update! Massig viele Bugs behoben, Funktionen angepasst und verbessert. So sollte es nun viel besser funktionieren :). Für weitere Vorschläge bin ich offen.

      -> Ein Highscore wäre hier nicht sinnvoll. Daher ist der Vorschlag mit dem abgelehnt. Am Online Pong sind kleinere Ansätze, aber das ist viel Aufwand - muss ich noch überlegen.

      '*VISUELL
      ''Mouseblock und Restart Button entfernt, Ball Effekt wurde entfernt
      ''Neue Anreihung
      ''Neue Farbpalette
      ''Schläger verlässt die Form nicht mehr (ganz) (dank 10-Mal simpleren Methode als vorher)
      '' Mehrere Tooltips umgeschrieben und hinzugefügt, sowie Buttons umbenannt

      '*Fehlerbehebungen
      ''Fehler behoben, bei dem man beim Start manchmal nicht lenken konnte
      ''Fehler behoben, Maus bewegt sich nun syncron
      ''Fehler behoben, bei der, das Programm die Geschwindigkeit falsch berechnet hatte
      ''Fehler behoben, bei dem der Ball unendlich schnell werden konnte
      ''Fehler behoben, bei dem man mehrere Punkte auf einmal sammeln konnte
      ''Fehler behoben, Computer weicht den Ball nicht mehr aus
      ''Fehler behoben, Neues Spiel - kann nun eingesetzt werden
      ''Fehler behoben, "Zu erreichende Punktzahl" funktioniert jetzt ohne Absturz
      '' Sprung Bug sollte behoben sein
      ''Perfomance bleibt nun gleich und schwindet nicht im Spielverlauf
      ''Viele Behebung zu Abstürzen (unter anderem durch die Ball Effekt funktioniert)

      **Funktionen
      'Neues Spiel eingefügt - statt Restart
      'Farbe ändert sich nun von mehreren Objekten passend
      'Schwierigkeitsgrad einstellbar
      'Ball wird immer schneller (deutlich besser als vorher) - bis zu einer Obergrenze (neu)
      'Viele Abfragen wurden entfernt (da überflüssig)
      'Testweise wurde der Computer Gegner verstärkt - vielleicht zu stark/schwach
      'TESTFUNKTION: Gewinnchance wird "berechnet", in Testphase!
      'Viele Funktionen wurden angepasst, damit sie flüssiger laufen
      Wah, hat sich leider ein dummer Fehler eingeschlichen. Hab die Datei während des (kurzen) hochladens verschoben. Tut mir leid. Ein dummer Fehler meinerseits. Außerdem habe ich die CPU Anforderung umgestellt auf "all". Sollte jetzt auch unter Windows XP reibungslos funktionieren.

      Danke für eure Aufmerksamkeit - ohne euch hätte ich es wohl nie gemerkt. Läuft nicht immer so wie man sich das zu Hause vorstellt^^

      rylox schrieb:

      Hat jemand irgendwelche Ideen die ihn gefallen würden? (Power UPs, Spezieller Modus oder Erfolge die gespeichert werden zum Beispiel?)


      Bevor Du neue Funktionen einbaust, würde ich raten, die vorhandenen Routinen nochmals zu überarbeiten.
      Der Ball Flimmert vor sich hin und mein Paddle stockt zeitweise.
      Das geht doch alles viel flüssiger - auch mit GDI+.

      LG,
      Bruno
      Hey danke,

      werde das mir jetzt ansehen und diesen Post dann editieren :) habe eventuell irgendwo einen Fehler gemacht.

      Edit: Habe es einmal geupdatet. Ich arbeite aber noch am flackern das trotz "DoubleBuffered" nur schwer zu mildern ist. Habe es auch mit anderen Controls und GDI+ Varianten versucht. Ich denke es liegt an der Kollision und Ballveränderung die eingebaut habe (Der Ball bewegt sich je nach Position, Abstand und Geschwindigkeit jede Sekunde anders damit man nie die selben Positionen nach dem Schlagabtausch hat)

      mfg rylox

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „rylox“ ()

      Da kann ich dir nur eins empfehlen: fixer Timestep und variable FPS.
      Lass die Physik/Kollision etc. 20 mal pro Sekunde aktualisieren und interpoliere beim Zeichnen zwischen den Werten.
      Dafür brauchst du allerdings das GDI (was du bei der aktuellen Version nicht hast). Ändere deinen Game-Loop entsprechend ab, dass du das erreichst, oder nutze gleich andere Technik: DirectX, mag zwar overpowered sein, ist aber nicht unbedingt die schlechteste Variante.
      Zum Thema Timestep: Fix Your Timestep.

      Übrigens:

      Quellcode

      1. Anwendung: Pong Remake 0.96.exe
      2. Frameworkversion: v4.0.30319
      3. Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
      4. Ausnahmeinformationen: System.InvalidOperationException
      5. Stapel:
      6. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
      7. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[])
      8. bei Pong_Remake_0._96.My.MyApplication.Main(System.String[])

      Würdest du die .pdb und die Microsoft VisualBasic PowerPacks (welche übrigens unglaublich schlecht sind) mitliefern, könnte die Anwendung auch ausgeführt werden. Teste deine Anwendung niemals auf deinem eigenen Dev-Rechner, denn dort wird sie immer funktionieren! Setz dir ne VM mit Windows 7 auf und teste darin, alles andere ist Müll (Alternative: einen zweiten, sauberen Rechner als Testmaschine nutzen).
      Ergibt Sinn, hatte es vorher mit was anderen gemacht - hab es durch die eigenen Controls aber im Update ersetzt. Habe es schon umgeändert und den Fehler bemerkt.

      Schaue mir das mit den Timestep auch noch komplett an, bin dir jedenfalls sehr dankbar. Bisher hatte ich eigentlich ne Abneigung zu GDI+, weil Kollisionsabfragen bei mir nie wirklich funktionieren. Da ich ein Element zeichne im Paint Event der Form, wie greife ich auf das gezeichnete Element zu muss ich die Abfrage dann im Paint Event starten oder muss ich extra Variabeln für die Position anlegen?

      Würde es helfen die Controls selber einzufügen? Und Panels zu nutzen, ansonsten wäre ich sehr dankbar über Hilfe mit GDI+ (wozu ich schon Threads angesehen habe aber zu faul war Kollisionen abzufragen - habe auch lange nicht mehr mit den programmieren beschäftigt - habe es nun mäßig wieder angefangen).
      Physik/Kollision/die Spielmechanik eines Spieles muss zwingend ohne eine grafische Darstellung funktionieren können!
      Wenn du die Zeichen-Routinen rauslässt, müssen die Abfragen trotzdem funktionieren - auch wenn es keinen Sinn macht.
      Stell dir eine ordentliche Struktur des Spieles zusammen. Welche Objekte brauchst du? Wie sollen die Objekte interagieren? Was passiert wenn ein bestimmtes Ereignis eintritt?
      Ein Spiel schreibt man nicht in 3 Stunden in einer einzigen Klasse. Mach dir über die Aufbau Gedanken.
      Im Paint-Event zeichnest du nur den Ist-Zustand (ggf. mit Interpolation) an einem bestimmten Update.
      Beispiel:
      Update -> Zeichnen (0) -> Zeichnen (0.25) -> Zeichnen (0.5) -> Zeichnen (0.75) -> Update
      Die Zeichenschritte könntest du genausogut entfernen, sodass nurnoch aktualisiert wird.
      Softwareentwicklung, insbesondere Spieleentwicklung, ist nicht einfach und bedarf einiger Einarbeitungszeit.

      Zu deinem Nachtrag: Control gehören in kein Spiel zur grafischen Darstellung. Als UI/Menü OK, aber nicht als Darstellung.