43 lines
1.5 KiB
Lua
43 lines
1.5 KiB
Lua
function init_event()
|
|
local checker_texture = ag.loadTexture("checker.jpg")
|
|
|
|
checker_box = ag.createBox(8, 8, 0.1, {static = true})
|
|
checker_box:setPosition(0, 0, 0.1/2)
|
|
checker_box:setTexture(checker_texture)
|
|
checker_box:setTextureScale(2)
|
|
|
|
hilite = ag.createBox(1, 1, 0.1, {static = true, enable_blending = true})
|
|
hilite:setColor(0.3, 0.5, 1)
|
|
hilite:setPosition(1.5, 1.5, 0.15)
|
|
hilite:setTransparency(0.4)
|
|
|
|
ag.setCamera(4, -8, 8, 0, 0, 0)
|
|
ag.setCursorVisible(true)
|
|
end
|
|
|
|
function mouse_motion_event(x, y, xrel, yrel)
|
|
local hit = ag.pickOne(x, y, checker_box)
|
|
if hit then
|
|
local cx, cy = checker_box:getPosition()
|
|
local sx, sy = checker_box:getSize()
|
|
local px = checker_box.pick_pos[1]
|
|
local py = checker_box.pick_pos[2]
|
|
local x_coord = math.floor((px - cx + sx / 2) * 8 / sx)
|
|
local y_coord = math.floor((py - cy + sy / 2) * 8 / sy)
|
|
if x_coord >= 0 and x_coord <= 7 and y_coord >= 0 and y_coord <= 7 then
|
|
hilite:setPosition((x_coord - 3.5) * sx / 8 + cx,
|
|
(y_coord - 3.5) * sy / 8 + cy, 0.15)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mousebutton_down_event(button, x, y)
|
|
if (button == 1) then
|
|
local spawnSphere = ag.createSphere(0.45)
|
|
spawnSphere:setColor(math.random(), math.random(), math.random())
|
|
local hlx, hly = hilite:getPosition()
|
|
spawnSphere:setPosition(hlx, hly, 0.6)
|
|
spawnSphere:addForce(0, 0, 100)
|
|
end
|
|
end
|