Как исправить пересечение границ обьектов?
Настройки области игры:
function love.conf(t)
t.window.width = 400
t.window.height = 700
есть основной код:
function love.load()
-- Left wall
w1 = {
m = "fill",
x = 0,
y = 0,
w = 50,
h = love.graphics.getHeight()
}
-- Right wall
w2 = {
m = "fill",
x = love.graphics.getWidth() - 50,
y = 0,
w = 50,
h = love.graphics.getHeight()
}
stone = {
m = "fill",
x = 200,
y = 0,
w = 80,
h = 20,
speed = 600
}
end
function love.update(dt)
if stone.y > love.graphics.getHeight() then
stone.y = 0
stone.x = math.random(50,300)
stone.w = math.random(25,100)
stone.h = math.random(10,25)
else
stone.y = stone.y + (dt * stone.speed)
end
end
И происходит пересечение правой границы правой стены, я думаю можно это решить следующим образом:
- Определить разницу пикселей между правой стеной и обьектом камень (stone)
- Если, широта (stone.w), больше чем результат из 1 пункта, то вычесть
- Результат из 2 пункта вычесть из stone.x
- Результат из 3 пункта присвоить к stone.x
Я думаю вот тогда пересечении не будет и вот как это пишу:
difference = stone.x - (love.graphics.getWidth() - 50)
if stone.w > difference then
stone.x = stone.w - difference
Если я правильно думаю то я не знаю где эту проверку прописать :-D
Если не прав, то пожалуйста помогите исправить ошибку...
Источник: Stack Overflow на русском