Android OntouchListener, проверьте пересечение изображения при рисовании растрового изображения - PullRequest
1 голос
/ 06 апреля 2011

Ладно, ребята, хорошо ... кажется, я был неправ из последнего вопроса ...

Я работаю над игрой по поиску слов и изменил «Точку зрения» моей реализации приложения с GridView на растровое рисование с использованием canvas в 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 ....

Спасибо, U

1 Ответ

1 голос
/ 13 апреля 2011

На самом деле это решение используется для поддержки моего игрового проекта по поиску слов ...

Главное, что мне просто нужно сделать, - это измерить занятые слова, которые представлены в виде отрисовываемых блоков строк ... а затем сравнить его с квадратной областью, которая будет создана квадратным полем выбора, который будет рисовать себя внутри блоков символов, пока пользователь касается экрана ...

и затем вызывается, когда квадратная область или занятая область выбора квадрата заняты всем блоком символов .... я имею в виду квадратное поле выбора находится внутри блоков символов

в этом случае, если слово состоит из 4 блоков символов, начинающихся с point.x = 0.0, y = 0.0, и каждый блок занимал 32pix H и W, тогда занимаемая квадратная ячейка выбора должна быть меньше 4 * 32 (W ) и 1 * 32 (H) ....

...