Позиции курсора Love2d
У меня есть вопрос о функциях курсора love2d(скрипт lua). Я не хочу создавать область, чтобы нажимать, чтобы заставить действие произойти.
Я начал с цикла for для параметров x и y. Единственная другая проблема, о которой я подумал, заключается в том, чтобы пройти цикл for числа / координат и завершить его на 1-м числе, на котором остановится love.mouse.get(), и разрешить нажатие на него курсора. последняя координата (один пиксель).
for r = 660, 770 do --the x coordinates
mx = love.mouse.getX(r)
end
for f = 99.33, 169.66 do --the y coordinates
my = love.mouse.getY(f)
end
И как бы я объединил два для переменных цикла (r и f).
Подводя итог, я хочу иметь возможность нажать на область и выполнить действие. Я знаю, что нет функций love.load, love.update и love.draw, потому что это всего лишь тестовый файл, чтобы узнать, как все это работает.
Спасибо:)
1 ответ
Вы переосмысливаете эту проблему. Что вы действительно хотите сделать, так это определить минимум и максимум в двух измерениях, прослушать события мыши, а затем проверить, находится ли местоположение мыши в пределах ваших границ. Нет необходимости перебирать все ваши диапазоны.
Рассмотрим пример "игры", где мы рисуем простую красную рамку, которая при нажатии переключает отображение текста в верхнем левом углу.
local box_dims = {
{ 660, 770 },
{ 99.33, 169.66 }
}
local show = false
function love.mousepressed (x, y)
if
x >= box_dims[1][1] and
x <= box_dims[1][2] and
y >= box_dims[2][1] and
y <= box_dims[2][2] then
show = not show
end
end
function love.draw ()
love.graphics.setColor(255, 0, 0, 255)
love.graphics.rectangle('fill',
box_dims[1][1], box_dims[2][1],
box_dims[1][2] - box_dims[1][1],
box_dims[2][2] - box_dims[2][1]
)
if show then
love.graphics.print('hello world', 10, 10)
end
end
Посмотрите документацию, чтобы решить, какое событие мыши подходит именно вам.
love.mousepressed
love.mousereleased
love.mousemoved