Can someone tell me why does the powerup object its appearing always when i restart

import ddf.minim.*;

PImage earth;
PShape ball;
PShape obs;
PShape pow;
PImage powerup;
PImage universe;
PImage Bball;
PImage bricks;
PImage wood;
PImage smile;
PImage basketball;
PImage stone;
PImage background1;
PImage background2;
float gravity = 3.2;
float acceleration = 1;
float velocity = 0;
float rotationy = 0.1;
float rotationx = 0.1;
float mass = 75;
float obstacleypos = 500;
float obstaclexpos;
int scorenum;
String score;
float difficulty = 12;
float obstaclesize = 400;
float balltexturepick;
float obstacletexturepick;
float difficultyincrement = 0.005;
float playerxpos;
float playerypos;
boolean death = false;
float scoreincrement = 1;
int phase = 1;
float powerxpos = random(20,1180);
float powerypos = 300;
float powercheck;
float powermass = 24;
float a;
float powerappear;
float powerchoose;
boolean powernocollision = false;
float powertime = 150;
float pscore;


Player player;
Obstacle obstacle;
powerUp power;
Minim sound;
AudioPlayer backgroundmusic;
AudioSample hitsound;
AudioSample powerupsound;
void setup(){
  size(1200,600,P3D);
  smooth(8);
  //noCursor();
  noStroke();
  player = new Player();
  obstacle = new Obstacle();
  power = new powerUp();
  sound = new Minim(this);
  balltexturepick = random(0,10);
  obstacletexturepick = random(0,10);
  powerappear = random(0,100);
  powerchoose = random(0,10);
  earth = loadImage("textures/earth.jpg");
  Bball = loadImage("textures/8ball.jpg");
  smile = loadImage("textures/smile.jpg");
  basketball = loadImage("textures/basketball.png");
  universe = loadImage("textures/universe.jpg");
  bricks = loadImage("textures/bricks.jpg");
  wood = loadImage("textures/wood.jpg");
  stone = loadImage("textures/stone.jpg");
  powerup = loadImage("textures/power.jpg");
  background1 = loadImage("backgrounds/background1.jpg");
  background2 = loadImage("backgrounds/background2.jpg");
  pow = createShape(SPHERE,powermass);
  pow.setTexture(powerup);
  backgroundmusic = sound.loadFile("sound/backsound.mp3");
  backgroundmusic.setGain(-10);
  backgroundmusic.loop();
  hitsound = sound.loadSample("sound/hitsound.mp3");
  hitsound.setGain(-15);
  powerupsound = sound.loadSample("sound/powerup.wav");
  powerupsound.setGain(-15);
  //ball = createShape(SPHERE,mass);
  //obs = createShape(BOX,obstaclesize,75,200);
  //ball.setTexture(earth);
  //obs.setTexture(bricks);
}

class Player{
  void update(){
    
    // this code is for the gravity of the player
    
    /*acceleration += gravity;
    velocity += acceleration;
    if(playerypos + velocity > height + 80){
      playerypos = 0;
      velocity = 0;
    }*/
    playerxpos = mouseX;
    playerypos = mouseY;
    if(powernocollision == true && scorenum == pscore + powertime){
      powernocollision = false;
    }
    if(powernocollision == false){   
    if(playerxpos < obstaclexpos + (obstaclesize/2) + mass && playerxpos > obstaclexpos - (obstaclesize/2) - mass && playerypos < obstacleypos + (mass/2) + mass && playerypos > obstacleypos - (mass/2) - mass){
      hitsound.trigger();
      death = true;
      }
    }
  }
  void show(){
    pushMatrix();
    if(phase == 1){
      background(background1);
    }
    if(phase == 2){
      background(background2);
      
    }
    translate(playerxpos/*width/2*/,playerypos/*playerypos + velocity*/);
    rotateX(rotationx);
    rotateY(rotationy);
    fill(200,200,200);
    //box(mass);
    ball = createShape(SPHERE,mass);
    if(balltexturepick < 2.5){
      ball.setTexture(Bball);
    }
    if(balltexturepick > 2.5 && balltexturepick < 5){
      ball.setTexture(earth);
    }
    if(balltexturepick > 5 && balltexturepick < 7.5){
      ball.setTexture(smile);
    }
    if(balltexturepick > 7.5){
      ball.setTexture(basketball);
    }
    shape(ball);
    rotationx += random(0.02,0.05);
    rotationy += random(0.03,0.06);
    popMatrix();
  }
  void score(){
    scorenum += scoreincrement;
    scoreincrement += 0.001;
    if(scorenum >= 5000){
      phase = 2;
    }
    if(scorenum >= 5000 && scorenum < 5100){
      textSize(80);
      pushMatrix();
      translate(0,0);
      fill(200,5,5);
      text("FASE 2",width/2 - 100,height/2);
      popMatrix();
    }
    score = str(int(scorenum));
    textSize(50);
    fill(138,132,236);
    pushMatrix();
    translate(0,0);
    text(score,width/4*3 + 150,height/6);
    text("Pontuação:",width/4*3 - 150,height/6);
    popMatrix();
  }
}
class Obstacle{
  void update(){
    obstacleypos -= difficulty;
    translate(obstaclexpos,obstacleypos);
    difficulty += difficultyincrement;
    if(phase == 2){
    obstaclesize += 0.002;
    }
    if(obstacleypos <= -100){
      obstacleypos = height + 100;
      obstaclexpos = random(10,1190);
    }
  }
  void show(){
    //translate(width/2,obstacleypos);
    //fill(126,81,48);
    //box(obstaclesize,75,200);
    fill(200,200,200);
    //obs = createShape(BOX,obstaclesize,75,200);
    if(obstacletexturepick < 2.5){
      obs = createShape(BOX,obstaclesize,75,200);
      obs.setTexture(bricks);
    }
    if(obstacletexturepick > 2.5 && obstacletexturepick < 5){
      obs = createShape(BOX,obstaclesize,75,200);
      obs.setTexture(universe);
    }
    if(obstacletexturepick > 5 && obstacletexturepick < 7.5){
      obs = createShape(BOX,obstaclesize,75,200);
      obs.setTexture(stone);
    }
    if(obstacletexturepick > 7.5){
      obs = createShape(BOX,obstaclesize,75,200);
      obs.setTexture(wood);
    }
    shape(obs);
  }
}
class powerUp{
  void show(){
    pushMatrix();
    translate(powerxpos,powerypos);
    fill(255,128,0);
    sphere(powermass);
    popMatrix();
  }
  void update(){
    powerypos -= difficulty;
    difficulty += difficultyincrement;
    powercheck = dist(playerxpos,playerypos,powerxpos,powerypos);
    if(powercheck  < mass + powermass){
      powerupsound.trigger();
      powerchoose = random(0,10);
      if(powerchoose <= 2.5){
        powerxpos = 2000;
        powermass = 0;
        pscore = scorenum;
        powernocollision = true;
      }
      if(powerchoose > 2.5){
        powerxpos = 2000;
        scorenum += 500;
        powermass = 0;
      }
      /*powerxpos = 2000;
      scorenum += 500;
      powermass = 0;*/
    }
    if(powerypos <= -26){
      powerappear = random(0,100);
      if(powerappear < 0.4){
        powermass = 24;
      powerypos = random(1200,1224);
      powerxpos = random(20,1180);
      }else{
        //powermass = 0;
        powerypos = -25;
      }
    }
  }
}

void draw(){
  lights();
  if(death == false){
  player.update();
  player.show();
  player.score();
  power.update();
  power.show();
  obstacle.update();
  obstacle.show();
  }
}
void respawn(){
  death = false;
    difficulty = 10;
    scoreincrement = 1;
    scorenum = 0;
    obstacleypos = 700;
    obstaclexpos = random(10,1190);
    powerxpos = random(20,1180);
    powerypos = height + 24;
    powerappear = random(0,100);
    obstaclesize = 400;
    powermass = 24;
    powernocollision = false;
    balltexturepick = random(0,10);
    obstacletexturepick = random(0,10);
    phase = 1;
  }
  void keyPressed(){
    if(key ==  ' '){
      respawn();
    }
  }
  void mousePressed(){
    respawn();
  }

Lots of code here. Please format your code. Edit post, select code and hit the </> button.

Kf

1 Like

i edited the post already

You say “When I restart” – do you mean “when I respawn?”

Because you are telling it to in respawn():

powerxpos = random(20,1180);
powerypos = height + 24;
powerappear = random(0,100);

Consider making a simple MCVE if you need more help – one that doesn’t load images and audio. Without your graphics and sound file, nobody on the forum can run this sketch to test it.

1 Like

thanks that was the problem i was setting the y position down the window, next time i have a bug i do a MCVE version, thanks

1 Like