2015-10-25 25 views
0

我想在Processing中製作此遊戲。如何在gameover之後再次啓動? (處理)

在'Switch'中時,它們在同一時間顯示case0,1,2。 我不知道如何編輯它。

和case2(gameover)後,按鍵'1'重新開始。 但我認爲它遇到case1時,遊戲的情況...

如何編輯?

PImage work[] = new PImage[3]; 
float workSize[] = new float[3]; 
float workX[] = new float[3]; 
float workY[] = new float[3]; 
float workS[] = new float[3]; 
PImage handA, handB; 
PFont font; 
int level; 
boolean gameover = false; 

boolean selected[] = new boolean [3]; 
int salary = 0; 


void setup(){ 

    size(1000,800); 
    background(255); 
    imageMode(CENTER); 

    for (int i=0; i<3; i++) { 

    workX[i] = random(0, width); 
    workY[i] = random(0, height); 
    selected[i] = false; 
    workSize[i] = 120; 

    } 

    handA = loadImage("handA.png"); 
    handB = loadImage("handB.png"); 

    work[0] = loadImage("work0.png"); 
    work[1] = loadImage("work1.png"); 
    work[2] = loadImage("work2.png"); 

    font = createFont("Gulim", 48); 
    textFont(font); 
    textAlign(CENTER, CENTER); 
} 



void draw(){ 

    background(255); 

    if (mousePressed) { 
    cursor(handB, 0, 0); 
    } else { 
    cursor(handA, 0, 0); 
    } 

    switch (level) { 
    default: // press'1' to start game 
     fill(0); 
     text("1을 눌러 일 얻기", width/2, height/2); 
     if (key == '1') { 
      level = 1; 
     } 
     break; 
    case 1: 
     game(); 
     if (gameover == true) { 
      level = 2; 
     }  
     break; 
    case 2: // press '1' to start again 
     fill(0); 
     text("퇴직금 : "+ salary + " + (비정규직으로 퇴직금 없음)", width/2, height/2-100); 
     text("일을 못해서 정리해고", width/2, height/2); 
     text("1을 눌러 다시 일 얻기", width/2, height/2+100); 
     if (key == '1') { 
      level = 1; 
     } 
     break;  
    } 
} 


void game() { 
    for (int i=0; i<3; i++) { 

    float clickedDist = dist(workX[i], workY[i], mouseX, mouseY); 

    if (clickedDist<workSize[i]/2 && mousePressed) { 
     workSize[i] = workSize[i] - 2; 
    } else { 
     workSize[i] = workSize[i] + 0.7; 
    } 

    if (workSize[i]<100) { 
     workSize[i] = 0; 
    } 

    if (workSize[i]>400) { 
     gameover = true; 
    } 

    if (workSize[i] == 0 && selected[i] == false) { 
     salary = salary + 50; 
     selected[i] = true; 
     workX[i] = random(0, width); 
     workY[i] = random(0, height); 
     selected[i] = false; 
     workSize[i] = 120; 
    } 

    if (salary > 150) { 
     workS[i] = workSize[i] + 0.5; 
     workSize[i] = workS[i]; 
    } 

    if (abs(mouseX-workX[i]) < workSize[i]/2 && abs(mouseY-workY[i]) < workSize[i]/2) { 
     workX[i] += random(-5,5); 
     workY[i] += random(-5,5); 
    } 


    image(work[i], workX[i], workY[i], workSize[i], workSize[i]); 



    pushMatrix(); 
    fill(0); 
    textSize(48); 
    text("봉급 : "+ salary, textWidth("salary"), (textAscent()+textDescent()/2)); 
    popMatrix(); 
    } 
} 

回答

0

所有你需要做的就是重新存儲你的遊戲狀態的任何變量,如您level變量。類似這樣的:

void keyPressed(){ 
    if(gameover && key == '1'){ 
     gameover = false; 
     level = 1; 
    } 
} 
相關問題