Andoridがはやっているらしいな・・・

Rom
記事: 25
登録日時: 15年前
住所: 日本

Andoridがはやっているらしいな・・・

投稿記事 by Rom » 13年前

何がいいたいか


Andriodのゲーム制作を解説したページすくねぇ



Androidのゲーム制作にはSurfaceViewというものを使う(その他の方法もある)
そういうわけでひな形
これで簡単にゲームが作れる(はず)
実際かなり不安、間違ってたらごめんね

CODE:

//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;
    }
////////////////////////////////ここまではなくていい///////////////////////

}

CODE:

//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));
    }
    
}

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前

Re: Andoridがはやっているらしいな・・・

投稿記事 by Dixq (管理人) » 13年前

OpenGLを使ったゲームプログラム解説している本なら割とありますよ。

http://www.amazon.co.jp/s/ref=nb_sb_nos ... roid&ajr=0

私はこれ上から4冊持ってますが、かなり参考になります。

しかし面倒ですよねぇ・・。
ゲーム作る前にラッパー作らないと作る気にならないです;

Rom
記事: 25
登録日時: 15年前
住所: 日本

Re: Andoridがはやっているらしいな・・・

投稿記事 by Rom » 13年前

なるほど本という手段が・・・
しかしお金が・・・
OpenGLなんか難しそう・・・

そんな具合でした
日記のタイトルをもう少しわかりやすくするべきだったのかな

Rom
記事: 25
登録日時: 15年前
住所: 日本

Re: Andoridがはやっているらしいな・・・

投稿記事 by Rom » 13年前

ぐぬぬ・・・
この日記を書いた矢先、Androidの館にゲームプログラミングの項が
これは管理人からの挑発・・・もとい挑戦状なわけだな

よし!受けて立とう!!






といいたいところだが現実はいつもきびしい