我正在计算机科学课上使用Processing-java开发井字游戏。在我的程序中,最右边是一个状态栏,该状态栏说明该轮到哪个玩家,谁赢了,谁输了。此状态栏也垂直放置,因此在我的代码中,我正在旋转它,尽管它正确旋转,但这会引起另一个问题。状态栏出现在游戏屏幕上的某个区域,但是放置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();
}
答案 0 :(得分:2)
问题在于文本对齐。在placement()函数中有一个,在textDraw()函数中有一个。禁用这些选项时,文本将保留在同一位置。但是,这会弄乱X和O,因此您需要做一些工作来跟踪设置了文本对齐方式的位置。
作为一个更一般的技巧(因为您正在学习):首先将重点放在功能上。例如,您可以使用println()和数字键盘作为输入来构建TicTacToe。当游戏机制发挥作用时,您可以添加漂亮的用户界面。同时执行这两个操作通常会使混乱的代码易于产生难以调试的错误。我本人曾多次撞到那堵墙;)