Mein Programmcode
Programmcode:
// bei setup auch anpassewn
int spielfeld_x = 1600;
int spielfeld_y = 1200;
static spieler spieler_1;
int spieler_start_x = 40;
int spieler_start_y = 1140;
int spieler_geschwindigkeit = 5;
int spieler_sprunggeschwindigkeit = 0;
int spieler_x = spieler_start_x;
int spieler_y = spieler_start_y;
int spieler_breite = 20;
int spieler_hoehe = 20;
int objekte_anzahl = 2; //wenn neues objekt anzahl aktualisieren
objekt[] objekte = new objekt[objekte_anzahl];
class spieler{
public spieler(){
//wird beim Erstellen ausgeführt
}
public void zeichnen(){
rect(spieler_x, spieler_y, spieler_breite, spieler_hoehe);
}
}
class objekt{
int x;
int y;
int breite;
int hoehe;
public objekt(int px, int py, int pbreite, int phoehe){
x = px;
y = py;
breite = pbreite;
hoehe = phoehe;
}
public void zeichnen(){ // an gleicher Position zeichnen
rect(x, y, breite, hoehe);
}
public void zeichnen(int px, int py, int pbreite, int phoehe){ // an neuer Position zeichnen
x = px;
y = py;
breite = pbreite;
hoehe = phoehe;
zeichnen();
}
}
void setup(){
int i = 0;
size(1600, 1200); // spielfeld_x und spielfeld_y ganz oben auch anpassen
spieler_1 = new spieler();
// alle Objekte hier erzeugen !oben Anzahl aktualisieren
objekte[i++] = new objekt(0, 1160, 400, 40);
objekte[i++] = new objekt(450, 1140, 200, 20);
}
void draw (){
sprung_anhalten();
if(keyPressed){
if(keyCode == RIGHT){
spieler_x += spieler_geschwindigkeit;
if(spieler_x > spielfeld_x - spieler_breite){
spieler_x = spielfeld_x - spieler_breite;
}
}
if(keyCode == LEFT){
spieler_x -= spieler_geschwindigkeit;
if(spieler_x <= 0){
spieler_x = 0;
}
}
if(keyCode == UP){
springen();
}
}
spieler_y -= spieler_sprunggeschwindigkeit; // Anpassen der Position gemaess Sprunggeschwindigkeit
// Spiel neustarten
if(spieler_y + spieler_hoehe > spielfeld_y){
spieler_x = spieler_start_x;
spieler_y = spieler_start_y;
spieler_sprunggeschwindigkeit = 0;
}
// Zeichnen
background(0);
objekte_zeichnen();
spieler_1.zeichnen();
}
Boolean ueberpruefePosition(objekt pobjekt){
return (spieler_x + spieler_breite >= pobjekt.x && spieler_x <= pobjekt.x + pobjekt.breite && spieler_y + spieler_hoehe >= pobjekt.y && spieler_y <= pobjekt.y + pobjekt.hoehe);
}
void sprung_anhalten(){ // Sprung anhalten und auf Objekt stellen
for(int i = 0 ; i < objekte_anzahl ; i++ ) {
if (ueberpruefePosition(objekte[i])){
spieler_sprunggeschwindigkeit = 0;
spieler_y = objekte[i].y - spieler_hoehe; // deshalb steht der Spieler auf dem Objekt sobald er das Objekt berührt
break;
}
}
spieler_sprunggeschwindigkeit -= 1;
}
void springen(){
for(int i = 0 ; i < objekte_anzahl ; i++ ) {
if (ueberpruefePosition(objekte[i])){
spieler_sprunggeschwindigkeit = 14;
}
}
}
void objekte_zeichnen(){
for(int i = 0 ; i < objekte_anzahl ; i++ ) {
objekte[i].zeichnen();
}
}