Balter Martin Kuschny Daniel Tscholl Manuel 1
Agenda Was ist KuBaTsch? MVC Model View Netzwerk Kollisionssystem Rundensystem 2
Was ist Kuschny Balter Tscholl 4 Spieler Ping Pong Netzwerk fähig Rundenbasierend 3
Ziele von MVC – Pattern Netzwerkfähiges Spiel – 2 bis 4 Spieler Dedicated Server Rundenbasierend 4
Model View Controller 5
Übersichtsdiagramm TODO: Klassendiagramm des Models 6
Model TODO: Klassendiagramm des Models 7
Auszug - Model 8
9
Client View 10
Controller zur View 11
Agenda Was ist KuBaTsch? MVC Model View Netzwerk Kollisionssystem Rundensystem 12
Netzwerkkommunikation (1) 13
Netzwerkkommunikation (2) 14
Infrastruktur - Server 15
Infrastruktur - Client 16
Kollisionsregeln Player Paddle HitArea PaddleReflectRule HitAreaReflectRule Player Paddle HitArea PaddleReflectRule HitAreaReflectRule Ball PlayTickRule IncreaseSpeedRule IUpdatable/ICollidable ICollidable 17
Kollisionsregeln Player Paddle HitArea PaddleReflectRule HitAreaReflectRule Player Paddle HitArea PaddleReflectRule HitAreaReflectRule Ball PlayTickRule IncreaseSpeedRule Kollidierende Elemente 18
Kollisionsregeln Player Paddle HitArea PaddleReflectRule HitAreaReflectRule Player Paddle HitArea PaddleReflectRule HitAreaReflectRule Ball PlayTickRule IncreaseSpeedRule Kollidierende Elemente Angewendete Regeln 19
Wichtige Regeln PaddleReflectRule (Wenn Paddle mit Ball kollidiert) – Reflektiert den Ball mit entsprechendem Winkel – Färbt den Ball neu PlayerHitAreaReflectRule (Wenn Ball mit HitArea kollidiert) – Reflektiert den Ball – Zieht dem Spieler Leben ab IncreaseBallSpeedRule – Beschleunigt den Ball 20
Kollision Zwei Phasen – Rechteckkollision – Polygonkollision Linienüberschneidung von zwei Polygone = Kollision Polygone haben verschiedene Kollisionspunkte -> Basis für Linienüberschneidung
Rechteckkollisionsprüfung
Polygonkollisionsprüfung Nur wenn Rechtecke kollidieren
Polygonkollisionsprüfung
Rundensystem 27
OnePlayerSurvivingRule canStartRound – Sind mehr als 1 Spieler auf dem Server? startRound – Setzte bei allen Spielern die Leben auf 100% – Setzte einen Ball auf das Spielfeld isRoundFinished – Ist nur noch 1 lebender Spieler auf dem Spielfeld finishRound – Entferne alle Bälle aus dem Spielfeld – Überlebender Spieler bekommt einen Punkt 28
Programmpräsentation Live und in Farbe 29
Fragerunde 30