問題タブ [java-canvas]

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.

0 投票する
0 に答える
245 参照

java - あるクラスのキャンバスに別のクラスからアクセスするにはどうすればよいでしょうか?

基本的に、あるクラスのメソッドで作成されたキャンバスにアクセスし、その同じキャンバスを別のクラスで使用しようとしていますが、それに何かを追加しようとしています。キャンバスを参照するにはどうすればよいですか。キャンバスを作成するクラスは次のとおりです (重要なのは 2 番目のメソッド [たとえば、Graphics ページと表示されているメソッド] です)。

セカンドクラス:

最初のクラスからページ/キャンバスにアクセスして、このクラスから描画するにはどうすればよいですか?

0 投票する
1 に答える
665 参照

java - マウスのクリック座標は常に 0 です

ご覧のとおり、マウス リスナーをゲームに追加しました。

これは私のマウス アダプター クラスです。基本的に必要なのは、マウスが押された場所の x、y 座標だけです。

X 座標と Y 座標を取得しようとすると、マウスが実際にクリックした場所ではなく、常に 0 になります。理由はわかりません。

0 投票する
1 に答える
165 参照

java - Java Canvas - 移動時の Rectangle2D スケール

キャンバスに一連の長方形を描いています。長方形はある角度で動くはずです。何らかの理由で、移動するとスケールアップします。

私の UpdateBounds メソッド:

Bounds は Rectangle2D オブジェクトです。そして私の描画方法:

なぜこのような動作をするのですか?

0 投票する
1 に答える
1124 参照

java - JavaFX 8でキャンバスに効率的に矢印を描く方法は?

JavaFX 8で矢印を描画するための非常にシンプルで効率的な方法を探しています.それを達成するための最良の方法は何ですか?

矢印

Canvas を使用して描画すると非常に効率的だと聞いたことがあります。

ただし、最適な実装が次のものであるかどうかはわかりません。

0 投票する
1 に答える
559 参照

java - 文字列の配列を Java のキャンバスに描画するにはどうすればよいですか?

私は文字の配列を持っています

と、文字を描くために作ってみた方法。

配列は Card というクラス (「pileOne」とも呼ばれます) でメソッドと一緒に宣言されていますが、Game という別のクラスでメソッドを呼び出そうとしています (カードのデッキ プログラムを作成しようとしています)。メソッドを描画しようとすると、(例):

エラーが発生します:

「Card 型のメソッド drawLetterValue(Graphics, String[], int, int) は、引数 (Graphics, String, int, int) には適用できません」

文字を配列として呼び出しているため混乱していますが、エラーは、文字列としてのみ呼び出していることを示しています。どんな助けでも大歓迎です、ありがとう!

0 投票する
0 に答える
258 参照

java - Java キャンバスとスプライトのエラー

特定の Canvas クラスがあり、Sprite に特別な celltype をロードしてから Canvas に描画したいと考えています。私は GUI と Canvas モデリングを初めて使用します。以下のコードの一部では、スプライト ローダーを実装する 3 行目で常に「未処理の型 IO 例外エラー」が発生します。Rectangles などを簡単に描画できますが、Sprite を読み込んで Image に変換することに失敗します。

編集:

}

0 投票する
0 に答える
952 参照

java - スクロール可能な Canvas を JFrame に追加する

スクロール可能な Canvas を に追加したいと思いJFrameます。Web に関するいくつかの調査により、スクロール可能な Canvas を Java アプレットとして使用するソリューションにたどり着きました。これを に適用しようとしJFrameた結果、次のようになりました。

正常に動作し、キャンバスはフレームに完全に正常に表示されますが、スクロール可能ではなく、再描画できません (たとえばbutton、の GUI で a を押して背景色を変更しますJFrame)。これは、スクロール可能なキャンバスを に追加する適切なアプローチではないか、JFrameあなたがよく知っていて私と共有できる何かが欠けています。

ありがたいことに

0 投票する
0 に答える
142 参照

java - JavaFX キャンバスの解像度

JavaFX の Canvas を使って 2D ゲームを実装しようと考えており、ユーザーが解像度を設定できるようにしたいと考えています。(常にフルスクリーンである必要があります) Canvas を試してみたところ、表示されている画面のネイティブ解像度に適応しているように見えますが、これはパフォーマンスの問題です。(Macbook Pro のパーティクル システムを外付けのフル HD スクリーンで実行したところ、60 fps に達しましたが、ウィンドウを組み込みの Retina スクリーンに移動すると、遅延が発生し始めました。)

JavaFX Canvas で実装されたゲームで複数の解像度をサポートする良い方法はありますか? そうでない場合、良い代替手段はありますか?私が JavaFX Canvas を使用したい理由は、単純さ (低レベルの詳細を扱う必要がない) のためです。

0 投票する
2 に答える
2824 参照

java - ゲーム内の大量のオブジェクトによる遅延を減らすにはどうすればよいですか?

明確にするために、ゲームの実行速度が遅い理由を知っています。現在の領域にさまざまなオブジェクトがたくさんあり、それらすべてのオブジェクトをチェックしてレンダリングする必要があります。オブジェクトを減らすだけで問題を解決する方法がわかりません。

私が探している答えは、ゲームに貼り付けるコードの束を作成するだけでなく、この問題を修正する方法の概念です。

RealTutsGMLによるチュートリアルに基づいてゲームを設計しています。ゲームを構築する彼の方法に対処しなければならなかったいくつかの問題がありましたが、私はそれらを理解しました.

そのため、ゲームのティックごとに、現在存在するすべてのオブジェクトを調べる必要があります。存在するオブジェクトが多いほど、それらすべてを処理するのに時間がかかります。たとえば、これらのオブジェクトが現在表示されていない場合、メモリを解放する方法を見つける必要があります。マインクラフトのようなゲームでは、チャンクを使用して未使用のメモリを解放することを知っています。(視距離外のブロックは生成されません) オブジェクトが多い環境でもラグがあまり発生しないようにするにはどうすればよいですか? ティックしてレンダリングする必要があるすべてのオブジェクトからの遅延がそれほど大きくなくても、大きなレベルを持つことができるようにしたいと考えています。

もう 1 つ明確にすることは、オブジェクトを簡単に作成および破棄できるように、レベルにロードされたすべてのオブジェクトが LinkedList に保持されることです。ティックごとに、これらのリンクされたリストを介して for ループを実行し、すべてのオブジェクトの動作とレンダリング方法を処理します。

[4月28日編集]

私が取り組んでいたゲームのオブジェクトは、非常にグリッドのような形式で編成されています。これには、タイル、プレイヤー、その他すべてのゲーム オブジェクトが含まれます。