function init() local levels = 5 local pin = ag.loadModel("bowling_pin", 0.5) pin:setPosition(0, -5.5, 2) for level = 2, levels do for x = 1, level do local p = pin:clone() p:setPosition(x - 0.5 - level/2, -(levels - level + 1.5), 2) end end --local ground = ag.loadStaticModel("crate", 10) local ground = ag.createPlane(0, 0, 1, 0) ground:setColor(0.8, 0.5, 0.0) ground:setPosition(0, 0, -10) ag.setCamera(0, -25, 10, 0, 0, 1, 0, 0, 1) camx, camy, camz, cx, cy, cz = ag.getCamera() ball = ag.loadModel("checkerball", 0.5) --ball = ag.createSphere(0.4) --ball:setColor(0.2, 0.2, 0.9) ball:setPosition(2*camx - cx, 2*camy - cy, 2*camz - cz) end function mousebutton_down_event(button) local function button1() local newball = ball:clone() newball:setPosition(camx, camy, 1) force = 800 newball:addForce(force * (cx-camx), force * (cy-camy), force * (cz-camz)) end if (button == 1) then button1() end end --function update_overlay_event(width, height) -- local tw, th = ag.getTextSize("Hi there", 18) -- ag.drawText("Hi there", 1, 1, 1, 18, width - tw - 4, height - th - 4) --end