如何更新数字窗口中的num2str而不覆盖

时间:2013-11-30 15:40:09

标签: matlab-figure

我目前正在制作游戏并需要得分才能在循环中更新。 每次分数在图中更新时,它会覆盖以前写入的文本,使其模糊。

代码如下:

score=score+100
text(90,105,num2str(score));

h=text(80,105,'SUN');
 set(h,'color','r');

1 个答案:

答案 0 :(得分:1)

您应该保留原始文本框的句柄,然后更新其“String”属性。而是继续在旧文本框之上创建一个新文本框。

目前无法访问matlab,但我认为这样的事情应该有效:

% first time you report score! create a text object; call it's handle "scoreBoard"
scoreBoard = text(x,y,num2str(score));

% something happens and we have new score:
set(scoreBoard, 'String', num2txt(score)); % update the string property of scoreBoard

或者,您可以删除旧对象并创建一个新对象。我怀疑上面给出的方法稍微有点效率。