前回のViewクラスを以下のように書き換えてみました。
leftとtopをクラス変数化
あとはonDrawの最後にinvalidateを呼ぶようになりました。
invalidateを呼ぶことでViewが動いている間は定期的にonDrawメソッドが呼ばれます。
なので、今回のソースで画像が左から右、上から下に移動するようになっています。
画面サンプル
サンプル見ても動かないから分かりませんね。
とは言えこのくらいのソースで画像を動かす事ができます。
勘のいい人はお気づきかもしれませんが、
ループの感覚は指定できません
もう何回かViewについて触れたら、本気なゲーム作成方法を記載します。(あと一回かもしれませんが未定)
public class ViewSample extends View
{
private Bitmap bmp = BitmapFactory.decodeResource(super.getResources(), R.drawable.ic_launcher);
private float left = 0;
private float top = 0;
public ViewSample(Context context){
super(context);
}
@Override
public void onDraw(Canvas canvas){
Paint paint = new Paint();
int maxLeft = 800 - bmp.getWidth();
int addTopVal = bmp.getHeight();
left += 10;
if (maxLeft < left) {
left = 0;
top += addTopVal;
}
canvas.drawBitmap(bmp, left, top, paint);
invalidate();
}
}
leftとtopをクラス変数化
あとはonDrawの最後にinvalidateを呼ぶようになりました。
invalidateを呼ぶことでViewが動いている間は定期的にonDrawメソッドが呼ばれます。
なので、今回のソースで画像が左から右、上から下に移動するようになっています。
画面サンプル
サンプル見ても動かないから分かりませんね。
とは言えこのくらいのソースで画像を動かす事ができます。
勘のいい人はお気づきかもしれませんが、
ループの感覚は指定できません
もう何回かViewについて触れたら、本気なゲーム作成方法を記載します。(あと一回かもしれませんが未定)