Andriodのゲーム制作を解説したページすくねぇ
Androidのゲーム制作にはSurfaceViewというものを使う(その他の方法もある)
そういうわけでひな形
これで簡単にゲームが作れる(はず)
実際かなり不安、間違ってたらごめんね
//Sueface.java
package my.test; //ここは変える
import android.content.Context;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
public class Surface extends SurfaceView implements SurfaceHolder.Callback, Runnable {
private SurfaceHolder holder;
private Thread thread;
private long myTime = 0;
private long starttime = 0;
//画像読み込み
Resources res = this.getContext().getResources();
Bitmap char = BitmapFactory.decodeResource(res, R.drawable.char); //これは例
boolean loop_flag;
Paint p;
public Surface(Context context) {
super(context);
holder = getHolder();
//callbackメソッド(下の3つ)を登録
holder.addCallback(this);
}
//サーフェイス変化で実行される
public void surfaceChanged(SurfaceHolder holder, int f, int w, int h) {
myTime = System.currentTimeMillis();
thread.start();
}
//サーフェイス生成で実行される
public void surfaceCreated(SurfaceHolder holder) {
thread = new Thread(this);
loop_flag = true;
starttime = System.currentTimeMillis();
}
//サーフェイス破棄で実行される
public void surfaceDestroyed(SurfaceHolder holder) {
loop_flag = false;
thread = null;
}
public void run() {
///////////// メインループ //////////
while(loop_flag){
float frame = (float)((System.currentTimeMillis()-myTime)/1000.0*60); /////ここと
myTime = System.currentTimeMillis(); /////ここは自由,あくまで俺の提案
Canvas c = holder.lockCanvas();
c.drawBitmap(0, 30, char, p); //これも例
///////////////////描画終了//////////////////
holder.unlockCanvasAndPost(c);
}
}
////////////////////////////////ここから//////////////////
@Override
public boolean onTouchEvent(MotionEvent event) {
//画面がタッチされた時の処理
return true;
}
////////////////////////////////ここまではなくていい///////////////////////
}
//Activity.java
package my.test; //ここはかえる
import android.app.Activity;
import android.os.Bundle;
import android.text.format.Time;
import android.view.View;
import android.widget.LinearLayout;
public class TestActivity extends Activity {
/** Called when the activity is first created. */
Time time = new Time("Asia/Tokyo");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout l = new LinearLayout(this);
setContentView(l);
l.addView(new Surface(this));
}
}