我想在Love2D中旋转图像。我在love2d.org:https://love2d.org/wiki/love.graphics.rotate上找到了一个文档,但当我试图加载图像时,似乎无法让它工作。下面是我的代码:
local angle = 0
function love.load()
g1 = love.graphics.newImage("1.png")
end
function love.draw()
width = 100
height = 100
love.graphics.translate(width/2, height/2)
love.graphics.rotate(angle)
love.graphics.translate(-width/2, -height/2)
love.graphics.draw(g1, width, height)
end
function love.update(dt)
love.timer.sleep(10)
angle = angle + dt * math.pi/2
angle = angle % (2*math.pi)
end谁能给我展示一个在love2d中旋转图像的简单例子?
发布于 2012-05-23 02:45:47
https://love2d.org/wiki/love.graphics.draw
使用第四个参数(显示为'r‘)可以更好地旋转图像,例如:
love.graphics.draw(image, x, y, math.pi/4)使用平移函数也不是一个好主意,你最好为每个图像指定一个x和y位置,除非你正在做一些事情,比如偏移整个地图,在这种情况下,它可以节省计算时间(或者至少是你的代码的长度和复杂性)。(当然,在其他情况下,它也非常有用)。
发布于 2012-05-23 15:35:13
你的代码对我来说工作得很好,除了一个不相关的小问题(love.timer.sleep在LÖVE 0.8.0中使用秒)。
如果您向我们提供更多信息,我们将能够更好地帮助您,甚至可能重现您的错误。
当你说
当我尝试加载图像时,它似乎无法正常工作
结果是..what吗?图像是一个白色的盒子吗?应用程序会崩溃吗?屏幕上什么都没有吗?
所有这些都意味着图像加载问题,而不是旋转问题。不过,也可能是图像从屏幕上旋转出来的情况。
如果您继续使用translate、rotate和scale (这通常是个好主意),我建议您看看push和pop函数。
它们允许你‘堆叠’转换,这样你就可以渲染子元素。
示例用途是渲染图形用户界面(每个子代都会推动其平移,然后渲染子代)和在滚动地图上绘制精灵(相机会转换整个地图,然后执行for entity in entities do push() entity:draw() pop() end。每个实体都可以在局部坐标中平移和旋转(0,0 =精灵的中心)。
发布于 2015-08-16 00:15:13
love.graphics.draw( drawable, x, y, r, sx, sy, ox, oy, kx, ky )R是旋转..为什么你不直接将它设置为一个变量,然后根据你的喜好改变它呢?我是编程新手,所以我可能是错的,但这就是我要做的。
https://stackoverflow.com/questions/10708034
复制相似问题