Hallo Leute,
ich habe mir mittlerweile diverse unterschiedliche (tlw. auch Video-) Tutorials angeschaut, zum Teil auch nur bis zur Hälfte. Dennoch ist mir noch nicht abschliessend klar, wie man sich die Struktur der Klassen, Methoden etc. am besten vorstellen kann und so scheint auch mein Problem, das ich hier
beschreibe, begründet zu sein. Ich möchte gerne ein simples Pferderenn bzw -wettspiel programmieren, das ich vor Jahren mal in Basic umgesetzt habe. Nun habe ich dafür eine public-Klasse PFERDE erstellt, in welcher dann die 8 verschiedenen Renner ihren Namen, ihre Nummer (1-8), ihr Alter und (per Zufall) eine Stärke bekommen. Später soll dann die Stärke Einfluss auf den Zufallsfaktor haben, der je "Runde" das Pferd um 1-10 Pixel vorwärts bringt. Das Pferd, das zuerst bei 500px angekommen ist, gewinnt.
Nun habe ich das Rennen (noch ohne Berücksichtigung der Stärke) sozusagen im Hintergrund schon
fertig und getestet. Jetzt möchte ich das ganze natürlich auch grafisch ausgeben und dafür ein JFrame verwenden auf denen jedes Pferd (erst einmal) als Rechteck dargestellt wird. Alle 8 Pferde sollen auf Bahnen untereinander von links nach rechts laufen. Das soweit zum Programm bisher.
Das Fenster wird auch schon geöffnet und es gibt auch schon eine kleine Klasse namens PferdSprite, die (bisher nur) ein Rechteck je Pferd erstellen und dann um die entsprechenden Anzahl Pixel je "Runde" vorwärts bringen soll. Nur funktioniert es nicht, das Objekt PferdSprite (im Code ganz unten) so einzubinden, wie ich es mir vorstelle.
Übrigens habe ich der Übersichtlichkeit halber wiederholte Codeteile (für die Pferde 2-8) raus genommen, da es hier darum geht, dass schon der erste Aufruf meiner PferdSprite-Klasse zum Fehler führt (NetBeans sagt: "cannot find Symbol / Symbol: Class PferdSprite / Location: class Pferde) und vermutlich der Fehler darin zu suchen ist, wo bzw. wie ich die Klasse erzeugt habe. Aber ich habe keine andere Möglichkeit gefunden.
Hier der (abgespeckte) Code:
Würde mich sehr freuen, wenn Ihr mir bei der Fehlersuche helfen könntet und mir dabei vielleicht etwas zum Verständnis helfen könntet.
Viele Grüße,
Stefan
ich habe mir mittlerweile diverse unterschiedliche (tlw. auch Video-) Tutorials angeschaut, zum Teil auch nur bis zur Hälfte. Dennoch ist mir noch nicht abschliessend klar, wie man sich die Struktur der Klassen, Methoden etc. am besten vorstellen kann und so scheint auch mein Problem, das ich hier
beschreibe, begründet zu sein. Ich möchte gerne ein simples Pferderenn bzw -wettspiel programmieren, das ich vor Jahren mal in Basic umgesetzt habe. Nun habe ich dafür eine public-Klasse PFERDE erstellt, in welcher dann die 8 verschiedenen Renner ihren Namen, ihre Nummer (1-8), ihr Alter und (per Zufall) eine Stärke bekommen. Später soll dann die Stärke Einfluss auf den Zufallsfaktor haben, der je "Runde" das Pferd um 1-10 Pixel vorwärts bringt. Das Pferd, das zuerst bei 500px angekommen ist, gewinnt.
Nun habe ich das Rennen (noch ohne Berücksichtigung der Stärke) sozusagen im Hintergrund schon
fertig und getestet. Jetzt möchte ich das ganze natürlich auch grafisch ausgeben und dafür ein JFrame verwenden auf denen jedes Pferd (erst einmal) als Rechteck dargestellt wird. Alle 8 Pferde sollen auf Bahnen untereinander von links nach rechts laufen. Das soweit zum Programm bisher.
Das Fenster wird auch schon geöffnet und es gibt auch schon eine kleine Klasse namens PferdSprite, die (bisher nur) ein Rechteck je Pferd erstellen und dann um die entsprechenden Anzahl Pixel je "Runde" vorwärts bringen soll. Nur funktioniert es nicht, das Objekt PferdSprite (im Code ganz unten) so einzubinden, wie ich es mir vorstelle.
Übrigens habe ich der Übersichtlichkeit halber wiederholte Codeteile (für die Pferde 2-8) raus genommen, da es hier darum geht, dass schon der erste Aufruf meiner PferdSprite-Klasse zum Fehler führt (NetBeans sagt: "cannot find Symbol / Symbol: Class PferdSprite / Location: class Pferde) und vermutlich der Fehler darin zu suchen ist, wo bzw. wie ich die Klasse erzeugt habe. Aber ich habe keine andere Möglichkeit gefunden.
Hier der (abgespeckte) Code:
Java:
import java.awt.*;
import javax.swing.*;
public class Pferde
{
public static void main(String[] args)
{
C_Pferde Pferd1 = new C_Pferde ("Flocke",1,11,(int)(Math.random()*20+1));
PferdSprite PS1 = new PferdSprite ("Flocke",0, 20);
int Ziel_erreicht = 0;
String Gewinner = "Keiner";
do
{
StreckePferd1 = StreckePferd1+((int)(Math.random()*10+1));
if (StreckePferd1 > Ziel_erreicht)
{
Ziel_erreicht=StreckePferd1;
Gewinner = Pferd1.p_name;
}
} while (Ziel_erreicht < 500);
System.out.println("Der Gewinner ist " + Gewinner + " mit " + Ziel_erreicht + "Schritten");
PaintClass pc = new PaintClass();
pc.setBackground(Color.yellow);
pc.setTitle("Das Rennen beginnt!!");
pc.setSize(1600,600);
pc.setVisible(true);
}
}
class C_Pferde
{
String p_name;
int p_nummer;
int p_alter;
int p_staerke;
C_Pferde (String name_p, int nummer_p, int alter_p, int staerke_p)
{
p_name = name_p;
p_nummer = nummer_p;
p_alter = alter_p;
p_staerke = staerke_p;
}
}
class PaintClass extends JFrame
{
public PaintClass()
{
super();
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.red);
g.drawLine(50,50,200,200);
class PferdSprite
{
PferdSprite (String ps_name, int XPos, int YPos)
{
g.drawRect(XPos, YPos, 35, 15);
g.drawString(ps_name, XPos, YPos);
}
}
}
}
Würde mich sehr freuen, wenn Ihr mir bei der Fehlersuche helfen könntet und mir dabei vielleicht etwas zum Verständnis helfen könntet.
Viele Grüße,
Stefan
Zuletzt bearbeitet von einem Moderator: