NCurses 不断更新 moveCursor 中的 x 和 y 坐标
NCurses continously update x and y coordinate in moveCursor
我想制作某种具有蛇类机制的游戏,您可以在其中使用箭头键更改蛇的坐标。但是由于变量的重新分配不是 haskell 中的事情,我不确定如何执行此操作。这是我的代码:
import Control.Monad
import UI.NCurses
main :: IO ()
main = runCurses $ do
w <- defaultWindow
forever $ do
e <- getEvent w Nothing
updateWindow w $ do
moveCursor 0 0
drawString (show e)
render
我希望它打印按下的键 (drawString (show e)
),然后将光标更改为前一个 x+1、前一个 y+1,然后绘制下一个按下的键,然后更改光标,依此类推。
您如何在 NCurses 中执行此操作?如果可以重新分配,那就很简单了,比如
loop forever:
moveCursor x y
print
x = x+1
y = y+1
但是重新分配不起作用,那么我能做些什么呢?
curse、ncurse 和 recurse:
loop w x y = do
e <- getEvent w Nothing
updateWindow w $ do
moveCursor x y
drawString (show e)
render
loop w (x+1) (y+1)
main = runCurses $ do
w <- defaultWindow
loop w 0 0
我想制作某种具有蛇类机制的游戏,您可以在其中使用箭头键更改蛇的坐标。但是由于变量的重新分配不是 haskell 中的事情,我不确定如何执行此操作。这是我的代码:
import Control.Monad
import UI.NCurses
main :: IO ()
main = runCurses $ do
w <- defaultWindow
forever $ do
e <- getEvent w Nothing
updateWindow w $ do
moveCursor 0 0
drawString (show e)
render
我希望它打印按下的键 (drawString (show e)
),然后将光标更改为前一个 x+1、前一个 y+1,然后绘制下一个按下的键,然后更改光标,依此类推。
您如何在 NCurses 中执行此操作?如果可以重新分配,那就很简单了,比如
loop forever:
moveCursor x y
print
x = x+1
y = y+1
但是重新分配不起作用,那么我能做些什么呢?
curse、ncurse 和 recurse:
loop w x y = do
e <- getEvent w Nothing
updateWindow w $ do
moveCursor x y
drawString (show e)
render
loop w (x+1) (y+1)
main = runCurses $ do
w <- defaultWindow
loop w 0 0