如何解决用户单击后如何在网格板上的图块中交换图像?
我正在制作一个游戏,该游戏可以翻转网格板上的图块以在图像之间翻转,并且当所有图块都变为同一图像时,用户将获胜。我当前的问题是在带有if语句的mousepressed()中,该语句根据用户单击的图块来交换图块。我在抱怨类型不兼容时出错,我不确定如何解决此错误。我将添加用于拼贴的图像。
final int NUM_TILES = 4;
PImage image1,image2;
PImage [][] imageShown;
PImage [][] board;
int sqSide;
float randValue = random(1,2);
void setup(){
size(500,500);
sqSide = width/NUM_TILES;
imageShown = new PImage[NUM_TILES][NUM_TILES];
board = new PImage[NUM_TILES][NUM_TILES];
image1 = loadImage("helloseal.jpg");
image2 = loadImage("very-rotund.jpg");
displayPuzzle();
}
void draw(){
}
void displayPuzzle(){
for(int i=0; i<NUM_TILES; i++){
for(int j=0; j<NUM_TILES; j++){
image(board[i][j],j*sqSide,i*sqSide);
}
}
}
int clickedRow,clickedCol;
void mousepressed(){
clickedRow = int(mouseY/sqSide);
clickedCol = int(mouseX/sqSide);
if(board[clickedRow][clickedCol] == 1){
board[clickedRow][clickedCol] = 2;
image(image2,clickedCol*sqSide,clickedRow*sqSide);
}else if(board[clickedRow][clickedCol] == 2){
board[clickedRow][clickedCol] = 1;
}
if (checkGameOver() == true){
System.exit(0);
}
}
boolean checkGameOver(){
for(int row=0; row<NUM_TILES; row++){
for(int col=0; col<NUM_TILES; coL++){
int randValue = int(random(1,2));
if( randValue == 1){
imageShown[row][col] = 1;
return false;
}
}
return true;
}
}
解决方法
看起来您正在尝试将PImage与整数进行比较,将1和2替换为“ image1”和“ image2”应该可以解决此问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。