int[] kart = { 125, 600 }; //x = 0, y = 1
int[] kart_size = { 100, 140 }; //width = 0, length = 1
int spawn_chance;
int score = 0;
int[] food;
int[] lanes = { 125, 375, 625, 875 };
float spawn_time;
float object_y;
float[] object_x = new float[3];
boolean pressed = false;
boolean running;
void reset(){
spawn_time = 0;
object_y = -125;
score = 0;
food = new int[]{ 1, -100 };
running = false;
}
void setup() {
size(1000, 800);
reset();
}
void draw() {
background(0);
rectMode(CENTER);
// Kart wird gezeichnet
rect(kart[0] - 50, kart[1] - 70, kart_size[0], kart_size[1]);
// food wird gezeichnet
fill(255, 255, 255);
ellipse(food[0], food[1], 100, 100);
// Start text
// spawn_time wird berechnet
spawnTime();
// Start text wird gezeigt
if (!running) {
//
}
// Score wird gezählt
if (running && spawn_time >= 1) {
score++; // ist dasselbe wie score += 1 oder score = score + 1
}
// Spiel wird gestartet
if (keyPressed && key == ENTER) {
running = true;
spawn_time = 0;
}
// lane berechnen, objekte zeichnen
if (spawn_time <= 1) {
// a little different for-loop than you may have learned it ^^
for (int i = 0, length = object_x.length; i < length; i++)
spawnObject(i);
food();
}
// Objekte werden zurückgesetzt sobald off screen
else {
int tmpScore = score;
reset();
score = tmpScore;
running = true;
for (int i = 0, length = object_x.length; i < length; i++)
object_x[i] = 0;
spawnCheck();
}
// Tod bei Kollison
if ((kart[1] - 70 <= object_y + 50 && kart[1] - 70 >= object_y - 50) &&
(kart[1] == object_x[0] ||
kart[1] == object_x[1] ||
kart[1] == object_x[2]))
{
death();
}
// Objekte bewegen sich, kart bewegt sich
if (running) {
object_y += 16;
food[1] += 16;
if (!pressed) { //different way to say pressed == false
if (keyPressed && keyCode == RIGHT && kart[0] != lanes[3]) {
kart[0] += 250;
pressed = true;
}
if (keyPressed && keyCode == LEFT && kart[0] != lanes[0]) {
kart[0] -= 250;
pressed = true;
}
}
}
}
//
void keyReleased() {
pressed = false;
}
// spawn_time wird berechnet
void spawnTime() {
spawn_time += 1 / frameRate;
}
// Spieler stirbt
void death() {
reset();
for (int i = 0, length = object_x.length; i < length; i++)
object_x[i] = 0;
kart[0] = lanes[0];
}
void spawnObject(int lane) {
int random = rng(0, 3);
if (spawn_chance == 1) {
rect(object_x[lane] - 70, object_y - 70, 150, 150);
if (object_x[lane] == 0) {
object_x[lane] = lanes[random];
}
}
}
// Berechnung ob Objekt 2/3 spawnen darf
void spawnCheck() {
spawn_chance = rng(0, 1);
}
// Essen wird berechnet/gezeichnet
void food() {
while (food[0] == 1) {
int randomFood = rng(0, 4);
println(randomFood);
if (object_x[0] != lanes[randomFood] &&
object_x[1] != lanes[randomFood] &&
object_x[2] != lanes[randomFood])
{
food[0] = lanes[randomFood];
}
}
}
private int rng(int min, int max){
return (int) (round(random(min, max)));
}
So würde ichs machen ... Ist aber komplett ungetestet, weil ich keine ahnung hab welche umgebung du nutzt