Skip to content

Commit

Permalink
Merge pull request #1 from LernMoment/review-kommentare
Browse files Browse the repository at this point in the history
Meine Gedanken zu Art und Umfang von Kommentaren
  • Loading branch information
gustda authored Feb 7, 2018
2 parents 8cf544d + a67c530 commit 44bf044
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 20 deletions.
23 changes: 13 additions & 10 deletions Pacman-Uebungsserie/Pacman-Uebungsserie/Pacman.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace PacmanUebungsserie
class Pacman
{
/// <summary>
/// So groß ist die Bewegung, die Pacman bei einem Tastendruck macht
/// So viele Pixel bewegt sich Pacman bei einem Tastendruck
/// </summary>
public int Step { get { return 10; } }

Expand All @@ -20,27 +20,27 @@ class Pacman
public string ImagePath { get { return "Ressources/Pacman.png"; } }

/// <summary>
/// So groß ist acman
/// So viele Pixel ist Pacman Breit und Hoch
/// </summary>
public int Size { get { return 40; } }

/// <summary>
/// Dies ist die Position von Pacman in X-Richtung
/// Dies ist die aktuelle Position (in Pixeln) des Mittelpunktes von Pacman in X-Richtung
/// </summary>
public int X { get; private set; }

/// <summary>
/// Dies ist die Position von Pacman in Y-Richtung
/// Dies ist die aktuelle Position (in Pixeln) des Mittelpunktes von Pacman in Y-Richtung
/// </summary>
public int Y { get; private set; }

/// <summary>
/// Dies ist die Position der linken oberen Ecke von Pacman in X-Richtung
/// Dies ist die aktuelle Position der linken oberen Ecke von Pacman in X-Richtung
/// </summary>
public int LeftCornerX { get { return (int)(X - Size / 2); } }

/// <summary>
/// Dies ist die Position der linken oberen Ecke von Pacman in Y-Richtung
/// Dies ist die aktuelle Position der linken oberen Ecke von Pacman in Y-Richtung
/// </summary>
public int LeftCornerY { get { return (int)(Y - Size / 2); } }

Expand All @@ -56,34 +56,37 @@ public Pacman()
}

/// <summary>
/// Verarbeitet Tasteneingaben
/// Berechnet die neue Position von Pacman anhand eines Tastendrucks
/// </summary>
/// <param name="key">Die Taste die verarbeitet werden soll</param>
public void ProcessKey(Keys key)
public void MoveToNewPosition(Keys key)
{
// bei einem Tastendruck der Pfeiltasten soll eine Bewegung durchgeführt werden.
// Pacman bewegt sich durch drücken der Pfeiltasten.
switch (key)
{
case Keys.Down:
// damit Pacman nicht aus dem Spielfeld läuft, begrenzen wir den Aktionsradius
// Pacman darf nur nach unten gehen, wenn er nicht vom Spielfeld fällt!
if (Y + Step < 600 - Size / 2)
{
Y = Y + Step;
}
break;
case Keys.Up:
// Pacman darf nur nach oben gehen, wenn er nicht vom Spielfeld fällt!
if (Y - Step > 0 + Size / 2)
{
Y = Y - Step;
}
break;
case Keys.Left:
// Pacman darf nur nach links gehen, wenn er nicht vom Spielfeld fällt!
if (X - Step > 0 + Size / 2)
{
X = X - Step;
}
break;
case Keys.Right:
// Pacman darf nur nach rechts gehen, wenn er nicht vom Spielfeld fällt!
if (X + Step < 600 - Size / 2)
{
X = X + Step;
Expand Down
23 changes: 13 additions & 10 deletions Pacman-Uebungsserie/Pacman-Uebungsserie/PacmanController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,28 @@ namespace PacmanUebungsserie
{
class PacmanController
{
CsharpCanvas canvas;
private CsharpCanvas canvas;

// Dies ist der Pacman, mit dem wir spielen wollen
Pacman pacman;
private Pacman pacman;

/// <summary>
/// Erstellt eine neue Instanz des Pacmancontrollers
/// </summary>
/// <param name="_canvas">Canvas in den gezeichnet werden soll</param>
public PacmanController(CsharpCanvas _canvas)
{
// den CsharpCanvas an die lokale Variable übergeben
// Solange der PacmanController lebt wollen wir Zugriff auf den übergebenen CsharpCanvas
// haben. Darum wird eine Referenz im entsprechenden Attribut gespeichert.
canvas = _canvas;

// draw Event des CsharpCanvas abonieren und einen Eventhandler definieren
canvas.Draw += Canvas_Draw;
// definieren was passieren soll, wenn der CsharpCanvas seinen Inhalt neu zeichnen
// will. Hier wird die Methode als EventHandler an das Draw-Event gehängt.
canvas.Draw += DrawPacmanAtItsCurrentPosition;

// der CsharpCanvas muss noch initalisiert werden.
// wir wollen ein Spiel erstellen und dieses mit 30 Frames pro Sekunde abspielen
// Der CsharpCanvas wird als Spiel initialisiert (mit Punkte & Levelanzeige)
// wenn das Spielfeld 30 mal pro Sekunde gezeichnet wird, sollte ein flüssiges
// spielen möglich sein.
canvas.InitGame(30);

// erstelle einen Pacman
Expand All @@ -37,13 +40,13 @@ public PacmanController(CsharpCanvas _canvas)
/// <summary>
/// Draw Eventhandler, hier wird gezeichnet
/// </summary>
private void Canvas_Draw()
private void DrawPacmanAtItsCurrentPosition()
{
// überprüfen, ob eine Taste gedrückt wurde
// nur wenn eine Taste gedrückt wurde, wird Pacman bewegt!
if (canvas.LastPressedKey != System.Windows.Forms.Keys.None)
{
// Verabeiten des Tastendrucks in Pacman
pacman.ProcessKey(canvas.LastPressedKey);
pacman.MoveToNewPosition(canvas.LastPressedKey);
// Taste als verarbeitet melden
canvas.KeyHandled();
}
Expand Down

0 comments on commit 44bf044

Please sign in to comment.