我已经加载并创建了两个图像按钮menuStart和menuExit以及menuStart.png和menuExit.png:
图像(menuStart,250,350,100,42);
图像(menuExit,450,345,110,45);
我正在做什么:,我已经将我的页面设置为阶段。第一阶段是菜单,第二阶段是开始画面,第三阶段是选择难度画面+游戏,第四阶段是退出屏幕,第五阶段是退出游戏。我希望使用函数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();
}
}发布于 2017-04-19 02:17:08
mousePressed变量不像您描述的那样工作。它只是一个boolean变量,它在鼠标被按下时保存true,当鼠标被按下时保存false。它不包含任何关于被点击的内容的信息。
要检查单击的内容,您必须使用mouseX和mouseY变量以及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
}
}无耻的自我推销:这里是一个关于如何在处理中获得使用输入的教程。
https://stackoverflow.com/questions/43484417
复制相似问题