Hallo,
ich möchte ein Spiel programmieren, wo man (vorerst noch nur) ein Auto bewegen kann.
Ich soll das zwar eigentlich in Java machen, aber da kenn ich mich nicht aus. In der Schule hatten wir bis jetzt nur Java mit SuM (Stifte und Mäuse, Link: SuM-Bibliotheken für BlueJ) und deswegen habe ich das erstmal damit versucht, was auch ganz gut klappt. Nur das Problem ist, dass sich mein Auto zwar lenken lässt, aber immer dieselbe Richtung hat. Ich verwende übrigens BlueJ.
Hier erst mal der Quelltext:
Klasse Spiel:
Klasse Auto:
Das Spiel könnt ihr auch leider nur ausführen, wenn ihr BlueJ habt und dort die SuM Bibliotheken installiert habt. Wie das geht, steht auf der Seite vom oben erwähnten Link.
Ich hoffe ihr könnt mir weiter helfen, auch wenn es kein richtiges Java ist.
LG AXEALASKA
ich möchte ein Spiel programmieren, wo man (vorerst noch nur) ein Auto bewegen kann.
Ich soll das zwar eigentlich in Java machen, aber da kenn ich mich nicht aus. In der Schule hatten wir bis jetzt nur Java mit SuM (Stifte und Mäuse, Link: SuM-Bibliotheken für BlueJ) und deswegen habe ich das erstmal damit versucht, was auch ganz gut klappt. Nur das Problem ist, dass sich mein Auto zwar lenken lässt, aber immer dieselbe Richtung hat. Ich verwende übrigens BlueJ.
Hier erst mal der Quelltext:
Klasse Spiel:
Java:
import sum.kern.*;
/**
* @author
* @version
*/
public class Spiel
{
// Bezugsobjekte
Bildschirm meinBildschirm;
Buntstift meinStift;
Tastatur hatTastatur;
Maus Maus;
Auto car;
// Attribute
double zGeschwindigkeit;
double zWinkel;
// Konstruktor
public Spiel()
{
meinBildschirm = new Bildschirm(1000,600);
meinStift = new Buntstift();
hatTastatur = new Tastatur();
Maus = new Maus();
run();
}
// Dienste
public void run()
{
car = new Auto(100,100,5,0);
do
{
if (hatTastatur.wurdeGedrueckt())
{
switch (hatTastatur.zeichen())
{
case 'w': zGeschwindigkeit += 0.1; break;
case 's': zGeschwindigkeit -= 0.1; break;
case 'd': zWinkel += 5; break;
case 'a': zWinkel -= 5; break;
}
hatTastatur.weiter();
}
//Reibung
else if (zGeschwindigkeit>0)
{
zGeschwindigkeit -= 0.0005;
}
else if (zGeschwindigkeit<0)
{
zGeschwindigkeit += 0.0005;
}
car.bewegeUm(zGeschwindigkeit, zWinkel);
//car.dreheUm(zWinkel);
if (car.hPosition() < -50)
car.bewegeBis(meinBildschirm.breite(), car.vPosition());
if (car.hPosition() > meinBildschirm.breite())
car.bewegeBis(0, car.vPosition());
if (car.vPosition() < -20)
car.bewegeBis(car.hPosition(), meinBildschirm.hoehe());
if (car.vPosition() > meinBildschirm.hoehe())
car.bewegeBis(car.hPosition(), 0);
//optional
meinStift.bewegeBis(400,400);
meinStift.schreibeText("Winkel: " + zWinkel + " Geschw.: " + zGeschwindigkeit);
meinStift.bewegeBis(400,400);
meinStift.radiere();
meinStift.schreibeText("Winkel: " + zWinkel + " Geschw.: " + zGeschwindigkeit);
meinStift.normal();
} while (!Maus.doppelKlick());
}
}
Klasse Auto:
Java:
import sum.kern.*;
/**
* @author
* @version
*/
public class Auto
{
// Bezugsobjekte
Buntstift hatStift;
// Attribute
private double zGeschwindigkeit;
private double zWinkel;
// Konstruktor
public Auto(int pH, int pV, double pGeschwindigkeit, double zWinkel)
{
hatStift = new Buntstift();
hatStift.bewegeBis(pH, pV);
this.zeichne();
}
// Dienste
public void zeichne()
{
double lH, lV;
lH = this.stift().hPosition();
lV = this.stift().vPosition();
//Auto zeichnen
this.stift().runter();
this.stift().zeichneRechteck(50,20);
this.stift().hoch();
this.stift().bewegeBis(lH+20, lV);
this.stift().runter();
this.stift().zeichneRechteck(20,20);
// zurueck zur Ausgangsposition
this.stift().hoch();
this.stift().bewegeBis(lH, lV);
this.stift().dreheBis(0);
}
public void bewegeUm(double a, double b)
{
this.loesche();
hatStift.dreheBis(-b);
hatStift.bewegeUm(-a);
this.zeichne();
}
/**public void dreheUm(double b)
{
this.loesche();
hatStift.dreheUm(-b);
this.zeichne();
}*/
private void loesche()
{
hatStift.radiere();
this.zeichne();
hatStift.normal();
}
public void bewegeBis(double H, double V)
{
this.loesche();
hatStift.bewegeBis(H, V);
this.zeichne();
}
public double hPosition()
{
return hatStift.hPosition();
}
public double vPosition()
{
return hatStift.vPosition();
}
protected Buntstift stift()
{
return hatStift;
}
public void gibFrei()
{
hatStift.gibFrei();
}
}
Das Spiel könnt ihr auch leider nur ausführen, wenn ihr BlueJ habt und dort die SuM Bibliotheken installiert habt. Wie das geht, steht auf der Seite vom oben erwähnten Link.
Ich hoffe ihr könnt mir weiter helfen, auch wenn es kein richtiges Java ist.
LG AXEALASKA