Android OntouchListener,在繪製位圖時檢查圖像相交

Android OntouchListener, check image intersection while drawing bitmap
投票:1回答:1

好的,很好。。。似乎我在上一個問題中錯了...

我正在研究單詞搜索遊戲,並且已將應用實現的“視點”從GridView更改為使用Android中的畫布進行位圖繪製。

就是這樣:在畫布中有一個可繪製對象,並且還有另一個可繪製對象,當用戶調用OntouchListener事件時將繪製該對象。

我想進行邏輯運算,以便如果第二個繪製對象與第一個可繪製對象具有相同的軸或坐標軸,它將執行某些操作...

這是代碼:

public class DrawView extends View implements OnTouchListener{
private static final String TAG = "DrawView";

List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
Bitmap kangoo = BitmapFactory.decodeResource(getResources(),R.drawable.icon);

public DrawView(Context context, AttributeSet attrs) {
    super(context,attrs);
    setFocusable(true);
    setFocusableInTouchMode(true);

    this.setOnTouchListener(this);
    paint.setColor(Color.WHITE);
    paint.setAntiAlias(true);
}

@Override
public void onDraw(Canvas canvas) {
    Bitmap krazy = BitmapFactory.decodeResource(getResources(),R.drawable.schema);
    canvas.drawBitmap(krazy, 130, 130, null);
    for (Point point : points) {
        canvas.drawBitmap(kangoo, point.x, point.y, null);
        //canvas.drawCircle(point.x, point.y, 5, paint);
        // Log.d(TAG, "Painting: "+point);
    }
}

@Override
public boolean onTouch(View view, MotionEvent event) {
     // if(event.getAction() != MotionEvent.ACTION_DOWN)
    // return super.onTouchEvent(event);
    Point point = new Point();
    point.x = event.getX();
    point.y = event.getY();
    points.add(point);
    invalidate();
    Log.d(TAG, "point: " + point);
    return true;
}
    }

    class Point {
    float x, y;

    @Override
     public String toString() {
       return x + ", " + y;
     }
    }

看到...,靜態繪製對像是KRAZY,動態繪製對像是KANGOO,而觸摸屏時將繪製

我想知道這兩個對像是否通過x或y接觸....

感謝你

tags:android,canvas,drawable
1回答
1
投票

實際上,此解決方案用於協助我的單詞搜索遊戲項目...

我要做的主要事情是測量由字符串的drawables塊表示的佔用的單詞...然後將其與由正方形選擇框繪製的正方形區域進行比較,該正方形選擇框將在字符內部繪製自身只要用戶觸摸屏幕即可阻止...

然後在整個字符塊佔據正方形選擇的正方形區域或占用區域時調用....我的意思是正方形選擇框位於字符塊內部

在這種情況下,如果一個單詞從point.x = 0.0,y = 0.0開始構成4個字符的塊,並且每個塊佔用32pix H和W,則正方形選擇框佔用的位置必須小於4 * 32(W)和1 * 32(高)....


©2020 sofbug.com - All rights reserved.