Hallo Leute,
Ich bin kein Anwendungsentwickler, aber ich lerne C# in der Berufsschule und wollte mich mal an einem text-Spiel versuchen.
Mir wurde oft gesagt als 1. Projekt wäre das schon zu viel und ich solle mir etwas kleineres raus suchen, aber wie viele andere wollte ich das nicht hören und hartnäckig wie ich bin wollte ich auch wissen wie weit ich trotz der Warnungen komme.
Jetzt bin ich hier und das was ich mir vorgenommen habe funktioniert auch, aber um den Code zu verbessern fehlen mir Beispiele und Ideen, vermutlich auch Wissen.
Mein Projekt ist mit WIndows Forms realisiert worden. Folgendes Hintergrundwissen ist notwendig:
- Ich habe 2 Klassen: Player und Form1 (Form1 als Main-Methode in der auch der Ablauf des SPiels statt findet).
- Wie bei Form-Anwendungen üblich gibt es Labels und ProgressBars die die Statistiken des Spielers visuell zeigen. Die Oberfläche sieht so aus:
http://i.imgur.com/hWDvZeO.png
Die Buttons mit denen der Spieler interagieren wird sieht man dort nicht.
FOlgendes Problem besteht:
Um dem Spiele Leben ab zu ziehen sollte (soweit ich weiß) als guter Programmierer in der Player-Klasse eine Methode "TakeDamage" oder so stehen. Jetzt sieht mein (etwas Pseudo-)Code aber so aus:
|
C#-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public partial class Form1 : Form
{
private void Damage(int damage)
{
_player.curHP = _player.Damage(_player, damage);
richTextBox1.AppendText("\nYou took " + damage + " damage");
if(_player.curHP == 0)
{
PlayerDie();
}
lbCurHP.Text = _player.curHP.ToString();
hpBar.Value = _player.curHP;
}
}
public class Player
{
public int Damage(Player player, int damage)
{
this.damage = damage;
if(player.curHP > damage)
{
currentHP = player.curHP - damage;
}
else
{
currentHP = 0;
}
return currentHP;
}
}
|
Das ist doppelt gemoppelt, ein Teil ist in der Form1 (weil nur dort habe ich Zugriff auf die Form-Elemente) und ein anderer Teil ist in der Player-Klasse. Eigentlich sollte alles in die Player-Klasse, aber ich weiß nicht wie ich das umsetzen kann.
Es wäre toll wenn mir hier jemand eine Idee geben könnte, mein Wissen ist vermutlich zu begrenzt, es wäre toll wenn ihr mir keine 20 Fachbegriffe um die Ohren schmeißen könntet
Falls von Interesse hier ist auch der gesamte Code (die Form-Elemente fehlen):
https://pastebin.com/3krETNbs
Ich verstehe noch nicht viel von sauberem Programmieren, aber ich weiß jetzt schon wenn das nicht sauberer wird dann werde ich nicht lange Spaß daran haben, ich möchte es ja irgendwann auch ausbauen und erweitern.
Danke im vor raus
Tician