anaglym/lib/demo/checkerpick.lua
Josh Holtrop 2c98e88dae updated checkerpick.lua test script, moved it into lib/demo
git-svn-id: svn://anubis/anaglym/trunk@322 99a6e188-d820-4881-8870-2d33a10e2619
2010-09-23 17:09:35 +00:00

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