Java 新叠加赢得';当mouseX和mouseY坐标匹配约束时,不要停留-处理3 void draw(){ 布尔onTheMoon=false; drawGrid();//旧的覆盖动画。 如果((mouseX>50)&&(mouseX50)&(mouseY800)&&&(mouseX400)&&(mouseY800)&&&(mouseX400)&(mouseY50)&&(mouseX50)&(mouseY800)和(mouseX400)和(mouseY800)&&(mouseX400)&(mouseY=x1&&mouseX=y1&&mouseY
大家好,我正在尝试在mouseX和mouseY坐标与上面代码中的top if语句的条件匹配后保持覆盖运行。我现在面临的问题是,当mouseX和mouseY离开旧覆盖显示的区域时,它会破坏动画。我正在测试不同的方法,但没有任何效果。有人有什么建议吗?根据您上面的评论,如果条件可以完成工作,那么听起来像是一个Java 新叠加赢得';当mouseX和mouseY坐标匹配约束时,不要停留-处理3 void draw(){ 布尔onTheMoon=false; drawGrid();//旧的覆盖动画。 如果((mouseX>50)&&(mouseX50)&(mouseY800)&&&(mouseX400)&&(mouseY800)&&&(mouseX400)&(mouseY50)&&(mouseX50)&(mouseY800)和(mouseX400)和(mouseY800)&&(mouseX400)&(mouseY=x1&&mouseX=y1&&mouseY,java,processing,Java,Processing,大家好,我正在尝试在mouseX和mouseY坐标与上面代码中的top if语句的条件匹配后保持覆盖运行。我现在面临的问题是,当mouseX和mouseY离开旧覆盖显示的区域时,它会破坏动画。我正在测试不同的方法,但没有任何效果。有人有什么建议吗?根据您上面的评论,如果条件可以完成工作,那么听起来像是一个,不需要do/while循环 有这样一个布尔表达式:(mouseX>800)&&&(mouseX400)&(mouseY50)&&(mouseX50)&(mouseY800)和(mouseX40
,不需要do/while
循环
有这样一个布尔表达式:(mouseX>800)&&&(mouseX<1000)&&(mouseY>400)&(mouseY<700)
您希望仅在满足此条件时调用moonLanding()
:
void draw(){
布尔onTheMoon=false;
drawGrid();//旧的覆盖动画。
如果((mouseX>50)&&(mouseX<150)&&(mouseY>50)&(mouseY<150)){
onTheMoon=真;
}
如果(在月日)
{
如果(!((mouseX>800)和(mouseX<1000)和(mouseY>400)和(mouseY<700))){
moonLanding();//新的覆盖方法
}
rocketShip();//调用我的rocketShip方法。使用mouseX和mouseY制作形状的火箭
}
这相当于:
void draw() {
boolean onTheMoon = false;
drawGrid(); // Old overlay animation.
if ((mouseX > 50) && (mouseX < 150) && (mouseY > 50) && (mouseY < 150)) {
onTheMoon = true;
}
if (onTheMoon)
{
if (!((mouseX > 800) && (mouseX < 1000) && (mouseY > 400) && (mouseY < 700))){
moonLanding(); // New overlay method
}
rocketShip(); // Calling my rocketship method. Rocket made of shapes using mouseX and mouseY
}
if(((mouseX>800)&&(mouseX<1000)&&&(mouseY>400)&(mouseY<700))==false){
moonLanding();//新的覆盖方法
}
如果你的程序需要更多的鼠标/边界条件,我有一个建议,就是将这些条件封装在一个可重用的函数中
例如:
if (((mouseX > 800) && (mouseX < 1000) && (mouseY > 400) && (mouseY < 700)) == false){
moonLanding(); // New overlay method
}
void draw(){
布尔onTheMoon=false;
drawGrid();//旧的覆盖动画。
if(isMouseOverTopLeft()){
onTheMoon=真;
}
如果(在月日)
{
如果(!isMouseOverBottomRight()){
moonLanding();//新的覆盖方法
}
rocketShip();//调用我的rocketShip方法。使用mouseX和mouseY制作形状的火箭
}
布尔值isMouseOverTopLeft(){
返回isMouseOverRect(50、50、150、150);
}
布尔值isMouseOverBottomRight(){
返回isMouseOverRect(8004001000700);
}
布尔ISMOUSEOVERECT(浮点x1、浮点y1、浮点x2、浮点y2){
return(mouseX>=x1&&mouseX=y1&&mouseY根据您上面的评论,如果
条件可以完成任务,则听起来像是一个,并且不需要do/while
循环
有这样一个布尔表达式:(mouseX>800)&&&(mouseX<1000)&&(mouseY>400)&(mouseY<700)
您希望仅在满足此条件时调用moonLanding()
:
void draw(){
布尔onTheMoon=false;
drawGrid();//旧的覆盖动画。
如果((mouseX>50)&&(mouseX<150)&&(mouseY>50)&(mouseY<150)){
onTheMoon=真;
}
如果(在月日)
{
如果(!((mouseX>800)和(mouseX<1000)和(mouseY>400)和(mouseY<700))){
moonLanding();//新的覆盖方法
}
rocketShip();//调用我的rocketShip方法。使用mouseX和mouseY制作形状的火箭
}
这相当于:
void draw() {
boolean onTheMoon = false;
drawGrid(); // Old overlay animation.
if ((mouseX > 50) && (mouseX < 150) && (mouseY > 50) && (mouseY < 150)) {
onTheMoon = true;
}
if (onTheMoon)
{
if (!((mouseX > 800) && (mouseX < 1000) && (mouseY > 400) && (mouseY < 700))){
moonLanding(); // New overlay method
}
rocketShip(); // Calling my rocketship method. Rocket made of shapes using mouseX and mouseY
}
if(((mouseX>800)&&(mouseX<1000)&&&(mouseY>400)&(mouseY<700))==false){
moonLanding();//新的覆盖方法
}
如果你的程序需要更多的鼠标/边界条件,我有一个建议,就是将这些条件封装在一个可重用的函数中
例如:
if (((mouseX > 800) && (mouseX < 1000) && (mouseY > 400) && (mouseY < 700)) == false){
moonLanding(); // New overlay method
}
void draw(){
布尔onTheMoon=false;
drawGrid();//旧的覆盖动画。
if(isMouseOverTopLeft()){
onTheMoon=真;
}
如果(在月日)
{
如果(!isMouseOverBottomRight()){
moonLanding();//新的覆盖方法
}
rocketShip();//调用我的rocketShip方法。使用mouseX和mouseY制作形状的火箭
}
布尔值isMouseOverTopLeft(){
返回isMouseOverRect(50、50、150、150);
}
布尔值isMouseOverBottomRight(){
返回isMouseOverRect(8004001000700);
}
布尔ISMOUSEOVERECT(浮点x1、浮点y1、浮点x2、浮点y2){
return(mouseX>=x1&&mouseX=y1&&mouseYdo/while
部分看起来可疑。请记住,您在draw()
中调用此部分,因此不会调用rocketShip()
(并且渲染无法继续)直到while循环完成执行。当鼠标位于50150边界框内时会发生什么?嗨,乔治,当鼠标点击50150边界时,会出现一个黑色背景,右下角有一个圆形。我希望覆盖层保持存在,直到mouseX和mouseY坐标达到新的条件(右下角的圆形)如果我要删除do/while,我还可以使用什么技术?do/while部分看起来可疑。记住你在draw()
中调用了它,所以rocketShip()
不会被调用(渲染无法继续)直到while循环完成执行。当鼠标位于50150边界框内时会发生什么?嗨,乔治,当鼠标点击50150边界时,会出现一个黑色背景,右下角有一个圆形。我希望覆盖层保持存在,直到mouseX和mouseY坐标达到新的条件(右下角的圆圈形状)如果我要移除do/while,我还可以使用什么其他技术?嗨,乔治,这非常有用。第二种方法是最好的方法,但我仍然希望第一种解决方案有效。第一种方法似乎是