1

これにアプローチする方法がわかりません。犬の散歩を見せたいアプリをやっています。このようなアニメーションはどこから始めればよいでしょうか?

*写真のコレクション (ステップバイステップ ウォーク) を取得し、それらをすばやく読み込みますか?

* 犬の散歩の GIF 画像を取得して、どうにかして Android にロードしますか?

*プログラムでピクセルを移動します (そうでないことを望みます!)

*私が認識していない他のライブラリまたはソリューション?!

その分野で読み始めることができるように、そのようなことがどのように行われるかを助けてください

ありがとうございました

4

3 に答える 3

3

画像が段階的にある場合は、Xml を使用して、AnimationDrawable

たとえば、最初にフォルダファイルxml内にアニメーション化されたファイルを作成しますdrawable

walk_dog.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot="false">
  <item android:drawable="@drawable/step1" android:duration="200" />
  <item android:drawable="@drawable/step2" android:duration="200" />
  <item android:drawable="@drawable/step3" android:duration="200" />
  <item android:drawable="@drawable/step4" android:duration="200" />
</animation-list>

ImageViewセットにandroid:background="drawable/walking_dog"

アクティビティonCreate追加時

//walkingdog -> is the imageview id
ImageView walkingDog = ( ImageView ) findViewById(R.id.walkingdog);

//now start walk
AnimationDrawable theDogAnimation = (AnimationDrawable) walkingDog.getBackground();
theDogAnimation.start();

結果

ここに画像の説明を入力

于 2013-11-03T23:43:16.080 に答える
1

個人的には、最初のアプローチの修正バージョンを使用します。犬の散歩アニメーションのすべてのフレームを含むイメージ ファイルを作成します。次のように Rects を使用してキャンバスに犬を描きます

canvas.drawBitmap(dogBitmap, sourceRect, destinRect, null);

ここdogBitmapで、 は犬のアニメーションのビットマップ、sourceRectは現在のアニメーション フレームのピクセル座標を含む Rect オブジェクトdestingRect、犬を描画する画面座標を含み、最後の null は次の場合にのみ必要なペイント用です。画像をフィルタリングしたい。次に、フレームごとに sourceRect を移動します。ただし、多くの (大きな) 画像ファイルを Android アプリケーションにロードすると、Android はロードされたビットマップを非圧縮で保存するため、ヒープ制限を超える可能性があることに注意してください。

アニメーション プログラムで使用される別の方法 (「プログラムでピクセルを移動する」の方向に少し進む) は、骨格アニメーションを使用することです。スケルトン アニメーションを使用すると、標準的なポーズの犬のモデルのみが必要になり、アニメーション ボーンを使用してすべてのフレームで他のポーズをモデルに適用できるという利点があります。残念ながら、この手法の実装を提供する Android ライブラリは知りません。また、おそらく自分でアニメーションをモデリングする必要があります。

于 2013-11-03T23:20:34.360 に答える
1

単純な 2D ゲームを作成する場合は、スプライト アニメーションを作成します。

ここに画像の説明を入力

このテーマに関する優れたチュートリアルをご覧ください。これは、彼の回答の最初の段落で説明されている maddin45 のアプローチですが、私が指しているチュートリアルでは、それをより完全に説明しています。

しかし、実装の詳細に悩まされない、より単純なソリューションを探している場合は、この作業の多くを内部で行うゲーム エンジンを使用することをお勧めします。AndEngineはそのようなエンジンの 1 つです。

サンプルアプリケーションは Google Play からダウンロードできます。

于 2013-11-03T23:52:09.317 に答える