图像将不会在处理java中绘制
我正在为uni做一个项目,我必须在处理过程中制作自己的记忆游戏,但我们不能使用我们还没有学会的代码。因此没有面向对象/类。它需要像基础一样非常简单 现在我知道它看起来不太好,但我没有太多的时间,所以就这样离开了。我现在唯一的问题是,点击一张卡后,它会显示该卡,但当我点击第二张卡时,它不会显示第二张卡。它会检查它是对是错。如果匹配,它将显示,如果不匹配,它将返回盲区。因此,当我点击第二张卡片时,当它知道它错了时,它立即显示出它的盲区 但是支票卡对账单放在展示卡之后,所以我真的很困惑。当它知道它是正确的,它会显示卡。现在我的代码是荷兰语的,但我认为它不会那么难读/理解。Kaart=卡片,een=一张,twee=两张等 代码如下:图像将不会在处理java中绘制,java,image,processing,draw,Java,Image,Processing,Draw,我正在为uni做一个项目,我必须在处理过程中制作自己的记忆游戏,但我们不能使用我们还没有学会的代码。因此没有面向对象/类。它需要像基础一样非常简单 现在我知道它看起来不太好,但我没有太多的时间,所以就这样离开了。我现在唯一的问题是,点击一张卡后,它会显示该卡,但当我点击第二张卡时,它不会显示第二张卡。它会检查它是对是错。如果匹配,它将显示,如果不匹配,它将返回盲区。因此,当我点击第二张卡片时,当它知道它错了时,它立即显示出它的盲区 但是支票卡对账单放在展示卡之后,所以我真的很困惑。当它知道它是正
void verstopKaart(float xpos, float ypos) {
image(blind, xpos, ypos, breedteKaart, hoogteKaart);
}
void kaartCheck() {
if (kaartEen == kaartTwee && beurt) {
scoreSpeler1 += 10;
beurt = false;
} else if (kaartEen == kaartTwee && !beurt) {
scoreSpeler2 += 10;
beurt = true;
} else if (kaartEen != kaartTwee && beurt) {
delay(2000);
verstopKaart(XPosKaartEen, YPosKaartEen);
verstopKaart(XPosKaartTwee, YPosKaartTwee);
beurt = false;
} else if (kaartEen != kaartTwee && !beurt) {
delay(2000);
verstopKaart(XPosKaartEen, YPosKaartEen);
verstopKaart(XPosKaartTwee, YPosKaartTwee);
beurt = true;
}
}
void mouseClicked() {
for (int i=0; i < kaartenHorizontaal; i++) {
for (int j=0; j < kaartenVerticaal; j++) {
if ((mouseX >= XPosKaart + (i * (breedteKaart + marge)) && mouseX <= (XPosKaart + (i * (breedteKaart + marge)) + breedteKaart) &&
mouseY >= YPosKaart + (j * (breedteKaart + marge)) && mouseY <= (YPosKaart + (j * (breedteKaart + marge)) + breedteKaart))) {
if (eenKaartOpen) {
kaartTwee = kaarten[i][j];
**image(kaarten[i][j], XPosKaart + (i * (breedteKaart + marge)), YPosKaart + (j * (breedteKaart + marge)), breedteKaart, hoogteKaart); // THIS WON'T DRAW OR DRAWS UNDERNEATH**
XPosKaartTwee = XPosKaart + (i * (breedteKaart + marge));
YPosKaartTwee = YPosKaart + (j * (breedteKaart + marge));
kaartCheck();
eenKaartOpen = false;
} else {
**image(kaarten[i][j], XPosKaart + (i * (breedteKaart + marge)), YPosKaart + (j * (breedteKaart + marge)), breedteKaart, hoogteKaart); // THIS WILL DRAW**
kaartEen = kaarten[i][j];
XPosKaartEen = XPosKaart + (i * (breedteKaart + marge));
YPosKaartEen = YPosKaart + (j * (breedteKaart + marge));
eenKaartOpen = true;
}
}
}
}
}
void verstopKaart(浮点XPO、浮点YPO){
图像(盲人、XPO、YPO、布里德卡尔特、胡特卡尔特);
}
void kaartCheck(){
if(kaartEen==kaartTwee&beurt){
分数1+=10;
beurt=假;
}else if(kaartEen==kaartTwee&&!beurt){
得分2+=10;
贝鲁特=真;
}否则如果(kaartEen!=kaartTwee和beurt){
延迟(2000年);
verstopKaart(XPosKaartEen、YPosKaartEen);
Verstopkart(XPosKaartTwee、YPosKaartTwee);
beurt=假;
}否则如果(kaartEen!=kaartTwee&&!beurt){
延迟(2000年);
verstopKaart(XPosKaartEen、YPosKaartEen);
Verstopkart(XPosKaartTwee、YPosKaartTwee);
贝鲁特=真;
}
}
void mouseClicked(){
对于(int i=0;i 如果((mouseX>=XPosKaart+(i*(breedteKaart+marge))&&mouseX=YPosKaart+(j*(breedteKaart+marge))&&mouseY-Hi,可能在第二张卡显示和再次隐藏之间没有足够的延迟?您可以使用计时器进行转换,或者尝试线程睡眠(5000)
在显示卡后,看看是否存在问题。您好,谢谢您的回复。我尝试了此操作,但仍然会发生同样的情况,因此我认为它显然有足够的时间,但它不会显示,非常混乱。我注意到的是,当我在显示卡后放置thread.sleep时,它将首先等待5秒,然后打开卡,应该是这样的这是我做的:void openKaart(float xpos,float ypos,int I,int j){try{image(kaarten[I][j],xpos,ypos,breedteKaart,hoogteKaart),Thread.sleep(5000)}catch(InterruptedException e){println(“Kaart niet gevoden”)}你的draw()
和setup()
循环?