Arrays and Roll Over
in
Programming Questions
•
3 years ago
Hey! Working on some HW for Processing class. I've built an image array and programmed the images to display at random points each time the sketch is loaded.
I'm trying to make it so that whenever the cursor rolls over one of the images, it's moved off screen, but try as I might, I can't seem to make it work.
Any ideas? Code included below (in two classes).
I'm trying to make it so that whenever the cursor rolls over one of the images, it's moved off screen, but try as I might, I can't seem to make it work.
Any ideas? Code included below (in two classes).
- //final_project.pde
//inits
Chinese[] boxes;
PImage GameStartScreen;
PImage player;
PImage chinesefood;
PImage GamePlayingScreen;
float PlayerXPos = 10;
float PlayerYPos = 10;
boolean gameStart;
boolean gamePlaying;
boolean gameEnd;
boolean gameRestart;
boolean chinesetarget = true;
import ddf.minim.*;
Minim minim;
AudioPlayer song;
void setup () {
size (800, 500);
noCursor ();
//load images
GameStartScreen = loadImage ("Game Start Screen copy.png");
player = loadImage ("Me headshot.png");
chinesefood = loadImage ("chinesetakeout.png");
GamePlayingScreen = loadImage ("Game BG.png");
//playing music
minim = new Minim(this);
song = minim.loadFile("Stringed Disco.mp3");
song.play();
//Create the array of chinese food
boxes = new Chinese[30];
//Create new object
for (int i = 0; i <boxes.length; i++) {
//create random x coordinate
float x = random(50, 750);
//create random y coordinate
float y = random (50, 450);
boxes [i] = new Chinese (chinesefood, x, y);
}
//initialize the game states
gameStart = true;
gamePlaying = false;
gameEnd = false;
gameRestart = false;
}//setup
void draw () {
if (gameStart) {
gameStartScreen ();
}
else if (gamePlaying) {
gamePlayingScreen ();
}
else if (gameEnd) {
gameEndScreen ();
}
else if (gameRestart) {
gameRestartScreen ();
}
}//draw
void stop()
{
song.close();
minim.stop();
super.stop();
}
void gameStartScreen () {
println ("game start screen");
gameStart = true;
gamePlaying = false;
gameEnd = false;
gameRestart= false;
if (gameStart && mousePressed){
gameStart = false;
gamePlaying = true;
gameEnd = false;
gameRestart = false;
}
//draw start screen
image (GameStartScreen, 0, 0);
}
void gamePlayingScreen () {
println ("game playing screen");
gameStart = false;
gamePlaying = true;
gameEnd = false;
gameRestart= false;
image (GamePlayingScreen, 0, 0);
//Display main character
PlayerChar (PlayerXPos, PlayerYPos);
//Display chinese food
if (chinesetarget = true){
for (int i=0; i<boxes.length; i++) {
boxes [i].rollover (mouseX, mouseY);
boxes [i].display();}
}
}
void PlayerChar (float PlayerXPos, float PlayerYPos) {
image (player, mouseX, mouseY);
}
void gameEndScreen () {
println ("game end screen");
gameStart = false;
gamePlaying = false;
gameEnd = true;
gameRestart= false;
background (255);
if (gameEnd && mousePressed) {
gameStart = false;
gamePlaying = false;
gameEnd = false;
gameRestart = true;
}
}
void gameRestartScreen () {
println ("game restart screen");
gameStart = false;
gamePlaying = false;
gameEnd = false;
gameRestart= true;
background (60);
if (gameRestart && mousePressed) {
gameStart = true;
gamePlaying = false;
gameEnd = false;
gameRestart = false;
}
} - class Chinese {
float xpos;
float ypos;
PImage chinesebox;
boolean chinesetarget;
boolean mouse;
//set initial values
Chinese (PImage target, float tempX, float tempY) {
chinesebox = target;
xpos = tempX;
ypos = tempY;
mouse = false;
}
//display
void display () {
if (mouse) {
image (chinesebox, 900, 900);}
else {
image (chinesebox, xpos, ypos);}
}
void rollover (int mx, int my) {
if (mx == xpos && my == ypos) {
mouse = true;
}
else {
mouse = false;
}//else
} //rollover
}
1
