你好我是C程序設計新手,但我正在製作一款遊戲菜單。我在顯示的ascii藝術品中有一條魚,每0.5秒就會移動一個字符。我通過一個簡單的循環來完成這個任務,並且它會繼續穿過屏幕,然後當它到達最後時,魚被清除,然後再次重複。現在,當這個動畫正在進行時,我想提示用戶輸入,但是當我用getchar或scanf做到這一點時,例如魚循環等待,直到我按下某個東西,動畫停止,直到我按下一個鍵。請讓某人請解答我的問題?如何在循環中獲取角色而不停在循環中?
謝謝你
你好我是C程序設計新手,但我正在製作一款遊戲菜單。我在顯示的ascii藝術品中有一條魚,每0.5秒就會移動一個字符。我通過一個簡單的循環來完成這個任務,並且它會繼續穿過屏幕,然後當它到達最後時,魚被清除,然後再次重複。現在,當這個動畫正在進行時,我想提示用戶輸入,但是當我用getchar或scanf做到這一點時,例如魚循環等待,直到我按下某個東西,動畫停止,直到我按下一個鍵。請讓某人請解答我的問題?如何在循環中獲取角色而不停在循環中?
謝謝你
你不能用任何標準輸入方法做到這一點。你將不得不使用類似ncurses的東西,或者將終端設置爲原始模式並進行一些漂亮的操作。我不知道你在使用什麼平臺,但在Linux下原始模式很困難,而在Windows下更難,所以如果可以的話,我會堅持使用一個庫。
@JohnRiselvato,這是不禮貌的。 – Beta 2012-02-09 03:29:42
嘿克里斯,你能詳細談談爲什麼你會用這個而不是線程嗎? – 2012-02-09 03:42:16
@JohnRiselvato:最大的問題是終端不是多線程可以輕鬆共享的。即使線程使它*可能*用戶開始輸入的瞬間就會變得亂七八糟和奇怪。在最低限度你需要做一些事情,如關閉回聲。是的,線程確實可以讓工作更輕鬆。但是,如果你這樣做,他們不是必需的,坦率地說,任務線程似乎有點重量級。 – 2012-02-09 03:59:44