美文网首页
love2d绘制一个跟随鼠标移动的圆

love2d绘制一个跟随鼠标移动的圆

作者: 我和我的火柴 | 来源:发表于2021-03-14 22:07 被阅读0次
    love2d

    今天学习了love2d游戏开发引擎制作一个可以跟随鼠标移动的圆,并且通过勾股定理计算出圆到鼠标的distance。

    there is code

    function love.load()
        circle = {};
        circle.x = 200;
        circle.y = 300;
        circle.radius = 25;
        circle.speed = 200;
    end
    
    function getDistance(x1,y1,x2,y2)
        local horizantal_distance = x1 - x2;
        local vertical_distance = y1 - y2;
    
        local a = horizantal_distance ^ 2;
        local b = vertical_distance ^ 2;
        local c = a + b;
        local distance = math.sqrt(c);
        return distance;
    end
    
    function love.update(dt)
        mouse_x,mouse_y = love.mouse.getPosition();
        angle = math.atan2(mouse_y-circle.y,mouse_x-circle.x);
        sin = math.sin(angle);
        cos = math.cos(angle);
    
        local distance = getDistance(mouse_x,mouse_y,circle.x,circle.y);
        if distance<300 then
            circle.x = circle.x + circle.speed * cos * dt;
            circle.y = circle.y + circle.speed * sin * dt;
        end
    
    end
    
    function love.draw()
        love.graphics.circle("line",circle.x,circle.y,circle.radius)
        love.graphics.print("The angle: "..angle,20,10);
    
        love.graphics.line(circle.x,circle.y,mouse_x,mouse_y);
        love.graphics.line(circle.x,circle.y,mouse_x,circle.y)
        love.graphics.line(mouse_x,mouse_y,mouse_x,circle.y)
        local distance = getDistance(mouse_x,mouse_y,circle.x,circle.y);
        love.graphics.circle("line",circle.x,circle.y,distance);
    end
    
    

    相关文章

      网友评论

          本文标题:love2d绘制一个跟随鼠标移动的圆

          本文链接:https://www.haomeiwen.com/subject/yywccltx.html