C - Ncurses - 如何阻止光标移动到墙壁上(由一堆字符组成的墙壁)

时间:2014-07-09 12:42:44

标签: c ncurses

是否有可用的方法或功能可以阻止我查看角色。迷宫如下所示。我其实不使用printf,而是使用mvprint。我刚才用printf作为例子。

printf("xxxxxx x");
printf("xxxxxx x");
printf("xxxxxx x");
printf("x      x");
printf("x xxxxxx");
printf("x xxxxxx");

我尝试了下面的代码,但它似乎不起作用。光标仍然超过x个字符。在代码的第三行,你可以看到我已经说过,如果有一个字符'f',它是由上面看到的一堆printf语句创建的,那么光标就不应该移动。这似乎不起作用。

if(m == 's')
{
    if((oldy+1,x)=='x') // This is the part of the code where i say that if the next spot is an 'x' dont move.
    {
        mvprint(win, 10,0,"Sorry, you cant move there.");   
        refresh(win);
    }
    else
    {
        move((y= oldy+1),x);
        refresh();
        oldy = y;
    }
}

1 个答案:

答案 0 :(得分:1)

经过一些研究,我认为你想要你的内在条件:

if(mvinch(oldy+1,x) == 'x')

mvinch(y,x)函数移动并返回该位置的字符。

另外,正如其他人提到的那样,混合标准I / O和Curses充其量是不可靠的。当我在我的机器上尝试这样的东西进行测试时,我的程序告诉我整个屏幕都是由空格组成的。