0

このゲームの目的は、バブル ポップ ゲームの目的に似ています。バブルに触れるたびに、相互作用/イベントが発生します。

これまでのところ、これは私が持っているものです。私はこれが初めてなのでちょっと面倒ですが、私の教授は onTouch(view v, motionevent event) を使用するように言いました。その方法では、event.getSource(); のようなものを使用します。タッチ可能な描画/ビットマップ画像の目的を果たすメソッドとの相互作用を作成できるようにするためです。

どんなアドバイスや助けも素晴らしいでしょう!どうもありがとう。

public class MainActivity extends Activity implements OnTouchListener {

OurView v;
Bitmap icon1, icon2, icon3;
float x,y;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    v = new OurView(this);
    v.setOnTouchListener(this);
    icon1 = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    icon2 = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    icon3 = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    x = y = 0;
    setContentView(v);
}

@Override
protected void onPause() {
    super.onPause();
    v.pause();
}

@Override
protected void onResume() {
    super.onResume();
    v.resume();
}


public class OurView extends SurfaceView implements Runnable {

    Thread t = null;
    SurfaceHolder holder;
    boolean isItOK = false;

    public OurView(Context context) {
        super(context);
        holder = getHolder();
    }

    @Override
    public void run() {
        while (isItOK == true){
            if (!holder.getSurface().isValid()){
                continue;
            }
            Canvas c = holder.lockCanvas();
            c.drawARGB(255, 100, 120, 10);
            c.drawBitmap(icon1, x=50, y=100, null);
            c.drawBitmap(icon2, x=180, y=100, null);
            c.drawBitmap(icon3, x=310, y=100, null);
            holder.unlockCanvasAndPost(c);
        }
    }

    public void pause() {
        isItOK = false;
        while(true){
            try{
                t.join();
            }catch (InterruptedException e){    
                e.printStackTrace();
                }
            break;
            }
        t = null;
    }

    public void resume(){
        isItOK = true;
        t = new Thread(this);
        t.start();
    }
}


@Override
public boolean onTouch(View v, MotionEvent me) {

    try {
        Thread.sleep(50);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    me.getSource();


    switch(me.getAction()){
    case MotionEvent.ACTION_DOWN:
        x = me.getX();
        y = me.getY();
        break;
    case MotionEvent.ACTION_UP:
        break;
    case MotionEvent.ACTION_MOVE:

        break;
    }
    return true;
}

}

4

2 に答える 2

0

既知の座標でビットマップを描画しているのに、範囲チェックをしないのはなぜですか? たとえば、x > 50 かつ x < 100 かつ y > 100 かつ y < 150 の場合、彼らはアイコン 1 をタップしました (ビットマップが 50x50 であると仮定) 数秒前に暴徒経由で

于 2013-03-28T05:26:13.607 に答える
0

xy座標がビットマップの長方形をループ内にあるかどうかを初期化がチェックする条件を作ってみてください。ビットマップの長方形の中にありますか?

于 2013-03-28T05:22:34.963 に答える