私の質問のほとんどは、この素晴らしいコミュニティによって既に回答されているため、Stackoverflow に投稿するのはこれが初めてです。
ボタンが選択され、ボタンに応じて文字列が保存される非常に単純なプログラムを作成しようとしています。
GUI1 のボタンを選択してから GUI2 を表示できますが、GUI1 で作成したボタンはまだバックグラウンドにあり、有効になっています。
ボタンが重ならないように、それらを削除するか、完全に無効にしたいと思います。
Button want;
Button dwant;
Button eat;
Button sleep;
Button play;
Button read;
Button swim;
boolean showGUI1 = true;
boolean showGUI2 = false;
color bgCol = color(255);
void setup()
{
size(550, 900);
want = new Button("Want",140,300,250,150);
dwant = new Button("Dont Want",140,590,250,150);
eat = new Button("Eat",140,300,200,100);
sleep = new Button("Sleep",140,400,200,100);
play = new Button("Play",140,500,200,100);
read = new Button("Read",140,600,200,100);
swim = new Button("Swim",140,700,200,100);
}
void draw()
{
background(bgCol);
if (showGUI1)
{
want.display();
dwant.display();
}
if (showGUI2)
{
eat.display();
sleep.display();
play.display();
read.display();
swim.display();
}
}
void mouseReleased()
{
if(want.mouseReleased())
{
bgCol = color(255,0,0);
choice= "Want";
showGUI1 = false;
showGUI2 = true;
}
if(dwant.mouseReleased())
{
bgCol = color(0,255,0);
choice= "Dont Want";
showGUI1 = false;
showGUI2 = true;
}
//action GUI2 showing
if(eat.mouseReleased())
{
action= "Eat";
showGUI2 = false;
}
if(sleep.mouseReleased())
{
action= "Sleep";
showGUI2 = false;
}
if(play.mouseReleased())
{
action= "Play";
showGUI2 = false;
}
if(read.mouseReleased())
{
action= "Read";
showGUI2 = false;
}
if(swim.mouseReleased())
{
action= "Swim";
showGUI2 = false;
}
私のボタンには、次のコードを使用しています
Button(String nm, int x, int y, int w, int h)
{
super(nm, x, y, w, h);
}
void display()
{
if(currentImage != null)
{
float imgWidth = (extents.y*currentImage.width)/currentImage.height;
pushStyle();
imageMode(CORNER);
tint(imageTint);
image(currentImage, pos.x, pos.y, imgWidth, extents.y);
stroke(bgColor);
noFill();
rect(pos.x, pos.y, imgWidth, extents.y);
noTint();
popStyle();
}
else
{
pushStyle();
stroke(lineColor);
fill(bgColor);
rect(pos.x, pos.y, extents.x, extents.y);
fill(lineColor);
textAlign(CENTER, CENTER);
text(name, pos.x + 0.5*extents.x, pos.y + 0.5* extents.y);
popStyle();
}
}
ボタンにControlP5ライブラリを使用することもできますが、それでも「controlP5.Controller:Button hide()」(非表示機能)をアクティブにする方法がわかりません
誰かが光を当てることができれば、それは大歓迎です