从ncurses窗口中的特定坐标获取字符

从ncurses窗口中的特定坐标获取字符,c,ncurses,curses,C,Ncurses,Curses,我必须用走廊和窗户画一个迷宫,我已经把画的部分画下来了,但是现在我的角色必须移动,不能穿过障碍物。这就是我试图用运动来检查障碍物的方法(在本例中用“O”表示) 我想我的问题是我不太了解mvwinch的回报是什么?还有整件事 可能会有一些额外的刷新,但我现在只是想让它工作。任何帮助都将不胜感激。chtype是一个无符号整数,它可以包含字符和视频属性(粗体、下划线、反转、闪烁)以及颜色。这是通过将这些值放入特定的chtype位来实现的 在ncurses中(与其他实现中一样),字符占用低位,允许您只需

我必须用走廊和窗户画一个迷宫,我已经把画的部分画下来了,但是现在我的角色必须移动,不能穿过障碍物。这就是我试图用运动来检查障碍物的方法(在本例中用“O”表示)

我想我的问题是我不太了解mvwinch的回报是什么?还有整件事


可能会有一些额外的刷新,但我现在只是想让它工作。任何帮助都将不胜感激。

chtype
是一个无符号整数,它可以包含字符和视频属性(粗体、下划线、反转、闪烁)以及颜色。这是通过将这些值放入特定的
chtype
位来实现的

在ncurses中(与其他实现中一样),字符占用低位,允许您只需与预定义的符号进行AND运算即可获得字符:

int ch = mvwinch(my_win, move_y, move_x) & A_CHARTEXT;

对于ncurses,
图表文本是八位(值255)。其他实现不一定使用该大小(16位由多个Unix供应商使用)。课程手册页面中有一节讨论了这些值。

您的问题具体是什么?这个代码有什么问题?你不明白什么?问题是“我如何检查窗口中某个位置的字符”,因为“MVWing(我的赢,移动,移动)”不能正常工作(可能我对MVWing返回的内容的理解是错误的);“工作不正常”不是问题描述。什么是“适当”?那么会发生什么呢?它不能正常工作,因为它实际上没有做任何事情,它只是忽略了“验证”,如果我加上猜测,这可能是因为mvwinch返回了一个chtype,但我不知道如何声明其中一个。
int ch = mvwinch(my_win, move_y, move_x) & A_CHARTEXT;