2

Androidゲーム用のフローティングジョイスティックを作成しようとしていますが、作成できません。これが私のonTouch()関数です:

@Override
public boolean onTouchEvent(MotionEvent event) {
    int action = event.getAction();
    c = holder.lockCanvas();
    switch (action & MotionEvent.ACTION_MASK) {
    case MotionEvent.ACTION_DOWN:
        float x = event.getX();
        float y = event.getY();
        Log.d("joystick", " " + x + " " + y);
        ondraw(c, x, y);
        break;

    case MotionEvent.ACTION_MOVE:
        d = holder.lockCanvas();
        float xdrag = event.getX();
        float ydrag = event.getY();
        Log.d("joystick move", " " + xdrag + " " + ydrag);
        ondraw(d, xdrag, ydrag);
        break;
    }

    return false;
}

何らかの理由で画像がドラッグされていません。誰かがここで問題を教えてくれて私を助けてくれますか?

私の引き分けは:

protected void ondraw(Canvas c, float x, float y) {

    c.drawColor(Color.BLACK);
    c.drawBitmap(bmpback, x - (bmpback.getWidth() / 2),
            y - (bmpback.getHeight() / 2), null);
    c.drawBitmap(bmpfront, x - (bmpfront.getWidth() / 2),
            y - (bmpfront.getHeight() / 2), null);
    holder.unlockCanvasAndPost(c);
}
4

1 に答える 1

1

これが機能するのと同じくらい簡単に画像をドラッグする

@Override
public boolean onTouchEvent(MotionEvent event) {

    x = event.getX();
    y = event.getY();
    //Log.d("joy", "x = " + x + "y =" + y);

    invalidate();
    return true;
}

@Override
protected void onDraw(Canvas canvas) {

    canvas.drawBitmap(joyback, x - joyback.getWidth() / 2,
            y - joyback.getHeight() / 2, null);



    super.onDraw(canvas);
}
于 2012-07-06T08:07:24.757 に答える