由backspace删除的文本未在我的arduino tft显示器(adafruit gfx库)上更新

问题描述 投票:0回答:1

对于大学,我们需要在Unity中制作一个由Arduino控制的游戏。我的想法是开发一款黑客游戏,其中Arduino在黑客入侵游戏中时充当“黑客设备”。 arduino将具有一个屏幕,并且在该屏幕上将是一个基本的命令行界面,可让我输入简单的命令来“破解”,但我在处理文本和清除文本时遇到了麻烦。

我已经能够使用unity将键入的字符以及退格功能发送到显示器(按退格键将删除字符串中的最后一个字符)

我在编写时清除所有文本时遇到了第一个问题(调用tft.print不会清除任何先前的文本)。我正在使用fillScreen,速度很慢。我发现setTextColor有第二个参数,让我将所有特定的彩色文本设置为不同的颜色。将其设置为黑色实际上会清除它。

这使它在写入屏幕时几乎立即更新,但是我现在遇到了一个新问题,退格将不再。

我的理解是,删除字符时,调用setTextColor时将不会更新其颜色,直到调用restart / fillScreen为止。”

我不太确定如何解决这个问题,所有的Google搜索几乎没有帮助。

这是我的文本更新代码:

void updateString(char c){
  tft.setTextColor(WHITE,BLACK);  
  if(c!='<'){
    //Add new character to end of string
    str.concat(String(c));
  }
  else if(c=='<' && str.length()>2){
    //Remove last character in string
    str.remove(str.length()-1);  
  }
  //Set cursor back to 0,0
  tft.setCursor(0,0);
  //Display text
  tft.print(str);
}

非常感谢您的帮助。

对于大学,我们需要在Unity中制作一个由Arduino控制的游戏。我的想法是开发一款黑客游戏,其中Arduino在黑客入侵游戏中时充当“黑客设备”。 ...

c++ arduino arduino-uno adafruit
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.