Изменение положения после обработки вращения - PullRequest
0 голосов
/ 06 декабря 2018

Я работаю над игрой в крестики-нолики на уроке информатики с использованием 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();
}

1 Ответ

0 голосов
/ 08 декабря 2018

Проблема с выравниванием текста.В функции place () есть одна, а в функции textDraw () одна.Когда вы отключите их, текст останется в том же месте.Тем не менее, это испортит X и O, поэтому вам нужно будет поработать над трассировкой, где установлено выравнивание текста.

В качестве более общего совета (поскольку вы изучаете): putВаше первое внимание к функциональности.Например, вы можете построить TicTacToe, используя println () и цифровую клавиатуру в качестве входных данных.Когда игровая механика сработает, вы можете добавить приятный пользовательский интерфейс.Одновременное выполнение обоих этих действий часто приводит к запутанному коду, который подвержен ошибкам, которые трудно отладить.Я сам врезался в эту стену много раз;)

...