-- ParticleSystem test 01 function love.load() -- set filter love.graphics.setDefaultFilter("nearest", "nearest") scr_w = 640 scr_h = 480 canvas = love.graphics.newCanvas(scr_w, scr_h) -- load image -- img = love.graphics.newImage("star02_48x48.png") img = love.graphics.newImage("box01_64x64.png") -- img = love.graphics.newImage("ball01_64x64.png") -- init particle psystem = love.graphics.newParticleSystem(img, 128) psystem:setParticleLifetime(0.5, 1.0) psystem:setColors(255, 255, 255, 255, 255, 255, 255, 0) -- psystem:setRelativeRotation(true) -- psystem:setRelativeRotation(false) local spd = 600 psystem:setSpeed(spd, spd * 1.2) psystem:setLinearDamping(2.0, 4.0) -- psystem:setLinearAcceleration(-spd, -spd, spd, spd) -- psystem:setRadialAcceleration(-spd * 1.5, -spd * 1.0) -- psystem:setTangentialAcceleration(-900, 900) psystem:setSpread(math.rad(360)) -- psystem:setSpread(math.rad(90)) psystem:setRotation(-math.rad(45), math.rad(45)) -- psystem:setRotation(math.rad(0), math.rad(360)) -- psystem:setSpin(-math.rad(360 * 2), math.rad(360 * 2)) psystem:setSizes(1.0, 0.1) psystem:setSizeVariation(0.3) -- psystem:setEmissionRate(60) timer = 0 end function love.update(dt) timer = timer + dt local t = 2.0 if timer >= t then timer = timer - t psystem:emit(64) end psystem:update(dt) end function love.draw() -- set canvas love.graphics.setCanvas(canvas) love.graphics.setColor(0, 32, 64) love.graphics.rectangle("fill", 0, 0, scr_w, scr_h) -- love.graphics.draw(bgimg, 0, 0) love.graphics.setColor(255, 255, 255) -- love.graphics.setBlendMode("add") love.graphics.draw(psystem, scr_w / 2, scr_h / 2) love.graphics.setBlendMode("alpha") -- unset canvas love.graphics.setCanvas() -- draw canvas to window wdw_w, wdw_h = love.graphics.getDimensions() scr_scale = math.min((wdw_w / scr_w), (wdw_h / scr_h)) scr_ofsx = (wdw_w - (scr_w * scr_scale)) / 2 scr_ofsy = (wdw_h - (scr_h * scr_scale)) / 2 love.graphics.setColor(255, 255, 255) love.graphics.draw(canvas, scr_ofsx, scr_ofsy, 0, scr_scale, scr_scale) love.graphics.print("FPS: "..tostring(love.timer.getFPS()), 10, 10) end function love.keypressed(key, isrepeat) if key == "escape" then -- ESC to exit love.event.quit() end end