PDCurses 窗口在某些区域不打印字母
PDCurses window doesn't print letters in some areas
我在尝试编写roguelike时遇到了一种奇怪的行为。我用填充的矩形形状制作了一个简单的循环打印字母。使用普通(STDSCR)窗口或来自derwin()的新初始化窗口都可以正常工作。从derwin()。
我从游戏类返回窗口指针后开始出现问题。字母似乎是没有任何派的印刷的,窗户看起来像在其某些部分上覆盖。循环,返回指针时。
我尝试调试,但没有成功。光标正在移动,循环正在工作,字母打印,但有时它们陷入了星体投影水平,并且不会显示。
这是代码:game.cpp
Game::Game() : m_winMode(WinMode::GameWin) {
[...]
initscr();
wresize(stdscr, WIN_HGHT, WIN_WDTH);
m_gameWin = derwin(stdscr, GAMEWIN_HGHT, GAMEWIN_WDTH, 0, 0);
[...]
}
WINDOW * Game::getWindow(Game::WinMode t_mode) const {
[...]
switch (t_mode) {
case Game::WinMode::GameWin:
return m_gameWin;
break;
[...]
}
pdcurses -test.cpp-这是主要文件
#include "stdafx.h"
#include "Game.h"
#include "Map.h"
int main() {
Game game;
game.prepareScreen();
WINDOW * test = game.getWindow(Game::WinMode::GameWin);
wclear(test);
for (int i = 0; i <= 48; i++) {
for (int y = 0; y <= 120; y++) {
mvwaddch(test, i, y, '%');
}
}
wrefresh(test);
这是完整的代码:github.com/gebirgestein/pdcurses-test/tree/test/pdcurses-test/pdcurses-test
预先感谢。
调用SupWin创建并返回一个指针,并带有给定数量的线条,Nline和列,NCOLS的新窗口。窗口位于屏幕上的位置(begin_y,begin_x)。(此位置相对于屏幕,而不是与窗口orig。)窗口是在窗口中间的中间进行的,因此对一个窗口进行的更改会影响两个窗口。子窗与窗口orig共享内存。使用此例程时,有必要在Subwindow上调用Wrefresh之前在ORIC上致电TouchWin或Touchline。
调用derwin与调用Subwin相同,除了begin_y和begin_x相对于窗口orig而不是屏幕的来源。subwindows和派生的窗口之间没有区别。
从这里。在调用Wrefresh(test)。
相关文章:
- 如何循环打印顶点结构
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 如何在c++中打印目录
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 在线编译器中的分段C++没有打印消息
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 如何将结构插入到集合中并打印集合的成员
- 在循环C++中指定字符串之后,不会打印该字符串
- 以螺旋方式打印矩阵的程序.(工作不好)
- 从控制台中删除最后打印的元素
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何仅使用对象名称打印特定于对象的成员
- 回溯C++不打印函数,因此文件
- 在一定长度后从数组中打印时缺少整数
- 为什么这个 c++ 代码打印出长度 5,当我打印出字符串时,程序会自动终止?
- 在gem5中打印文件中的所有cache_blocks
- 打印数字图案
- PDCurses 窗口在某些区域不打印字母
- OpenGL:如何剪辑一个2D区域,以避免文本与GlutBitmap被打印出该区域