Balter Martin Kuschny Daniel Tscholl Manuel 1. Agenda Was ist KuBaTsch? MVC Model View Netzwerk...

Post on 06-Apr-2016

215 views 1 download

Transcript of Balter Martin Kuschny Daniel Tscholl Manuel 1. Agenda Was ist KuBaTsch? MVC Model View Netzwerk...

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