Drawableでパラパラアニメ

378 views
Skip to first unread message

miyayuk

unread,
Oct 28, 2010, 11:14:50 PM10/28/10
to 日本Androidの会
いつもお世話になっております。
miyayukと申します。

現在SurfaceViewとDrawableを利用して簡単なゲームアプリを作成しております。

そのアプリでキャラクターのアニメーションを
行いたいと思っておりますがうまく行かず質問させてください。

やりたいことは全アニメーションを縦or横一列に並べた画像を元に、
元画像の座標だけを変えてアニメーションしているようにみせる。

上記のような手法はDrawableでも可能なのでしょうか。
もし無理な場合、他のやり方でもDrawableでアニメーションを行わせることは可能なのでしょうか。

どなたかわかる方がおりましたら、返信頂けると幸いです。

Masaki Natsuki

unread,
Oct 28, 2010, 11:34:21 PM10/28/10
to android-g...@googlegroups.com
Natsukiです

Canvas#drawBitmap(Bitmap, Rect, Rect, Paint)メソッドでできると思います。
CanvasはSurfaceHolder#lockCanvas()で取得したキャンバス、
Bitmapに元画像、
最初のRectに元画像の表示したいコマの領域、
次のRectにキャンバスに表示したい領域、
Paintは何か適当に設定する

元画像の領域のRectの座標をうまく切り替えていけばアニメーションしているように見えるでしょう。

Drawableでは元画像の領域指定ができなかったと思いますので、
Bitmapで画像取得し、canvasで描画されるとよいと思います。


2010年10月29日12:14 miyayuk <miy...@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

ゆうしぐ

unread,
Oct 29, 2010, 12:52:38 AM10/29/10
to android-g...@googlegroups.com
ゆうしぐです。
 
Technicalwingさんの
TW-Express ライブラリを使用することで
イメージされているようなことが実装できると思います。
 
 
 
2010年10月29日12:34 Masaki Natsuki <mark...@gmail.com>:

あんざいゆき

unread,
Oct 29, 2010, 12:58:56 AM10/29/10
to android-g...@googlegroups.com
あんざいです。

 横 or 縦一列にはしない方法なのですが、
 アニメーションの各コマを別々の drawable にしてもいいなら、
 LevelListDrawable を利用する方法があります。
 各レベルに応じた画像リソースを指定することができます。
 

2010年10月29日12:14 miyayuk <miy...@gmail.com>:
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。




--
あんざい ゆき
anzai...@gmail.com
twitter : @yanzm

miyayuk

unread,
Oct 29, 2010, 3:18:11 AM10/29/10
to 日本Androidの会
みなさん、お早い返信ありがとうございます!

頂いた内容から、
ライブラリにつきましては使用しない方向で考えておりますので
除外させてもらおう思っております。(すいません。。。)

残りのCanvasとLevelListDrawableのどちらで行おうか迷っておりますが、
速度や何か違いなどお分かりになるでしょうか?
(キャラクターの仕様として移動、回転、拡大/縮小などを行わせようと思っております)
また、ネットでわかりやすいソースなどを検索しておりますが、
なかなか見つからずで、どこかに良いサンプルなどありますでしょうか。

miyayuk

unread,
Oct 29, 2010, 7:41:38 AM10/29/10
to 日本Androidの会
再度質問させていただきましたが、
ある程度自己解決いたしましたのでご報告いたします。

いろいろ弄りながら一番わかりやすかったのが
BitmapとCanvasを利用した方法でしたので
現在その方法で実装しております。

元画像を任意の座標指定をして表示出来ているので、
やろうとしていたパラパラアニメや拡大/縮小は実現出来るかと思います。

あとは、回転ですがネットで検索すると
rotateメソッドがあるのを知ったのでなんとかいけそうです。
(まだ実現出来ていませんが・・・[汗)

重ねていろいろアドバイスを頂きまして有難う御座いました。

Masaki Natsuki

unread,
Oct 29, 2010, 9:34:07 AM10/29/10
to android-g...@googlegroups.com
解決できたようでよかったです。

回転はSDKのサンプルのLunar LanderのLunarView.javaのdoDrawメソッドなども参考になるのではないかと思います。

以下Canvasで回転する方法など
http://developer.android.com/resources/samples/LunarLander/src/com/example/android/lunarlander/LunarView.html
http://www.atmarkit.co.jp/fjava/rensai4/android12/android12_2.html
http://developer.android.com/reference/android/graphics/Canvas.html


2010年10月29日20:41 miyayuk <miy...@gmail.com>:

miyayuk

unread,
Oct 29, 2010, 11:19:25 AM10/29/10
to 日本Androidの会
Masaki Natsukiさん

コメントありがとうございます。

確かにLunar Landerで回転処理してましたよねw
何度かソースコード見たり実際にプレイしていたのに見落としてました。。。

コメントにありましたらリンク先を見ながら
いろいろ弄っていたらいい感じに回転するようになりました。

ほんとうにありがとう御座いました。
Reply all
Reply to author
Forward
0 new messages