Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Da hier meist die gleichen Leute reingucken wissen ja die meisten wie sehr ich mit dem Programmieren kämpfe. Also lasst uns bitte nicht an Details hängen bleiben, wie was besser wäre und überhaupt. Ich will erstmal nur den logischen Ablauf an sich hinbekommen.
Ich habe eine kleine Demo, eine Art Prototyp geschrieben, die das Prinzip der textbasierten Browsergames in ein Windows-Programm packt. Ich habe alles kommentiert und die Fragen direkt in den Quellcode gepackt. Wäre super, wenn ihr mir helfen könntet. Wie gesagt: Es geht hier erstmal darum, dass das Programm überhaupt erstmal tut was es soll. Optimieren kann man später.
[src=csharp]
// Startwerte setzen und Variablen deklarieren
int Gold = 100000;
int Silber = 100000;
int Bronze = 100000;
int Stufe = 1;
int Zeit = 0;
private void Form1_Load(object sender, EventArgs e)
{
// Timer für die Ressourcenproduktion aktivieren
timer1.Enabled = true;
// Intervall für die Ressourcenproduktion aktivieren (1 Sekunde)
timer1.Interval = 1000;
}
private void tickRessourcen(object sender, EventArgs e)
{
// Warum wird nur einmal hochgezählt und bei ++ jede Sekunde?
lblGold.Text = "Gold: " + Convert.ToString(Gold + 3);
lblSilber.Text = "Silber: " + Convert.ToString(Silber + 2);
lblBronze.Text = "Bronze: " + Convert.ToString(Bronze++);
}
private void cmdBauen_Click(object sender, EventArgs e)
{
// Prüfen, ob genug Ressourcen vorhanden sind
if (Gold < 5000 || Silber < 3000 || Bronze < 1000)
{
MessageBox.Show("Zu wenug Ressourcen");
}
else
{
// Timer für das Bauprojekt aktivieren
timer2.Enabled = true;
// Intervall für das Bauprojekt aktivieren
timer2.Interval = 500;
// Ressourcen abziehen;
Gold = Gold - 5000;
Silber = Silber - 3000;
Bronze = Bronze - 1000;
// Wie lasse ich den timer zückwärts auf 0 laufen?
lblZeit.Text = "Zeit: ";
}
}
private void tickBauen(object sender, EventArgs e)
{
// Warum wird Stufe erst nach dem zweiten Klick erhöht?
lblStufe.Text = "Stufe: " + Stufe++;
// Timer für das Bauprojekt wieder deaktivieren
timer2.Enabled = false;
}
[/src]
Anhang anzeigen 31217
Ich habe eine kleine Demo, eine Art Prototyp geschrieben, die das Prinzip der textbasierten Browsergames in ein Windows-Programm packt. Ich habe alles kommentiert und die Fragen direkt in den Quellcode gepackt. Wäre super, wenn ihr mir helfen könntet. Wie gesagt: Es geht hier erstmal darum, dass das Programm überhaupt erstmal tut was es soll. Optimieren kann man später.
[src=csharp]
// Startwerte setzen und Variablen deklarieren
int Gold = 100000;
int Silber = 100000;
int Bronze = 100000;
int Stufe = 1;
int Zeit = 0;
private void Form1_Load(object sender, EventArgs e)
{
// Timer für die Ressourcenproduktion aktivieren
timer1.Enabled = true;
// Intervall für die Ressourcenproduktion aktivieren (1 Sekunde)
timer1.Interval = 1000;
}
private void tickRessourcen(object sender, EventArgs e)
{
// Warum wird nur einmal hochgezählt und bei ++ jede Sekunde?
lblGold.Text = "Gold: " + Convert.ToString(Gold + 3);
lblSilber.Text = "Silber: " + Convert.ToString(Silber + 2);
lblBronze.Text = "Bronze: " + Convert.ToString(Bronze++);
}
private void cmdBauen_Click(object sender, EventArgs e)
{
// Prüfen, ob genug Ressourcen vorhanden sind
if (Gold < 5000 || Silber < 3000 || Bronze < 1000)
{
MessageBox.Show("Zu wenug Ressourcen");
}
else
{
// Timer für das Bauprojekt aktivieren
timer2.Enabled = true;
// Intervall für das Bauprojekt aktivieren
timer2.Interval = 500;
// Ressourcen abziehen;
Gold = Gold - 5000;
Silber = Silber - 3000;
Bronze = Bronze - 1000;
// Wie lasse ich den timer zückwärts auf 0 laufen?
lblZeit.Text = "Zeit: ";
}
}
private void tickBauen(object sender, EventArgs e)
{
// Warum wird Stufe erst nach dem zweiten Klick erhöht?
lblStufe.Text = "Stufe: " + Stufe++;
// Timer für das Bauprojekt wieder deaktivieren
timer2.Enabled = false;
}
[/src]
Anhang anzeigen 31217