旋转处理后的位置变化

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。当游戏机制起作用时,您可以添加漂亮的用户界面。同时执行这两项操作通常会产生混乱的代码,容易出现难以调试的错误。我自己多次撞到那堵墙 ;)