Upload
emlin-arant
View
215
Download
1
Embed Size (px)
Citation preview
1
Balter MartinKuschny DanielTscholl Manuel
2
Agenda
• Was ist KuBaTsch?• MVC• Model• View• Netzwerk• Kollisionssystem• Rundensystem
3
Was ist
• Kuschny Balter Tscholl• 4 Spieler Ping Pong• Netzwerk fähig• Rundenbasierend
4
Ziele von
• MVC – Pattern• Netzwerkfähiges Spiel– 2 bis 4 Spieler
• Dedicated Server• Rundenbasierend
5
Model View Controller
GameClient
Model
View
Controller
Messages
Network
Model
View
Controller
Network
GameServer
6
Übersichtsdiagramm
• TODO: Klassendiagramm des Models
7
Model
• TODO: Klassendiagramm des Models
8
Auszug - Model
9
10
Client View class v iew
GameView{leaf}
«interface»INotifiableView
JoinServ erView KeySettingsView
JFrameMainForm
MenuView MouseSettingsView
NotGameView
PlayOnlineView SettingsViewStartNewServerView
KuBaTschPaneBloodPanelViewController
11
Controller zur View
12
Agenda
• Was ist KuBaTsch?• MVC• Model• View• Netzwerk• Kollisionssystem• Rundensystem
13
Netzwerkkommunikation (1)
class message
ConnectAsPlayerMessage
Serializable
«interface»INetworkMessage
PaddleMov edMessage Serv erInfoMessage SetUniqueIdMessage UpdateGameStateMessage
14
Netzwerkkommunikation (2)
15
Infrastruktur - Server
16
Infrastruktur - Client
17
Kollisionsregeln
PlayerPaddle
HitArea
PaddleReflectRule
HitAreaReflectRule
PlayerPaddle
HitArea
PaddleReflectRule
HitAreaReflectRule
BallPlayTickRule
IncreaseSpeedRule
IUpdatable/ICollidable ICollidable
18
Kollisionsregeln
PlayerPaddle
HitArea
PaddleReflectRule
HitAreaReflectRule
PlayerPaddle
HitArea
PaddleReflectRule
HitAreaReflectRule
BallPlayTickRule
IncreaseSpeedRule
Kollidierende Elemente
19
Kollisionsregeln
PlayerPaddle
HitArea
PaddleReflectRule
HitAreaReflectRule
PlayerPaddle
HitArea
PaddleReflectRule
HitAreaReflectRule
BallPlayTickRule
IncreaseSpeedRule
Kollidierende Elemente Angewendete Regeln
20
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
Kollision
• Zwei Phasen– Rechteckkollision– Polygonkollision
• Linienüberschneidung von zwei Polygone = Kollision
• Polygone haben verschiedene Kollisionspunkte -> Basis für Linienüberschneidung
Rechteckkollisionsprüfung
Keine Rechteck Kollision Rechteck Kollision jedoch keine Polygonkollision
Polygonkollisionsprüfung
• Nur wenn Rechtecke kollidieren
Keine Polygonkollision Polygonkollision
Polygonkollisionsprüfung
Polygonkollision
Polygonkollisionsprüfung
Polygonkollision
Polygonkollisionsprüfung
Polygonkollision
27
Rundensystem
28
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
29
Programmpräsentation
Live und in Farbe
30
Fragerunde