Получить значения пикселей из Android Canvas - PullRequest
2 голосов
/ 09 июля 2010

В настоящее время я пишу игру для Android с использованием SurfaceView.Я максимально оптимизировал игру, и она работает довольно гладко.Тем не менее, у меня есть обнаружение столкновений, что немного грязно.Я хотел бы сделать обнаружение столкновений, читая пиксели прямо с холста.Возможно ли это сделать?Самым близким к этому, что я нашел, было прикрепление нового растрового изображения к холсту с помощью setBitmap.Затем, когда я рисовал на холсте, растровое изображение будет обновлено.Будет ли это путь?Спасибо.

Ответы [ 3 ]

1 голос
/ 13 июля 2012

Несмотря на то, что вы должны управлять обнаружением столкновений другим способом, вы можете получить цвет пикселя в данной позиции с помощью следующей строки кода:

mView.mBitmap.getPixel(j, i)

mView - это представление, которое содержит ваш холст иmBitmap - это растровое изображение, с помощью которого вы создали свой холст:

Canvas mCanvas = new Canvas(mBitmap);
0 голосов
/ 10 июля 2010

Я согласен с Джошем. Если точность так важна в вашем приложении, вы можете включить данные о размере / разрешении экрана в какой-то физический движок. Попытка построить физический движок, полностью основанный на визуальной обработке, вероятно, излишне дорогостоящ.

0 голосов
/ 09 июля 2010

Из Canvas API :

Класс Canvas содержит «ничью» звонки. Чтобы что-то нарисовать, нужно 4 Основные компоненты: растровое изображение для хранения пикселей, холст для размещения розыгрыша звонки (запись в растровое изображение), рисование примитива (например, Rect, Path, текст, растровое изображение) и краска (для опишите цвета и стили для рисунок).

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

Обнаружение столкновений обычно обходится дорого, но переход к процессу на основе растровых изображений может сделать его еще хуже, в зависимости от того, что вы пытаетесь сделать. Просто на голову.

...