質問内容
質問を評価する
(0ポイント)
|
package o.se.ro;
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.concurrent.TimeUnit; import android.content.Context; import android.content.res.AssetManager; 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; import android.graphics.Rect; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView;
public class OseroView extends SurfaceView implements SurfaceHolder.Callback, Runnable{
OseroActivity activity; //【システム変数定義】ここから--------------------------------------------------------------------------- private SurfaceHolder holder; private Thread thread; int height = 800; //基本となる画面サイズ(タテ) int width = 480; //(ヨコ) String text;//表示する文字を格納する変数 //ここは特にいじる必要なし //【システム変数定義】ここまで-----------------------------------------------------------------------------
//コンストラクタ public OseroView(Context context) { super(context); //メンバを初期化 activity = (OseroActivity)context; //サーフェイスホルダーの生成 holder = getHolder(); getHolder().addCallback(this); getHolder().setFixedSize(width, height); //基本となる画面サイズ(これを端末に合わせて拡大縮小する) } //SurfaceViewが作成された時の処理(初期画面の描画等)を記述 public void surfaceCreated(SurfaceHolder holder) { thread = new Thread(this); thread.start(); } //SurfaceViewが変化(画面の大きさ,ピクセルフォーマット)した時のイベントの処理を記述 public void surfaceChanged (SurfaceHolder holder, int format, int width, int height) { } //SurfaceViewが廃棄された時の処理を記述 public void surfaceDestroyed(SurfaceHolder holder) { thread = null; }
//【ゲーム内の変数定義】ここから---------------------------------------- Canvas canvas; Paint paint = new Paint();
/*現在のシーンはint型変数sceneで保持 *次に遷移するシーンはint型変数nextで保持 *遷移しない時はnextは-1を保持*/ //シーン定数 private final static int //※シーンにかかわらず常に盤面を表示する S_BLACK = 0, //黒の番(タップした場所が石を置ける場所なら置く、そんで挟んだ白石を裏返す。リセットも受け付ける) S_WHITE = 1, //白の番(タップした場所が石を置ける場所なら置く、そんで挟んだ黒石を裏返す。リセットも受け付ける) S_FINISH = 2; //決着(決着メッセージを表示し、リセット以外の操作を受け付けない) //シーン private int scene = S_BLACK; //現在のシーン private int next = S_BLACK; //次のシーン
//画像読み込み用変数 Resources res = this.getContext().getResources(); private int pct_no = 10; //画像の枚数、一応10種類(というか画像使うかな) private Bitmap[] pct_obj = new Bitmap[pct_no]; //その他の画像(背景以外の画像) private Bitmap pct_bg; //背景画像(使うなら盤面の画像)
//その他変数 //盤面用配列 //0:あいているマス //1:黒の石 //2:白の石 int map[][]= { {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,2,1,0,0,0,0}, {0,0,0,0,1,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0} }; //↑これは初期配置、ゲーム中でいじるよ
int reset[][]= { {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,2,1,0,0,0,0}, {0,0,0,0,1,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0} }; //↑これは初期化用の控え
//【ゲーム内変数定義】ここまで-------------------------------------------------------
//【ゲーム処理】ここから------------------------------------------------------- //スレッドの処理 public void run() // run()メソッド内の無限ループでゲーム処理を行う { //定期処理 /*初めに初期化変数nextで、必要なときにシーン初期化処理を行う。 * その後はシーン定数に応じて各種処理、描画処理を行う*/ while(thread != null) { canvas = holder.lockCanvas(); paint.setColor(Color.argb(255,255,255,255)); //【シーン初期化】ここから----------------------------------------------------- //シーンごとに変数やらなんやら初期化するものがあればここに書く if(next >= 0) { switch(next) { case S_BLACK: //タッチ座標初期化 break; case S_WHITE: //タッチ座標初期化 break; case S_FINISH: break; default: break; } scene = next; next = -1; } //【シーン初期化】ここまで-----------------------------------------------------
//【常に処理するもの】ここから----------------------------------------------------------- //ターン監視(scene変数を取得) //石の数を監視(map配列から石の数をカウント) //リセットボタン押した処理
|