Printf 會抹掉螢幕(使用 MoSync 庫)

Printf erases the screen (using the MoSync library)

本文关键字:使用 MoSync Printf      更新时间:2023-10-16

我有一些简单的代码,看起来像这样:

printf("Press zero or back to exitn");
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();

这会运行,但是当它像这样时:

maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();
printf("Press zero or back to exitn");

printf擦除屏幕。

这是为什么呢?这是printf()的正常属性吗?我应该使用不同的打印功能来打印所有内容,而不是擦除所有内容?我知道我可以改用 MoSync 的 MaDrawText(),但我想知道是否有打印功能也可以使用。

这是

预期行为,printf()将在单独的屏幕中显示文本。另一种方法是maDrawText(int left, int top, const char* str);允许您在绘画区域中绘制文本。

您的代码可能如下所示:

//Draw the Rectangle
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
//Draw the text
maSetColor(0xffffff);
maDrawText(10,10,"Press zero or back to exit");
//Update the screen to reflect changes
maUpdateScreen(); 

您的第一个示例之所以有效,是因为您在更新屏幕之前调用了该函数,因此 printf() 不会在当前绘图之上绘制。