Способ создания простой игровой GUI - PullRequest
6 голосов
/ 03 февраля 2010

Мне удалось найти много информации о реальной разработке логики для игр. Мне бы очень хотелось сделать карточную игру, но я просто не понимаю, как, исходя из положения мыши, можно выбрать объект (или, по крайней мере, правильно). Сначала я подумал о проверке ограничивающего прямоугольника, но не все мои растровые изображения являются прямоугольниками. Затем я подумал создать скрытый буфер для каждого объекта, имеющего разный цвет, но кажется нелепым делать это таким образом. Мне интересно, как это на самом деле сделано. Например, как Adobe Flash узнает объект под мышью?

Спасибо

Ответы [ 2 ]

6 голосов
/ 03 февраля 2010

Ваш вопрос: как определить, находится ли мышь над непрямоугольным растровым изображением? Я предполагаю, что все ваши растровые изображения действительно прямоугольные, но имеют прозрачные области. Вы уже должны каким-то образом определить, какая часть вашего (прямоугольного) растрового изображения прозрачна, в зависимости от используемой схемы (например, если вы назначаете цвет прозрачным или если вы используете битовую маску). Вы также будете знать z-порядок (наслоения) растровых изображений на вашем холсте. Затем, когда вы обнаруживаете щелчок в позиции (x, y), вам нужно найти список прямоугольных растровых изображений, которые охватывают этот пиксель. Сортируйте их по z-порядку и для каждого проверьте, прозрачен ли пиксель или нет. Если да, переходите к следующему растровому изображению. Если нет, то это выбранное растровое изображение.

1 голос
/ 03 февраля 2010

Или вы можете использовать геометрическое решение. Вы должны хранить / управлять геометрией карты / предмета. Например, список фигур, таких как круги, прямоугольники.

Может быть, треугольники или эллипсы, если у вас много времени. Сообщение о том, что треугольник имеет точку или нет, является математическим вопросом и может быть численно нестабильным, если треугольник очень тонкий (алгоритм имеет деление). . Исправление: Как определить, находится ли точка в 2D-треугольнике?

Я голосовал за abc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...