Java 处理,在类中单击鼠标重新绘制
我想在课堂上画一个简单的点击来改变颜色。我试着打印声明,看它是否会重新绘制,但它根本没有重新绘制。点击就行了。有人知道为什么会这样吗? 这是到目前为止的代码Java 处理,在类中单击鼠标重新绘制,java,processing,Java,Processing,我想在课堂上画一个简单的点击来改变颜色。我试着打印声明,看它是否会重新绘制,但它根本没有重新绘制。点击就行了。有人知道为什么会这样吗? 这是到目前为止的代码 Monster firstmonster; Monster secondmonster; void setup() { size(600,400); firstmonster = new Monster(100,200); secondmonster = new Monster(300,200); firstmonste
Monster firstmonster;
Monster secondmonster;
void setup() {
size(600,400);
firstmonster = new Monster(100,200);
secondmonster = new Monster(300,200);
firstmonster.draw();
secondmonster.draw();
noLoop();
}
class Monster {
float xpos;
float ypos;
boolean isAngry;
int timeAngry;
Monster(float x, float y) {
xpos = x;
ypos = y;
isAngry = false;
timeAngry = 0;
}
void draw() {
if(isAngry = true && timeAngry<60){
print(int(timeAngry));
timeAngry=timeAngry+1;
rectMode(CENTER);
fill(127-timeAngry*5,0,0);
rect(xpos+100,ypos+100,20,100);
fill(255,200,200);
ellipse(xpos+100,ypos+70,60,60);
ellipse(xpos+81,ypos+70,16,32);
ellipse(xpos+119,ypos+70,16,32);
line(xpos+90,ypos+150,xpos+80,ypos+160);
line(xpos+110,ypos+150,xpos+120,ypos+160);
} else {
timeAngry = 0;
rectMode(CENTER);
print(int(timeAngry));
fill(127,0,0);
rect(xpos+100,ypos+100,20,100);
fill(255,200,200);
ellipse(xpos+100,ypos+70,60,60);
ellipse(xpos+81,ypos+70,16,32);
ellipse(xpos+119,ypos+70,16,32);
line(xpos+90,ypos+150,xpos+80,ypos+160);
line(xpos+110,ypos+150,xpos+120,ypos+160);
}
}
void mousePressed(){
poke();
}
void poke(){
isAngry = true;
print(timeAngry);
timeAngry=timeAngry+1;
redraw();
}
}
void mousePressed(){
firstmonster.mousePressed();
}
Monster-firstmonster;
怪物第二怪物;
无效设置(){
尺寸(600400);
第一个怪物=新怪物(100200);
第二个怪物=新怪物(300200);
firstmonster.draw();
第二个怪物。draw();
noLoop();
}
类怪物{
浮动XPO;
浮动YPO;
布尔伊桑格里;
我生气了;
怪物(浮动x,浮动y){
xpos=x;
ypos=y;
isAngry=假;
TimeAnger=0;
}
作废提款(){
如果(isAngry=true&&timeAngry您的代码中没有全局的void draw(){..}
,那么重画
就没有什么可触发的。将应该作为帧的一部分绘制的代码移出setup()
。毫不奇怪,setup是用于一次性设置代码的
void setup() {
size(600,400);
firstmonster = new Monster(100,200);
secondmonster = new Monster(300,200);
noLoop();
}
void draw() {
firstmonster.draw();
secondmonster.draw();
}
我们应该做到这一点