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