Необходимо отображать значение счетчика внутри окна, когда пользователь нажимает на поле - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь провести эксперимент через Pavlovia, который включает в себя задание на рабочую память, где участникам показывают математические задачи, за которыми следуют буквы, а затем в конце каждого набора они должны вспомнить, какие буквы были представлены, щелкнув какие буквы были представлены к ним на сетке 4x3 (изображение прилагается).

буквенная сетка

Чтобы эта работа работала, мне пришлось написать компонент кода JS, который печатает вывод счетчика кликов в каждом поле, по которому щелкнули. Однако мне не удалось получить вывод счетчика для отображения на любом из полей. У меня также нет опыта работы с JS, поэтому у меня много проблем с отладкой кода. Я надеялся, что кто-то более опытный сможет указать, где ошибка, из-за которой вывод текста не отображается в поле. Вот текущий код:

numClick = 0;
mouse.x = [];
mouse.y = [];
mouse.leftButton = [];
mouse.midButton = [];
mouse.rightButton = [];
mouse.time = [];
prevButtonState = mouse.getPressed();

let buttons = mouse.getPressed(); // read mouse state
const xys = mouse.getPos(); // get mouse coordinates
mouse.x.push(xys[0]); // add mouse coordinates to x/y list, in principle for data storage, but not 
                          implemented right now
mouse.y.push(xys[1]);
mouse.leftButton.push(buttons[0]); // store buttons in button list, likewise for storage
mouse.midButton.push(buttons[1]);
mouse.rightButton.push(buttons[2]);
//debug code
//console.log('x location: ' + String(mouse.x) + ' y location: ' + String(mouse.y));

mouse.time.push(mouse.mouseClock.getTime()); // get mouse time, again for storage that is not 
                                                implemented
if (!buttons.every( (e,i,) => (e == prevButtonState[i]) )) { // button state changed?
prevButtonState = buttons; //button state as of last frame, makes sure holding mouse down has not 
                          affected anything
  //debug code
  //console.log('new button state detected');
  if (buttons.reduce( (e, acc) => (e+acc) ) > 0) { // state changed to a new click
  // check if the mouse was inside our 'clickable' objects
   gotValidClick = false;
  if (F_box.contains(mouse)) {
    numClicks++;
    F_num.text = numClicks.toString();
} else if (H_box.contains(mouse)) {
      numClicks++;
      H_num.text = numClicks.toString();
} else if (J_box.contains(mouse)) {
      numClicks++;
      J_num.text = numClicks.toString();
} else if (K_box.contains(mouse)) {
      numClicks++;
      K_num.text = numClicks.toString();
} else if (L_box.contains(mouse)) {
      numClicks++;
      L_num.text = numClicks.toString();
} else if (N_box.contains(mouse)) {
      numClicks++;
      N_num.text = numClicks.toString();
} else if (P_box.contains(mouse)) {
      numClicks++;
      P_num.text = numClicks.toString();
} else if (Q_box.contains(mouse)) {
      numClicks++;
      Q_num.text = numClicks.toString();
} else if (R_box.contains(mouse)) {
      numClicks++;
      R_num.text = numClicks.toString();
} else if (S_box.contains(mouse)) {
      numClicks++;
      S_num.text = numClicks.toString();
} else if (T_box.contains(mouse)) {
      numClicks++;
      T_num.text = numClicks.toString();
} else if (Y_box.contains(mouse)) {
      numClicks++;
      Y_num.text = numClicks.toString();
}

}}

Заранее спасибо!

...