旋转处理后的位置变化
Position changing after rotation processing
我正在使用 processing-java 在我的计算机科学 class 中开发井字游戏。在我的程序中,在最右侧我有一个状态栏,显示轮到哪个玩家,谁赢了,谁输了。这个状态栏也是垂直放置的,所以在我的代码中我正在旋转它,虽然它旋转正确,但它导致了另一个问题。状态栏出现在游戏屏幕的某个区域,但是放置一个X或O后,它会移动点,我不确定如何解决这个问题。放置另一块后,它会移动第二次,然后是第三次,然后最终确定它在我不希望它出现的区域中的位置。这是我关于文本和旋转的代码。
void updateStatus(String status) { // function to update the status message
fill(0);
rect(statusX, sbh, width, height-1);
stroke(#FFFFFF);
strokeWeight(4);
line(statusX, sbh, statusX, screenH); // Status line
fill(255);
String fullStatus = "It is player "+status+"'s turn";
//String fullStatus = "It is player X's turn";
float statusTxtX = width*15/16, statusTxtY = height*2.5/7;
pushMatrix();
translate(statusTxtX, statusTxtY);
rotate(HALF_PI);
textSize(55);
textFont(mainFont);
text(fullStatus, 0, 0);
//textDraw(status, mainFont, height, 255, CENTER, CENTER, statusX, height*3/12, width, height*1/2);
popMatrix();
}
问题出在文本对齐上。 placing() 函数中有一个,textDraw() 函数中有一个。当您禁用这些文本时,文本将保留在同一位置。但是,这会弄乱 X 和 O,因此您需要做一些工作来跟踪设置文本对齐的位置。
作为更一般的提示(因为您正在学习):首先关注功能。例如,您可以使用 println() 和小键盘作为输入来构建 TicTacToe。当游戏机制起作用时,您可以添加漂亮的用户界面。同时执行这两项操作通常会产生混乱的代码,容易出现难以调试的错误。我自己多次撞到那堵墙 ;)
我正在使用 processing-java 在我的计算机科学 class 中开发井字游戏。在我的程序中,在最右侧我有一个状态栏,显示轮到哪个玩家,谁赢了,谁输了。这个状态栏也是垂直放置的,所以在我的代码中我正在旋转它,虽然它旋转正确,但它导致了另一个问题。状态栏出现在游戏屏幕的某个区域,但是放置一个X或O后,它会移动点,我不确定如何解决这个问题。放置另一块后,它会移动第二次,然后是第三次,然后最终确定它在我不希望它出现的区域中的位置。这是我关于文本和旋转的代码。
void updateStatus(String status) { // function to update the status message
fill(0);
rect(statusX, sbh, width, height-1);
stroke(#FFFFFF);
strokeWeight(4);
line(statusX, sbh, statusX, screenH); // Status line
fill(255);
String fullStatus = "It is player "+status+"'s turn";
//String fullStatus = "It is player X's turn";
float statusTxtX = width*15/16, statusTxtY = height*2.5/7;
pushMatrix();
translate(statusTxtX, statusTxtY);
rotate(HALF_PI);
textSize(55);
textFont(mainFont);
text(fullStatus, 0, 0);
//textDraw(status, mainFont, height, 255, CENTER, CENTER, statusX, height*3/12, width, height*1/2);
popMatrix();
}
问题出在文本对齐上。 placing() 函数中有一个,textDraw() 函数中有一个。当您禁用这些文本时,文本将保留在同一位置。但是,这会弄乱 X 和 O,因此您需要做一些工作来跟踪设置文本对齐的位置。
作为更一般的提示(因为您正在学习):首先关注功能。例如,您可以使用 println() 和小键盘作为输入来构建 TicTacToe。当游戏机制起作用时,您可以添加漂亮的用户界面。同时执行这两项操作通常会产生混乱的代码,容易出现难以调试的错误。我自己多次撞到那堵墙 ;)