2012-06-29 13 views
5

Javaで多くの経験はありませんが、私はそれに慣れるため単純な不正なゲームを作成しようとしています。このようなインターフェースをどうやって作成すればいいのだろうかと思っています。Javaを使用したパネルでグリッドにASCIIを表示する最善の方法は何ですか?

A screen from JADE by Thomas Biskup このようなことについてはっきりわかる方法はありますか? Javaに慣れていないので、最良の方法が何であるかわかりません。

残念です!

おかげ

+4

テキストモードの代わりにSwing GUIアプリケーションを作成します。それははるかに簡単で、よりきれいな結果を証明しようとしています。 –

+2

JavaはASCIIではなくUnicodeを使用します。注意してください。 –

+0

ありがとう、私は今スイングを探しています。 Eclipseで動作するSwing Window Editorはありますか?私が見つけたものはすべて古代のようです。 –

答えて

4

JDKには、このような(単純な)コンポーネントはありません - あなたは色を必要としない場合は、JTextAreaには(固定幅フォントを設定した後)、ASCIIアートを表示するために使用することができます。あなたはキャラクタセットの問題に遭遇しないように気をつける必要があります(US-ASCII 7ビットに固執しない場合)。 カラー表示を扱うコンポーネント(そしておそらくエスケープシーケンス、つまりコンソールウィンドウをエミュレートするコンポーネント)を書くことはあまり難しくありませんが、Javaで始まったばかりの方は歓迎されないかもしれません。

ゲームをJavaで書くだけで、システムコンソールにASCIIを表示したままにすることもできます(あなたのゲームはstdoutに簡単に出力されます)。

編集:ASCIIは、内部形式を(シンプルな)HTMLに変換し、HTMLをJLabelを使用して表示することができます。おそらく最も洗練された方法ではないかもしれませんが、実装するのは合理的に簡単でなければなりません(そして今日ではハードウェアの速度もこのアプローチの問題ではありません)。このアプローチは、JLabel.setText()を使用し、HTMLタグで始まる文字列を渡すだけの機能をベースにしています。 JLabelはテキスト全体をHTMLとして解釈します。

+0

私は(最初の2つの段落を読んだ後に)言うつもりだったが、モノスペースのフォントを使用してHTMLでフォーマットし、それをJLabelに入れることはできないだろうか...避けたいのは再描画フリッカーだ前に単一のコントロールにすべてを表示するときにその問題にぶつかりました。以前はJavaでこれをやろうとしたことはありませんでした。私は思いついて、私が思いつくことができるものを見ます。ありがとう! –

2

TrystanのAscii Panelと、彼のブログとチュートリアルのroguelikeの作成についてはhereをご覧ください。