2017-04-19 5 views
0

機能に行く:処理mousePress画像は、私がロードされ、二つの像ボタンmenuStartとmenuExit小枝menuStart.pngとmenuExit.png作成した

画像(menuStart、250、350、100、42)。

image(menuExit、450、345、110、45);

私がやっていること: 自分のページを段階として設定しました。ステージ1はメニュー、ステージ2はスタート画面ステージ3は選択難易度画面+ゲーム、ステージ4は終了画面、ステージ5はゲームを終了する。私は関数mousePressedを使いたいので、ユーザーがステージ1のmenuStartボタンを選択するとstage = 2になります。同様にステージ1のmenuExitボタンを選択すると、stage = 5になります。

コード: 私はmousePressedを実装していますが、画像パラメータにmousePressedのパラメータを設定する方法はわかりません。これを設定するにはどうすればいいですか?

コード:

void doMenu() { 
    // Stage 1 Start -- MENU 
    if (stage == 1) { 
    textFont(title); 
    text("Game", 150, 200); 
    textFont(subtitle); 
    image(menuStart, 250, 350, 100, 42); 
    image(menuExit, 450, 345, 110, 45); 
    mousePressed(); 

    if(mousePressed == true) { 
     stage = 2; 
    } 
    } 
    // Stage 2 START 
    if (stage == 2) { 
    background(255); 
    startScreen = loadImage("start.png"); 
    image(startScreen, 0, 0, 800, 500); 

    if(mousePressed == true) { // true -->start 
     stage = 3; // go-to stage 3 
    } 
    /* else if(mousePressed == exit && stage != 2 { // exit 
     stage = 5; // go-to exit 
    } 
    */ 
    } 
    if(stage == 3) { 
    background(255); 
    startScreen = loadImage("start.png"); 
    image(startScreen, 0, 0, 800, 500); 
    text("Press N for Normal or H for Hard", 200, 375); 

    if(mousePressed == true) { // true --> hard 
     hard = true; 
     normal = false; 
     startMenu = false; 
    } 
    /* 
    else if(mousePressed == normal) { // normal 
     hard = false; 
     normal = true; 
     startMenu = false; 
    } 
    */ 
    /* 
    if(mousePressed == true) { // easy 
     hard = false; 
     normal = true; 
     startMenu = false; 
    } 
    */ 
    } 
    // Stage 4 EXIT 
    if (stage == 4) { 
    background(0); 
    exitScreen = loadImage("exit.jpg"); 
    image(exitScreen, 0, 0, 800, 400); 
    textFont(subtitle); 
    text("Press X to Exit", 300, 375); 
    if(mousePressed == true) { 
     stage = 5; 
    } 
    } 
    if(stage == 5) { 
    exit(); 
    } 
} 

答えて

0

mousePressed変数はあなたが記述しているように動作しません。マウスが押されたときにtrueを保持し、そうでないときはfalseを保持するのは、単にbooleanという変数です。クリックされた内容に関する情報は含まれていません。

何がクリックされているかを確認するには、mouseXmouseY変数とifステートメントを使用して、カーソルがボタンの内側にあるかどうかを確認する必要があります。簡単な例は次のようになります。

if(mouseX > buttonX && mouseX < buttonX + buttonWidth && mouseY > buttonY && mouseY < buttonY + buttonHeight){ 
    //mouse is inside button 
} 

マウスが押されていて、マウスがボタンの内側にある場合は、ボタンが押されます。あなたはこれをチェックするために、ネストされたifステートメントを使用するか、mousePressed()機能を使用できます。

void mousePressed(){ 
    if(mouseX > buttonX && mouseX < buttonX + buttonWidth && mouseY > buttonY && mouseY < buttonY + buttonHeight){ 
     //mouse is clicking button 
    } 
} 

恥知らずな自己宣伝:hereが処理に使用する入力を得るのチュートリアルです。