2016-11-02 2 views
0

Я делаю игру, где пользователю дается письмо на экране, и они должны отслеживать письмо, что я хочу знать, когда пользователь рисует, я могу отслеживать, что они рисуют, чтобы увидеть, рисуют ли они правильно.Можно ли рисовать на холсте Java gui и отслеживать, что мышь нарисовала на холсте?

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

Будет ли это работать?

+0

Каковы «координаты буквы», хотя? – weston

+0

Где письмо находится на экране – Pirates

+1

Это гораздо труднее, чем вы могли бы подумать. Например, предположим, что буква «: A». Таким образом, вы хотите, чтобы пользователь отслеживал его. Но фактические пиксели, используемые для рисования «A», зависят от используемого шрифта. Как близко к точным штрихам «A» пользователь должен быть? Если пользователь делает свой след на один пиксель длиннее или короче, это провал? Как вы определяете, когда пользователь закончил свою трассировку? А как насчет засечек? – FredK

ответ

1

Ну, да. То, что вы сказали, является технически правильным - это сработает.

Обычно для такого рода игр у вас будет какая-то матрица, представляющая пиксели холста. Вы должны знать, какие из этих пикселей принадлежат букве (потому что это покрытие частей холста). Когда игрок начинает сеанс, у вас может быть другая матрица того же размера (но пустой), и когда игрок перетаскивает мышь, некоторые пиксели в матрице будут помечены.

Вы должны сравнить обе матрицы, чтобы увидеть, как «правый» был игроком (количество помеченных пикселей внутри буквы). Возможно, если есть 85% соответствия, это означает, что игрок нарисовал письмо. Вам также необходимо учитывать мошенничество (например, игрок пытается рисовать весь экран), но это будет зависеть от механики вашей игры.

Смежные вопросы