Pacman
in
Programming Questions
•
9 months ago
Hi,
I'm nearly entered Processing and I'm trying to realize a simple version of Pacman's game: i would like to make appear a random number of ghosts to make pac eat them so i thought of generating a random number, but i don't know where to put it! Could someone help me??
This is the code:
thanks!
PacMan pac;
Fantasma fantasma;
Punteggio punteggio;
int n;
void setup(){
size(600,600);
background(0);
smooth();
noStroke();
pac = new PacMan(width/2,height/2);
fantasma = new Fantasma();
punteggio = new Punteggio();
}
void draw(){
background(0);
pac.draw();
fantasma.draw();
mangiaFantasma();
punteggio.mostraPunteggio();
}
void mangiaFantasma(){
float distance;
distance = sqrt(pow(pac.x-fantasma.x,2));
if(distance < 20){
fantasma = new Fantasma();
rinnovaPunteggio();
}
}
void rinnovaPunteggio(){
n = int(random(1,4));
println(n);
if(n==1){
punteggio.punti= punteggio.punti+50;
}
if(n==2){
punteggio.punti= punteggio.punti+100;
}
if(n==3){
punteggio.punti= punteggio.punti+150;
}
if(n==4){
punteggio.punti= punteggio.punti+200;
}
}
class Fantasma{
int x;
PImage [] fantasma = new PImage [4];
Fantasma(){
x=int(random(width));
for (int i=0; i<4; i++){
fantasma[i] = loadImage( "ghost" + i + ".jpeg");
}
}
void draw(){
image(fantasma[(n)],x,280,45,45);
}
}
class PacMan{
int x;
int y;
int d=40;
int speed=20;
color colore=#FFE203;
PacMan(int x_pos,int y_pos){
x=x_pos;
y=y_pos;
frameRate(4);
}
void draw(){
x=x+speed;
fill(colore);
arc(x,height/2,d,d,PI/4,7*PI/4);
if(x>width){
speed=speed*(-1);
};
if(x<0){
speed=speed*(-1);
};
if(speed<0){
background(0);
arc(x,height/2,d,d,-3*PI/4,3*PI/4);
};
if(frameCount%2==0){
arc(x,height/2,d,d,-PI/4,PI/4);
}else{
arc(x,height/2,d,d,3*PI/4,5*PI/4);
}
fill(0);
ellipse(x+1,290,5,5);
}
}
class Punteggio{
PFont font;
int punti;
int n;
Punteggio(){
punti = 0;
font = loadFont("CenturyGothic-48.vlw");
textFont(font);
}
void mostraPunteggio(){
fill(255);
text("Punti accumulati:"+punti,2,40);
}
}
1