【发布时间】:2020-05-19 14:07:39
【问题描述】:
我正在尝试使用 C 创建一个蛇终端游戏。我正在使用 ncurses 从箭头键获取输入。
我正在绘制一个带有空白的简单边框,以获取蛇的“地图”。
void draw(){
for(int i = 0; i < cols; i++){
for(int j = 0; j < rows; j++){
if(i == 0 || i == cols-1 || j == 0 || j == rows-1)
mvaddch(i,j,'#');
else
mvaddch(i,j,' ');
}
}
refresh();
}
我遇到的问题是,列和行之间的间距不同。
行和列都初始化为20。所以我认为它应该是一个正方形。如果我向上/向下或向右/向左移动,移动速度也会发生变化。
这个问题发生在 terminal.app 和 iterm2 中。有没有办法改变它匹配的间距?
【问题讨论】:
-
水平打印两个“##”而不是一个。这改善了间距。如果这还不够好,那么终端就不是你的环境。
-
好的,谢谢。那是一种无赖,因为那对我来说还不够好。如果我向上/向下或向右/向左移动,移动速度也会发生变化。
-
速度将与间距对齐。你的蛇也只需水平使用两个字符。
-
或者在这两种情况下,水平一个字符和一个空格都会给人一种更流畅的印象。
-
建议(使用curses)打开一个用户窗口。然后通过像素而不是字符来导航。