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();

 }

}

...zur Antwort