問題タブ [pdcurses]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Pdcurses での文字列出力
ゲームをプログラムするために C++ でpdcursesを使用していますが、文字列を出力しようとすると問題が発生します。
基本的に、関連するプログラムは次のようになります。
プログラムは部隊内のバニーの名前を出力するはずですが、実際には<
oru
または@
...のようなランダムな文字を出力します。
私の推測ではtroop.getname
、main()
バニーの名前を格納する正しいメモリを指し示すのに問題がある可能性があるため、出力は不規則な文字になります。mvprintw
しかし、チェーン---> troop.getname()
--->は簡単なように感じるので、理由がわかりませんbunpointer.bgetname
...
c - curses.h を使用してプログラムの makefile を作成する方法
curses.h を使用して、以下のサンプル コードのメイクファイルを作成するのに苦労しています。
Netbeans にライブラリとヘッダーを含めましたが、makefile でビルドしようとすると:
それは私に与えます:
BUILD FAILED (終了値 2、合計時間: 150ms)
c++ - stdscr で色が機能しないのはなぜですか? (PDCurses)
そのため、コンソール アプリケーションに色を追加するために pdcurses を使用していますが、問題が発生しています。2 番目のウィンドウを作成してその出力に色を付けようとすると、問題なく動作しますが、stdscr に色を付けようとしても何も起こりません。
stdscr は通常どおり stdout に送信する出力を受け取り、コンソールへの C++ スタイルのインターフェイスを使用できるため、別のウィンドウで覆うのではなく、stdscr を使用し続けたいと考えています。出力を cout に送信すると、stdscr に送られます。これが、pdcurses への C++ インターフェイスを使用する方法として現在私が知っている唯一の方法です。さらに、他のライブラリは出力を stdout に直接送信する場合があり、stdscr を使用するとその出力が失われることはありません (print
聞いた上で lua の機能を知っています)。
サンプルコードは次のとおりです。
pdcurses を初期化する方法は次のとおりです。
私は何を間違っていますか?
c++ - pdcurses の静的デバッグ ビルドを VS2013 とリンクできない
pdcurses をダウンロードしてコンパイルしました。私が使用したドキュメントから指示されたように:
また、DEBUG タグなしで pdcurses をビルドして、リリース モードにできるようにします。
今、pdcurses を静的にリンクしたいプロジェクトがあります。MT と MTd をランタイム ライブラリとして使用し、デバッグ時には DEBUG ビルドの .lib ファイルをリンクし、リリース時には他の .lib ファイルをリンクします。
リリース モードでプロジェクトをビルドするとすべて正常に動作しますが、デバッグでビルドしようとすると次のエラーが表示されます。
問題が何であるかについてのアイデアはありますか?
scroll - PDcurses のスクロールの問題
コンソールに大きなデータ出力が必要なときはいつでも setconsolescreenbuffersize() を使用するだけなので、データ量がコンソールのサイズを超えた場合はいつでもスクロールバックできます。
ただし、 pdcurses を使用すると、ウィンドウがその内容を記憶するようにできないようです。スクロール可能に設定してスクロールバックしようとすると、空の行が表示されます。WINDOW データ構造を調べましたが、データ バッファに似たものは見つかりませんでした。curses ウィンドウのバッファを自分でコーディングする必要がありますか?
これがプログラムの例です。パッドを作成し、1 から 100 までの数字を出力し、その後スクロールして 1 番に戻ることになっています。ただし、数字の代わりに何もありません。
c++ - pdcurses/ncurses でウィンドウを重ねる
追加のライブラリ pdcurses (ncurses) を使用している最初のプログラムについて助けが必要です。ポップアップウィンドウを作成しましたが、動作します。問題は、このウィンドウを削除しようとしたときです。ご想像のとおり、削除しましたが、空白はまだ残っています。最初は大したことないと思っていましたが、背景 (別のウィンドウ) をもう一度作り直すことができました。真実と違うことがあってはならない。create_rightwin(col, row); を使用してウィンドウを再作成しているとき、create_leftwin(col, row); 繰り返しになりますが、これらのウィンドウのこの部分は壊れており、ポップアップ ウィンドウとは接触していません。Attron がオンになっているようで、他のウィンドウのタイトルはすべて予約されています。wintouch() を使用する必要があることをインターネットで読みましたが、いつ、どのように使用すればよいかわかりません。誰かに同様の問題がありましたか?
c++ - Curse のイベント キューをクリアする方法はありますか?
PDCurses からマウスの位置データを取得しようとしていますが、通常は機能します。問題は、イベント チェックが行われる前にマウス ボタンが 2 回押された場合、イベントの 1 つだけがキューから取り出されることです。これは、2 回目のプレスのイベントがまだキューにあり、次にマウスが押されたときに、最新の場所ではなく古い場所がポップされることを意味します。これが繰り返されると、キューがバックアップされ始め、報告されたマウスの押下がますます最近のものではなくなります。
私が使っgetch
ているのはマウス イベントだけなので (GetAsyncKeyState
キーボード イベントには Windows と独自のマネージャーを使用しています)、マウス イベントを読み取った後にイベント キューをクリアするだけで簡単に解決できると思いました。
残念ながら、キューをクリアできるメソッドが見つからないため、それほど簡単ではないようです。
私が考えることができる唯一の方法は、getch
を使用して非ブロッキングに設定しnodelay
、次に を繰り返し使用getch
して、ポップされた最後のイベントを保持することでした。しかし、それは非効率的で不正確に思えます。
これは潜在的に XY 問題であるため、問題の関数は次のとおりです。
EventHandler.h:
EventHandler.cpp:
c - PDcurses mvprintw 構造体エラー
私は PDCurses を使用しており、それを使用して映画のリストを表示したいと考えています。
私のコードはこれです:
}
なぜ機能しないのですか?そして、mvprintw(i,0,"toto") を入力すると機能するのはなぜですか?
助けてください!!!! 私は来月のためにそれをする必要があります:)