スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

android開発でSurfaceViewでキャラの動きなんかのアニメーション(ゴリ押し)

とあるものを見てネタアプリを作りたい衝動に駆られて久しぶりに開発に手を付けてみました。
衝動に駆られただけなので作ったものを公開するかどうかは未知数です。

そこでSurfaceView上でキャラクターが動いているように見えるようなアニメーションをどうやって実装しようかとちょっと調べてみました。

調べてみてAnimationDrawableというものを使えば行けるのかなと思い試してみたのですが、Canvasで使うBitmapをどうやって取り出すの?となり断念。

・・・このぐらいなら自分で作ればいいんじゃないかなという結論に達し、まあいいかとここで調べるのを早々に断念して自分で作ってみました。

ということでその部分のプログラムを晒してみます。

//画像を返す関数(アニメーション機能付き)
public Drawable getImage(){
nowTime = System.currentTimeMillis();
long subTime = nowTime - initTime;
int intSubTime = (int)subTime/animationInterval;
animationNum += intSubTime;
if(animationNum >= imageList.drawableImageList.get(imageType).size()){
animationNum = animationNum % imageList.drawableImageList.get(imageType).size();
}
initTime += intSubTime*animationInterval;
return imageList.drawableImageList.get(imageType).get(animationNum);
}

説明
initTime:現在の画像のスタート時間を表す変数。この関数を呼ぶ前に現在時間に初期化しておくといい(一応初期値0とかでも動くはずだけど)
nowTime:現在の時間を入れる変数。
subTime:nowTimeとinitTimeとの差で画像を変更するかを判断。
animationInterval:それぞれの画像を表示したい間隔。といっても一つの画像表示時間を正確にではなく、画像1周が周期になることが大事。
intSubTime:subTimeをint型にしてanimationIntervalで割ったもの。この値が次の画像に行くか、もしくは何個画像を飛ばすかが決まる。
animationNum:何番目の画像を表示するかを保持する変数
imageList.drawableImageList.get(imageType):imageList(独自関数のインスタンス)で簡単にいうと今回使ってるアニメーション画像のリストのArrayList呼び出しです。
別のところで、これに画像を入れてます。

やってることは単純で、自分で時間見て画像のリストからどの画像を表示するかを選んで返すということをしているだけです。
DrawableであればBitMapにすることは簡単なので。

備忘録として機能の中心の関数だけしか書いてないので、アイディアの参考程度にしていただけたら嬉しいです。

今回は複数枚の画像を切り替える方法だけど画像をつなげて大きな一枚の画像にして画像の一部分を表示して表示する部分をスライドさせてアニメーションにするっていう方法もあるはず(あんまり詳しくないけどこっちの方が一般的?)。まあいいや、必要になればそっちは考えよう。

こんなゴリ押ししなくても関数あるよなど、もしあればぜひ教えてください。
スポンサーサイト

音が出ない;;(解決;;)

この記事に万が一アプリの音が出ないで困っている方が見に来た方がいた場合のために始めに書いておきます。
きっとおそらくたぶんこの記事は参考になりません。

昨日夜、アプリの音が出ない問題が解決しました!
昨日夜からいろいろやってみたんですよね。

SoundPoolで試してダメで、MediaPlayerで試してみてダメで…
もしかして用意したwavファイルの形式の問題か?とか思いほかの形式のファイル用意してみたり、
ちょっとファイル名が長いから?とか思って短くしてみたり…

落ちがアプリに関係ないとか萎えるわ~
落ち→スマホ本体の音量が0になってた、以上!

こんな凡ミス、初心者でもせんわ~。初心者以下やな…

昨日+今日の1時間返して;;

はぁ~…ほんとに何やってんだろね

前の記事、「音でない;;」をプログラミングってカテゴリで書いたから、解決のほうもプログラミングにしたけど、内容がどう考えてもプログラムじゃない件について。

音が出ない;;

む~…
新しいアプリの開発してるんだけど(といってもすでに公開しているざわ…ぼたんの改造版だけどね。更新という形じゃなく新しいアプリとして公開する予定です)
アプリで音出そうとしてるんだけど…出ない!

プログラムしてるとたまにわけわからんところで詰まるよね。
自分の場合、知識不足がひどいし、思い込みから抜けられない…
SoundPoolもMediaPlayerどっちも試したけど音でない…

単純に音出すだけで詰まるとかどんだけ初心者だよって話だよね;;
というか昔、音出したことあるんだけど…(その時のコードは前のパソコンと一緒にお亡くなりに…)
どうせ1、2行付け足すだけとかで解決なんだろうな~

恥さらし記事を残して今日はふて寝します。
明日には今日の頑張りはなんだったんだってくらいサクサク問題が解決する!(といいなぁ)
プロフィール

kaiemon2011

Author:kaiemon2011
kaiemon2011といいます。
androidアプリを自作してgoogle playにて公開中。

android端末をお持ちの方はアプリをインストールしていただくと泣いて喜びます。

趣味:アプリ開発といえるようになりたいなぁ…

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
アクセスカウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。