c++ - Printf 删除屏幕(使用 MoSync 库)

标签 c++ mosync

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

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

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

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

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() 不会在您当前的绘图之上绘制。

关于c++ - Printf 删除屏幕(使用 MoSync 库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667166/

相关文章:

c++ - 用虚函数保护继承

ubuntu - 在 Ubuntu 上构建 mosync

c++ - 如何有效地在四叉树中存储游戏对象

c++ - 编译器错误 __ZTVN13..6..E

c++ - 将数据从客户端发送到 SQL 数据库 (MoSync)

c++ - 无需强制转换即可访问 C++ vector 元素

c++ - MoSync C++ 跨平台开发

c++ - 我们如何从 boost::asio::tcp::ip::read_some 调用中顺序接收多个数据?

c++ - 在 C++ 中的类头外部实现运算符重载

c++ - 确定与 COM RPC 服务器通信的客户端进程的进程 ID