平面旋转,也即 xy 旋转,本人自创的词儿 😂
效果就是向月亮环绕地球的旋转,只不过不自转
-- Example: Rotating images
angle = 0
function love.load()
image = love.graphics.newImage("assets/love-ball.png")
end
function love.update(dt)
angle = (angle + dt) % (2 * math.pi) --决定了图片的向心旋转
x, y = 400 + math.cos(angle)*100, 300 + math.sin(angle)*100 --决定了图片位置的旋转
end
function love.draw()
--image:图片本身
--x,y:图片位置坐标
--angle:图片旋转角度,加上这个参数,会在指定位置上旋转图片指定角度
love.graphics.draw(image, x, y,angle)
end
love 本身的 API 还是很好理解的,问题是在于数学函数的运用,用什么样的函数做出什么样的运动轨迹,很考验数学水平了吧
真是个悲伤的故事……
z 旋转,也就是自转了,不知道这么说能懂不,不行自行运行代码看吧 😆
(因为截图总是一帧,没有视觉残留造成的效果,录 GIF 又失帧严重,没办法了)
-- Example: Rotation and scaling
angle = 0
function love.load()
image = love.graphics.newImage("assets/love-ball.png")
end
function love.update(dt)
angle = angle + dt
x, y = 400 + math.cos(angle)*100, 300 + math.sin(angle)*100
end
function love.draw()
local rot = angle*180/math.pi
local sx = math.cos(angle)*3
local sy = math.sin(angle)*2
--与之前相比,多了四个参数
--sx,sy:分别对应x、y坐标的缩放比例
--32,32:x、y坐标原点偏移值
love.graphics.draw(image, x, y, rot, sx, sy, 32, 32)
end
我没有完全闹明白这些参数的含义,比如为什么上一段代码图片是向运动轨迹中心旋转自身角度,而这一段似乎有所偏移,并且出现绕心旋转的现象
通过调整后面四个的参数产生了很多有趣的图案(有点像万花筒),不妨试试
通过这个函数,飞镖旋转什么的应该很容易做到了
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于