18

私は現在、UI にネイティブ Android ビューを利用する Android アプリケーションを持っています (例: imageviews/buttons など)。

このアプリはゲームではなく、重いグラフィックスや OpenGL も必要としませんが、物理関連の操作を少し取り入れたいと考えています。あまり重要ではありませんが、小さな衝突/バウンス、減速/加速、または摩擦が表示される可能性があります。

Androidフレームワーク内で、またはゲームエンジン全体(andengine、libgxなど)を使用せずにjbox2dなどの外部物理ライブラリを使用してシミュレートすることは可能ですか?

PSこれはAPI 15+用です

皆さんありがとう。

4

4 に答える 4

1

最も簡単な方法 (それほど柔軟ではありません) は、ViewPropertyAnimatorを使用することです。

それを使用すると、プロパティを並行してアニメーション化できます。親の左からのビューマージンを変更したいかもしれません。そのマージンをそこで変更して、移動する時間を設定することができます。このブログのいくつかの例

ValueAnimatorは他の代替手段であり、デフォルトで AccelerateDecelerateInterpolator を使用し、必要なプロパティを変更するコードを提供する必要があります。この公式ガイドは、それらを機能させるのに十分かもしれません

于 2015-04-21T15:22:31.893 に答える
1

フレームごとに UI 要素の位置を設定/更新できる限り (たとえば、View.setTranslationX() を使用)、それを行うことができます。

UI を手動でアニメーション化するということは、UI 要素とそれに対応する物理的な (jbox2d などの) ボディとの間のマッピングを維持することを意味します。次に、UI 要素のそれぞれの位置を、シミュレートされたボディの各フレームの位置 (body.getPosition() など) に更新します。

イベント ドリブン アプリでは、Timer オブジェクトのようなものが、物理演算の更新をスケジュールするのに役立ちます。

于 2015-04-21T05:18:47.073 に答える
0

少なくともある時点で、これは達成できると思います。

かなり完全なAnimations APIにアクセスできます。この最後は、いくつかのビュー境界、距離、およびおそらくデバイスの向きの計算とともに、あなたが言及したほとんどすべてのケースをシミュレートするために使用できます。

加速/減速、フォームの変更など、ほぼすべてのアニメーションを作成できます。

あなたが求めていることをどのように達成できるか:
ビューアイテムの状態に応じて、異なるアニメーションを次々と作成して動的に適用します。状態とは、「物理的な状態」を意味します: 落下、衝突、別のビューとの接触など...

于 2015-04-18T01:02:29.753 に答える
0

あなたが望むものはまったく不可能です - あなたのオプションは次のとおりです。

  1. あなたはアニメーションでバウンスのようなものを偽造するかもしれません
  2. まったく新しい UI ライブラリを実装できます
  3. あなたは私がすることをopenGLを使用します
于 2014-02-06T16:49:55.340 に答える