love2d杂记2--剪切系数,自定义鼠标和直版循环图

剪切系数

终于找到了love2d里love.graphics.draw()中shearing factor的解释,至于具体

是什么还是不知,涉及到矩阵变换,这里是链接,另外还有一个专业的数学网站

shearing factor的kx为正时图形以ox,oy为中心会向左偏,为负右偏;ky为正时

向下偏,为负上偏。

自定义鼠标

这个是在老外的博客上看到的,实现如下,不是很难。

cursor:getWidth() / 2, love.mouse.getY() 是设置图片中心。

function love.load()
  cursor = love.graphics.newImage("crosshair.png") --自定义鼠标图片
  love.mouse.setVisible(false) --设置鼠标不可见
  love.mouse.setGrab(true) --捕获鼠标
end

function love.draw()
  --绘制鼠标
  love.graphics.draw(cursor, love.mouse.getX() - cursor:getWidth() / 2, love.mouse.getY() - cursor:getHeight() / 2)
end

直版循环图

就是指可以循环播放上下相连,一位网友问到过,顺便写一下。

刚开始时,我用了一些变量来判断临界点,后来发现很麻烦,想了一下发现

其实只要后面的图片与前面的图片的位移差为屏幕宽就可以了,还是物理有用啊!

mm

 

 

代码如下:

function love.load()
    screenWidth=love.graphics.getWidth( )
    img=love.graphics.newImage("box1.png")
    width=img:getWidth()
    height=img:getHeight()
    --图片坐标
    px1=400 
    py1=200
    px2=px1-screenWidth
    py2=200
    
    dw=100 --图片的移动距离
    
    
end

function love.draw()                   
    love.graphics.draw(img,px1,py1,0,1,1,width/2,height/2)
    love.graphics.draw(img,px2,py2,0,1,1,width/2,height/2)
end

function love.update(dt)

--只要让两者之间的位移差为屏幕就可
    if px1<screenWidth+width/2 then    
        px1=px1+dt*dw
    else
        px1=px2-screenWidth
    end
    if px2<screenWidth+width/2 then
        px2=px2+dt*dw
    else
        px2=px1-screenWidth
    end
        

end
posted @ 2013-03-16 15:37  半山无极  阅读(546)  评论(0编辑  收藏