問題タブ [2d]
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# - 破線パターンでペンを使用すると、WPF カスタム 2D 描画でパフォーマンスが大幅に (!) 低下するのはなぜですか?
ダッシュパターンのペンを使用できるように、誰かがこれに光を当ててくれることを願っていますか?
のXを使用して、WPFでスクロール可能なチャート (を実装するPanel
内部) を作成しています。それらをホストする で使用してスクロールする数千の があります。その上に を配置し、//を使用して一方の端から他方の端まで単純な水平線を描画することでグリッドを実装しました(注: これらの線は常に静的であり、移動することはありません)。ScrollViewer
IScrollInfo
DrawingVisual
DataContext.Draw
DrawingVisual
TranslateTransform
Panel
Panel
DataContext.DrawLine(pen, new Point(0, y), new Point(widthOfPanel, y));
スクロールのパフォーマンスはまったく正気ではありません (つまり、DrawingVisual は即座に描画され、スクロールも瞬時に行われます)。しかしPen
、グリッド ラインを描画するために破線パターン (たとえば、以下を参照) を使用する を使用すると、スクロールが非常にぎくしゃくし、パフォーマンスが 100 分の 1 に低下したように見えます (推定値)。なぜそれが起こるのか、どうすればこれを回避できるのか、誰でも説明できますか?
破線パターンのペンの例:
java - Java2Dとサイズ変更
再利用したい古いJava2Dコードがいくつかありますが、これが最高品質の画像を取得するための最良の方法であるかどうか疑問に思いました。
wpf - WPF:パスに沿って要素を見つける
この質問にはまだ回答済みのマークを付けていません。
現在承認されている回答は、報奨金の時間制限のために自動的に承認されました
このプログラミングゲームを参考に、現在制作中です。
上記のリンクからわかるように、私は現在、ユーザーがプログラム可能なロボットがアリーナで自律的に戦うゲームを構築しています。
ここで、ロボットが特定の角度で別のロボットを検出したかどうかを検出する方法が必要です (タレットがどこを向いているかによって異なります)。
代替テキスト http://img21.imageshack.us/img21/7839/robotdetectionrg5.jpg
上の画像からわかるように、ゲーム内でエミュレートする必要がある戦車の一種の視点を描画しました。その各ポイントをチェックして、別のロボットが視野内にあるかどうかを確認します。
ボットは、バトル アリーナ (別のキャンバス) で常に翻訳されている単なるキャンバスです。
タレットの方向 (現在向いている方向) を知っているので、そのパスにボットがいるかどうかを確認する必要があります (パスは、「視点」のような方法で定義する必要があります。上の赤い「三角形」の画像. この画像が、私が伝えようとしていることをより明確にしてくれることを願っています.
誰かがこの問題を達成するためにどのような数学が関係しているかを教えてくれることを願っています.
[アップデート]
教えていただいた計算を試してみましたが、正しく機能していません。画像からわかるように、 bot1 は Bot2 を見ることができないはずです。例を次に示します。
代替テキスト http://img12.imageshack.us/img12/7416/examplebattle2.png
上記のシナリオでは、ボット 1 はボット 2 が見えるかどうかを確認しています。詳細は次のとおりです ( Waylon Flinn の回答によると):
上記の計算によると、Bot1 は Bot2 を見ることができますが、画像からわかるように、それらは異なる方向を向いているため、それは不可能です。
上記の計算で何が間違っていますか?
java - Java 用の優れた 2D エンジン?
スプライト、アニメーション、衝突処理を備えた Java 用の優れた 2D エンジンを知っている人はいますか?
graphics - 低フレームレートで素敵なアニメーションを作成する
わかりました、これはばかげた質問のように聞こえるかもしれませんが、フレームレートが低いことがわかっているときに、オブジェクトをできるだけスムーズかつ迅速にアニメーション化する方法に関する推奨事項があるかどうか知りたいです。
私のアニメーションが行うことは、x と y の両方で約 10 個の 2d-rectangles (それぞれテクスチャを含む) を約 500 ピクセル移動し、約 1000*1000px からおそらく 30% に縮小することです。アニメーションは 200ms 程度で完了させたいと考えています。フレームレートは20~30fpsくらいだと思います。
さまざまなタイミングと移動速度を試してみましたが、どれもがらくたのように見えます。速度が速い場合はアニメーションがほとんど見えず、速度が遅い場合はスムーズに見えますが、時間がかかります。
スムーズに実行されているように見えるクイック アニメーションを実行する方法について調査が行われましたか。最初はゆっくりと加速し、最後はビクビクしたり、あるいはその逆の加速ができるのではないかと考えていました。私自身の実験はすべて、びくびくと遅いように見えます:P
私たち人間が見栄えが良いと考えるピクセル/フレームには、ある程度の制限が必要です。このようなガイドラインはどこにありますか?
なぜ私はこれを知りたいのですか?
いくつかのクールなアニメーションを実行するウィンドウ切り替えアプリを作成しましたが、問題は、グラフィックを多用するアプリケーションを実行していないときに、グラフィックカードが低電力モードになることです。これにより、一度に 3 秒以上実行されないアプリケーションのパフォーマンスが非常に低下します。これは、gfx カードが高速化する時間がないためです。
(ラップトップと Vista をお持ちの場合は、おそらくこれを自分で試すことができます: win+tab を押すと、アニメーションが少し途切れ途切れになっていることがわかります。次に、ムービーを開始して、win+tab をもう一度押すと、アニメーションがはるかにスムーズになります。 )。
java - Javaでタイルマップを作成するにはどうすればよいですか?
タイル画像tile.pngがあり、ウィンドウ全体にタイルマップを作成しようとしています。これをアプレットとして作成しています。これは私のペイント方法のように見えますが、効果的ではありません。アプレットを実行すると、約2秒かかり、すべてを一度にレンダリングするのではなく、画面全体が画像で左から右にペイントされます。また、それはすべて、tile.pngの40個の小さなインスタンスではなく、1つの大きなtile.pngのように見えます。
ところで、tile.pngファイルは10 x 10ピクセルですが、これは実際のimgです。
tile.png http://img12.imageshack.us/img12/1368/tile.png
編集:以下のコードを使用し、タイル画像を改善することでこれを修正しました。これが誰かを助ける場合の私の新しいタイル画像です:
java - ダブルバッファリングを使用してJavaでパックマンの口の開閉アニメーションを表示するには?
ゲームプログラミングを独学するために作っている使い捨てのパックマンゲームで、パックマンキャラクターの有名な口の開閉アニメーションを表示しようとしています。
私がやっていることは、開いた口の画像を描画してから、まったく同じ (x/y) の位置に閉じた口の画像を再描画することです。しかし、これは機能せず、閉じた口のアニメーションが常に表示されます。
これをループに入れると、システムがフリーズするだけで、開いた口の画像がちらつきますが、画像が置き換えられることはありません。
テストを行い、両方のイメージが正しく期待どおりにロードされていることを確認しました。
これが私のstartAnim()
関数です。アプレットをダブルクリックすると呼び出されます。
java - Javaゲームで400x400のウィンドウを地図として表現するには?
パックマンゲームを作っています。基本的に、ブロック/タイルで構成されるこのウィンドウのマップ表現が必要です。次に、パックマンのキャラクター/ゴーストが移動すると、マップ上の位置を変更して画面上の内容を表し、それを衝突検出などに使用します.
特に画面はx、y座標で構成されているため、このマップを作成するにはどうすればよいですか?タイル/このマップでそれらを正しく表現するにはどうすればよいですか?