Programm beenden in Java?

Biite so machen das es nach ner Zeit beendet (Zeit egal)

int numBalls = 5 + (int)(Math.random() * ((15 - 5) + 1));
float spring = 0.05;
float gravity = 0.03;
float friction = -0.9;
int score = 0;
int timer = 2;
int Java = 1;
Ball[] balls = new Ball[numBalls];




void setup() {
  size(1920, 920);
  for (int i = 0; i < numBalls; i++ ) {
    balls[i] = new Ball(random(width), random(height), random(30, 70), i, balls);
  }
  noStroke();
  fill(255, 204);
  //  circleColor = color(255);
}


void draw() {
  background(255, 255, 255);
  for (Ball ball : balls) {
    ball.collide();
    ball.move();
    ball.display();
  }
}


void mousePressed() {
  for (Ball ball : balls) {
    if (ball == null) {
      break;
    }
    if (ball.wasHit ( mouseX, mouseY)) {
      ball.destroyBall();
    }
  }
}


class Ball {


  float x, y;
  float diameter;
  float vx = 0;
  float vy = 0;
  int id;
  float lifespan;
  float radius;
  color circleColor;
  float xin;
  float yin;
  float din;
  int idin;
  Ball[] others;


  Ball(float xin, float yin, float din, int idin, Ball[] oin) {
    x = xin;
    y = yin;
    diameter = din;
    id = idin;
    others = oin;
    lifespan = random(2000.0 - 750.0) + 750;
    radius = diameter/2;
    circleColor =  color(random(255), random(255), random(255));
  }


  void collide() {
    for (int i = id + 1; i < numBalls; i++) {
      float dx = others[i].x - x;
      float dy = others[i].y - y;
      float distance = sqrt(dx*dx + dy*dy);
      float minDist = others[i].diameter/2 + diameter/2;
      if (distance < minDist) {
        float angle = atan2(dy, dx);
        float targetX = x + cos(angle) * minDist;
        float targetY = y + sin(angle) * minDist;
        float ax = (targetX - others[i].x) * spring;
        float ay = (targetY - others[i].y) * spring;
        vx -= ax;
        vy -= ay;
        others[i].vx += ax;
        others[i].vy += ay;
      }
    }
  }


  void move() {
    vy += gravity;
    x += vx;
    y += vy;
    lifespan -= 2.0;
    if (x + diameter/2 > width) {
      x = width - diameter/2;
      vx *= friction;
    } else if (x - diameter/2 < 0) {
      x = diameter/2;
      vx *= friction;
    }
    if (y + diameter/2 > height) {
      y = height - diameter/2;
      vy *= friction;
    } else if (y - diameter/2 < 0) {
      y = diameter/2;
      vy *= friction;
    }
    /* boolean isDead() {
     return (lifespan < 0.0);
     }*/
  }


  void display() {
    stroke(255, lifespan);
    fill(circleColor, lifespan);
    ellipse(x, y, diameter, diameter);
    textAlign(CENTER, CENTER);
    fill(200);
    textSize(50);
    text("Score = " + (score), 110, 10);
  }
  boolean wasHit(float ShotX, float ShotY) {
    if ((y +diameter/2 >= ShotY && y - diameter/2 <= ShotY) &&
      (x +diameter/2 >= ShotX && x - diameter/2 <= ShotX)) {
      return true;
    }
    return false;
  }
  void destroyBall() {
    lifespan = random(500.0 - 250.0) + 250;
    score++;
    x = random(width);
    y = random(height);
  }
}
Computer, programmieren, Java, Processing, Spiele und Gaming
Java Processing Game over Screen erstellen?

Hey ich habe eine Version von Pong erstellt um mich ein wenig rumzuprobierem. Demnach ist es weder schön noch besonders ausgereift. Ich habe folgendes gecodet und Frage mich wie ich auf Knopfdruck ein neues Spiel starten kann. Ich hab schon was implementiert was aber nicht funktioniert hatt. Vielleicht ist der Ansatz ja auch richtig. Vielen Dank:

int screen = 0;
int end = 0;
float x = 0;
float y = 0;

int xball = 500;
int yball = 500;
int xdir = 1;
int ydir = 1;



void setup(){
  
 fullScreen();
 smooth();
  
}

void draw(){
 background(38,30,38);
 strokeWeight(5);
 stroke(39,255,36);
 fill(39, 181, 36);
 rect(25,(mouseY/25)*25,25,25);
 rect(25,((mouseY/25)*25)+25,25,25);
 rect(25,((mouseY/25)*25)-25,25,25);
 rect(25,((mouseY/25)*25)-50,25,25);
 rect(25,((mouseY/25)*25)+50,25,25);
  
  
 stroke(255,39,36);
 fill(181,39,36);
  
 
  
  
 fill(255,39,36);
 stroke(181,39,36);
 rect((xball/25)*25,(yball/25)*25,25,25);
 xball = xball+xdir*4;
 yball = yball+ydir*2;
  
  
  
  if (xball > width-25){
   xdir = xdir * -1;
  }  
 
 if (xball < 25){
  screen = 1;
 }
 
 if (xball < 75){
  if (xball > 25){
  if (yball > ((mouseY/25)*25)-50){
   if(yball < ((mouseY/25)*25)+50){
   xdir = xdir * -1;
  }}}}
  
  
 if (yball > height-25 || yball < 25){
   ydir = ydir * -1;
  }
   
 if (screen > 0){
  noStroke();
  fill(0);
  rect(0,0,width,height);
  stroke(255);
  fill(255);
  textSize(150);
  text("Game Over",width/4-100,height/2);
  fill(150);
  stroke(150);
  text("again?",width/4+100,height/2+260);
  end = 1;
 }
   
}



void mouseClicked (){
  
 background(38,30,38);
 if(mouseX > width/4+100){
  if(mouseX < width/4+600){
   if(mouseY > height/2+260){
    if(mouseY < height/+310){
     if(end > 0){
      screen = -1;
      end = 0;
      xball = 500;
      yball = 500;
      xdir = 1;
      ydir = 1;
      x = 0;
      y = 0;
      
 
 
 }}}}}
  
}
programmieren, Java, Processing
Warum funktioniert das hier nicht?

Hi. Ich bin am programmieren in Processing und bekomme den Fehler "Expecting EOF, found if" und weiß nicht warum. Kann mir jemand helfen?

//Variablen des Balles
int xball = 400;
int yball = 300;
int xspeed = 5;
int yspeed = 5;

//Variabeln des Paddels
int xrect = mouseX;
int yrect = 500;

//Variabeln für die Leben 
int leben = 3;
int score = 0;

//Variabeln für die Bricks
int[] xBrick = new int[100];
int[] yBrick = new int[100];
boolean[] activeBrick = new boolean[70];

//Spielfeld und Farbe des Hintergrundes
void setup() {
 size(800, 600);
 background(0);
  
//Bricks auf aktiv setzen
for(int i=0;i<60;i++){
 activeBrick[i] = true;
 }
}

//Zeichnen von Bricks,Paddel und Ball
void draw() {
 background(0);
 int xrect = mouseX;
  
   for(int i=0;i<10;i++){
   for(int k=0;k<6;k++){
   xBrick[i] = i*80;
   yBrick[k] = k*30; 
   }
   }
   for (int i = 0; i < 10; i++) {
  for (int k = 0; k < 6; k++) {
   if(activeBrick[k*10+i] == true){
     fill(#6d00cc);
   rect(80*i, 30*k, 60, 15);
   }
  }
 }
   
   rect(mouseX, yrect, 80, 20);
   fill(#FFFF00);
   ellipse(xball, yball, 30, 30);
   stroke(50);
   strokeWeight(3);
   
//Ball prallt von den Wänden ab
   if (xball > 800){
    xspeed = -xspeed;
   }
    
    if (xball < 0) {
    xspeed = -xspeed;
    }
    
    
   if (yball < 0) {
   yspeed = -yspeed;
   }
    
 xball = xball + xspeed;
 yball = yball + yspeed;

//wenn der ball nicht im spielfeld ist, ihn respawnen
 if (yball > 600) {
   delay(2000);
   xball = 400;
   yball = 300;

//Ein leben abziehen,wenn der Ball aus dem Feld ist
   leben = leben-1;
 }

//Abprallen von Ball an Paddle 
  if (xball > xrect && xball < xrect+80 && yball > yrect && yball < yrect+20) {
  yspeed=-yspeed;
}
 }
 if (score==60){
  stroke(255);
  textSize(128);
  text("You win");
  stop();
 }
println(leben);
 if (leben==0){
  background(#00CD00);
  stroke(255);
  textSize(128);
  text("You Lose",50,250);
  stop();
 }
 drawBricks();
 checkBrickCollision();
}
  void drawBricks(){
   for(int i=0;i<10;i++){
   for(int k=0;k<7;k++){
   xBrick[i] = i*80;
   yBrick[k] = k*30; 
   }
   }
   
   for (int i = 0; i < 10; i++) {
  for (int k = 0; k < 7; k++) {
   if(activeBrick[k*10+i] == true){
   rect(xBrick[i],yBrick[k],80,20);
   fill(#FFFF00);
   }
  }
 }
}

//Zusammenstoß von Ball und Bricks
    void checkBrickCollision(){  
     
  for (int i=0;i<10;i++){
   for(int k=0;k<7;k++){
    if(xball > xBrick[i] && xball < xBrick[i]+60 && yball > yBrick[k] && yball< yBrick[k]+20 && activeBrick[k*10+i] == true) {
    activeBrick[k*10+i] = false;
  //Brick auf inaktive setzen
  activeBrick[k*10+i]=false;
  score++
    //y-Richtung des Balls ändern
    yspeed=-yspeed;
    }
   }
  }
 }
programmieren, Processing
PROCESSING- Layer festlegen und undurchlässige objekte erstellen?

hallo, wir haben in der schule seit kurzen ein paar pogrammier grundlagen mit processing.

das ziel ist es ein kleines spiel selbst zu programmieren.

ich habe mit einem spiel angefangen in dem man einen kleinen character hat (eine png datei) den man nach rechts und links steuern kann und der springen kann.

außerdem habe ich ein paar röhren eingebaut durch die der character hindurchlaufen soll.

hier kommen wir zu meiner ersten Frage: ist es möglich das ich verschiedene laye festlege, also das die röhren über dem character liegen, diesen also verdecken?

und meine zweite frage ist: ich habe ein paar schwebende plattformen erstellt auf die der character hinaufspringen können soll. allerdings fällt dieser momentan noch einfach hindurch. wie bekomme ich diese platformen solide? d.h. das wenn der character darauf landet, soll er darauf stehen bleiben und nicht hindurchfallen.

anbei noch der code, allerdings ziemlich wirr.

gif&gif2 = chaacter

danke schonmal.

PImage[] gif;
PImage [] gif2;
int nof;
int f;    // für die Laufanimation
int k;
PImage platform;
PImage hintergrund;
PImage Rohr;
PImage Rohr2;
int x = 0;
float y = 0;
boolean mover;
boolean movel;
boolean springen;
boolean rohr = false;


float jump;


boolean rechts;








void setup() {
  frameRate(130);
  size(1920, 1080);


  Rohr = loadImage("R.png");
  Rohr2 = loadImage("R2.png");
  platform = loadImage("platform.png");


  nof = 5;  
  gif = new PImage[nof];  
  int i = 0;  
  while (i < nof) { 


    gif[i] = loadImage("pixil-frame-"+i+".png");


    i=i+1;
  }   // laufanimation rechts




  gif2 = new PImage[nof];  
  int g = 0;  
  while (g    < nof) { 


    gif2[g] = loadImage("pixi-frame-"+g+".png");
    g=g+1;
  }   // laufanimation links








  hintergrund = loadImage("hintergrund.png");


  movel = false;
  mover = false;
  rechts = true;


  x = 50;
  y = 880;
  jump = 0;
}


void draw() {
  background(hintergrund);


  rohr = x > 0 && x < 10 && y > 370 && y < 490;


  println (mouseX+","+mouseY);






  image(Rohr, -20, 350, 100, 150);


  image(Rohr2, 1840, 60, 100, 150);
  image (platform, 0, 490);
  image (platform, 1660, 200);


  if (rechts) {


    image(gif[f], x, y, 160, 120);  //anfang laufen


    if (frameCount % 5 == 0)   f = f + 1;
    if (f == nof) f = 0;
  } else {
    image (gif2[k], x, y, 160, 120);


    if (frameCount % 5 == 0)   k = k + 1;
    if (k == nof) k = 0;
  }


  y = min(y+jump, 880);


  jump = jump + .28;








  if (x > 1300) {
    x = -150;
  }


  if (rohr) {
    x = 1300;
  }


  if (mover) {
    x = x+3;
  }
  if (movel) {
    x = x-3;
  }




  if (springen) {
    y = y - 5;
  }
}




void keyPressed() {


  if (key == ' ') {
    jump= -8;
  }


  if (keyCode == RIGHT) {




    mover = true;
    rechts = true;
  }




  if (keyCode == LEFT) {
    movel = true;
    rechts = false;
  }
}


void keyReleased() {
  if (keyCode == RIGHT) {
    mover = false;
  }
  if (keyCode == LEFT) {
    movel = false;
  }




  println (mouseX+","+mouseY);
}


Computer, programmieren, Java, Informatik, Processing, Spiele und Gaming
Processing Objekte ausschneiden?

Hallo meine sehr geehrten Herren/innen! Ich hoffe Sie hatten einen angenehmen Tag… doch wie wir alle wissen soll man den Tag nicht vor dem Abend loben. Deswegen wollte ich fragen, ob jemand weiß, wie man Objekte voneinander differenzieren kann. Ich habe eine Variation an Himmelskörpern modelliert und bin bei dem Mond auf das Problem gestoßen, dass die Körper (wenn ich einen anderen Hintergrund nehme) nicht die gewünschte Form annehmen. Die frage ist jetzt, ob es irgendwie möglich ist zwei Körper auszuschneiden oder einen Körper transparent für den Hintergrund zu machen. Ich hoffe Ihr habt einen schönen Tag und könnt mir helfen, da bei mir mittlerweile Hopfen und Malz verloren ist!

Anbei der Processing Code:

<void setup () {

size (1920,1080);

background(255);

}

public void cloud(int a, int b, int c) {

noStroke();

fill(#F5F0F0);

ellipse(a,b,c,c);

ellipse(a-0.6c,b+0.15c,c,c);

ellipse(a-1.2c,b+0.5c,c,c);

ellipse(a+0.6c,b+0.15c,c,c);

ellipse(a+1.2c,b+0.5c,c,c);

rect(a-1.2c,b+0.4c,2.4c,0.6c);

}

public void moon(int a, int b, int c,int f){

//Mond

noStroke();

fill(#F5EEAF);

ellipse (a, b,c, c);

fill (f);

ellipse (a+0.4c, b,c1.1, c*1.1);

}

public void sun(int x, int y, int w, int h, int w1, int h1, int x1, int y1){

// Sonne

noStroke();

fill (255,255,0);

ellipse (x, y,w, h);

//Sonnenstrahlen

rect (x-w10.5, y-y1, w1, -h1);

rect(x-w10.5, y+y1, w1, h1);

rect (x-x1,y-w10.5,-h1,w1);

rect (x+x1,y-w10.5,h1,w1);

translate(x,y);

rotate(PI/4);

rect (0.5w1, -h-0.25h1, w1, h1);

rect (0.5w1, 0.5h+0.25h1, w1, h1);

rotate(PI/4);

rotate(PI/4);

rect (0.5w1, -h-0.25h1, w1, h1);

rect (0.5w1, 0.5h+0.25h1, w1, h1);

rotate(PI/4);

rotate(PI);

translate(-x,-y);

}

void draw(){

sun(700,250,200,200,5,100,115,115);

moon(1000,400,300, 0);

cloud(500,600,250);

Processing
Wie kann ich JavaScript-Code in Processing-Code umschreiben?

Hallo,

also ist es möglich, einen Java-Code in einen Processing-Code umzuschreiben oder besser gesagt, könnte jemand helfen? Ich bin noch sehr am Anfang, habe aber einen Code gefunden, der mir sehr gut gefällt und mit dem ich gerne ein bisschen herumprobieren würde. Nur funktioniert er eben in Processing nicht und mit Java kenne ich mich noch weniger aus, darum würde ich ihn gerne umschreiben.

So sieht das Ganze aus:

let shapes = [];
let colors = ["#ffc857", "#e9724c", "#c5283d", "#481d24", "#255f85", "#a5bccc"];

function setup() {
  createCanvas(1000, 800);
  rectMode(CENTER);
  translate(width / 2, height / 2);
  scale(1.4);
  rotate(random(PI));
  translate(-width / 2, -height / 2);
  background(random(colors));
  let seg = int(random(25, 45));
  let w = width / seg;

  for (let i = 0; i < seg; i++) {
    for (let j = 0; j < seg; j++) {
      let x = i * w;
      let y = j * w;

      if ((i + j) % 2 == 0) {
        shapes.push(createVector(x + w / 2, y + w / 2, w * 2.01));
      }
    }
  }

  shuffle(shapes, true)
  noStroke();

  for (let s of shapes) {
    let rnd = int(random(4));
    shuffle(colors, true);
    push();
    translate(s.x, s.y);
    fill(random(colors));

    if (rnd == 0)
      circle(0, 0, s.z);
    else if (rnd == 1)
      square(0, 0, s.z);
    else if (rnd == 2) {
      let n = int(random(1, 5));
      
      for (let i = 0; i < n; i++) {
        let ss = map(i, 0, n, s.z, 0);
        fill(colors[i]);
        circle(0, 0, ss);
      }
    }
    else if (rnd == 3) {
      let n = int(random(1, 10));

      for (let i = 0; i < n; i++) {
        let ss = map(i, 0, n, s.z, 0);
        fill(colors[i % colors.length]);
        square(0, 0, ss);
      }
    }

    pop();
  }
}

function draw() {
}
JavaScript, Processing, Programmiersprache