local plr={ x=250, y=250, } local bump = require "bump" local PL_SPEED = 170 local PL_SPRINT_SPEED = 280 local font, title local world local jerma function love.load() font = love.graphics.newFont("APL333.ttf",72) title = love.graphics.newText(font, "room A9") jerma = love.graphics.newImage("jerma.jpg") world = bump.newWorld() world:add("player", plr.x, plr.y, 10,10) world:add("jerma", 30,400, 400, 50) end local function player_movement(dt) local speed = (love.keyboard.isScancodeDown("lshift","rshift") and PL_SPRINT_SPEED or PL_SPEED) local vx = 0 local vy = 0 if love.keyboard.isScancodeDown('w','up') then vy = vy - 1 end if love.keyboard.isScancodeDown('s','down') then vy = vy + 1 end if love.keyboard.isScancodeDown('a','left') then vx = vx - 1 end if love.keyboard.isScancodeDown('d','right') then vx = vx + 1 end local sf = math.sqrt(vx*vx+vy*vy) if sf == 0 then return end vx = vx / sf vy = vy / sf local tx = plr.x + vx * dt * speed local ty = plr.y + vy * dt * speed local ax, ay = world:move("player",tx,ty) plr.x = ax plr.y = ay end local function draw_player() love.graphics.setColor(0.91,0.62,0) love.graphics.rectangle("fill", plr.x,plr.y, 10,10) end local function draw_room() love.graphics.setColor(0.8,0.8,0.8) love.graphics.setLineWidth(10) love.graphics.rectangle("line",30,80,580,370) love.graphics.draw(title,610-title:getWidth(),-10) end local draw_thing = coroutine.wrap(function() local t = 0 local angry = false local tri_a = 100 local tri_h = (math.sqrt(3)/2)*tri_a local ell_l = 20 local ell_r = 30 while true do local theta = t/10 local c = math.cos(theta) local s = math.sin(theta) local dist = math.sqrt((420-plr.x)^2 + (240-plr.y)^2) if not angry and dist < 100 then angry = true elseif angry and dist > 200 then angry = false end love.graphics.push() love.graphics.translate(420,240) love.graphics.push() love.graphics.setLineWidth(10) love.graphics.setColor(angry and {1,0,0,0.8} or {0.7,0,0.5,0.8}) love.graphics.rotate(-theta/1.618) love.graphics.polygon("line", -tri_a/2,-tri_h/3, tri_a/2,-tri_h/3, 0,2*tri_h/3) love.graphics.pop() love.graphics.setLineWidth(7) love.graphics.setColor(0.8,0.8,0,0.7) love.graphics.ellipse("line", ell_l*c,ell_l*s, ell_r,2*ell_r) love.graphics.setColor(0,0.8,0.8,0.7) love.graphics.ellipse("line", -ell_l*c,-ell_l*s, ell_r,2*ell_r) love.graphics.pop() t = t + (angry and 1.8 or 1) coroutine.yield() end end) function draw_jerma() love.graphics.setColor(1,1,1,1) local sx = 400/jerma:getWidth() local sy = 50/jerma:getHeight() local px = love.graphics.draw(jerma,30,400, 0, sx,sy) end function love.update(dt) player_movement(dt) end function love.draw() love.graphics.clear(1,1,1) love.graphics.setColor(0,0,0) -- love.graphics.print("bees "..plr.x.." "..plr.y,10,10) draw_room() draw_jerma() draw_player() draw_thing() end