2018/06/24(日) [n年前の日記]
#1 [love2d] love2dのdrawについてのサンプル
love2d 11.1 + Windows10 x64 で、love.graphics.draw() について動作確認。
_love.graphics.draw - LOVE
基準点を指定すれば、指定座標を左上以外にできるし、回転や拡大縮小の基準点も任意の位置にすることができると分かった。
_love.graphics.draw - LOVE
- 上の3つが、基準点を指定しないで描画した場合。
- 下の3つが、基準点を指定して描画した場合。
基準点を指定すれば、指定座標を左上以外にできるし、回転や拡大縮小の基準点も任意の位置にすることができると分かった。
◎ ソースと画像。 :
ソースは以下。
_main.lua
_conf.lua
使用画像は以下。
_box01_64x64.png
_gridbg.png
ソースと画像を同じフォルダに入れて、
_main.lua
-- Draw Origin test 01
function love.load()
img = love.graphics.newImage("box01_64x64.png")
bgimg = love.graphics.newImage("gridbg.png")
rotation = 0
scale = 1.0
scale_rot = 0
end
function love.update(dt)
rotation = (rotation + 180 * dt) % 360
scale_rot = (scale_rot + 180 * dt) % 360
scale = 1.0 + 0.5 * math.cos(math.rad(scale_rot))
end
function love.draw()
love.graphics.clear(0, 0, 0, 1.0)
love.graphics.setColor(1.0, 1.0, 1.0, 1.0)
love.graphics.draw(bgimg, 0, 0)
local x = 64
local y = 64 * 2
local rot = math.rad(rotation)
love.graphics.draw(img, x, y)
x = x + 64 * 3
love.graphics.draw(img, x, y, rot)
x = x + 64 * 3
local rot = math.rad(rotation)
love.graphics.draw(img, x, y, 0, scale, scale)
x = 64
y = y + 64 * 3
local ox, oy = img:getWidth() / 2, img:getHeight() / 2
love.graphics.draw(img, x, y, 0, 1, 1, ox, oy)
x = x + 64 * 3
love.graphics.draw(img, x, y, rot, 1, 1, ox, oy)
x = x + 64 * 3
love.graphics.draw(img, x, y, 0, scale, scale, ox, oy)
love.graphics.print(tostring(love.timer.getFPS()).." FPS", 10, 10)
end
function love.keypressed(key, isrepeat)
if key == "escape" then
-- ESC to exit
love.event.quit()
end
end
_conf.lua
function love.conf(t) t.window.width = 640 t.window.height = 480 t.window.title = "Draw Origin 01" t.window.vsync = 1 -- t.window.fullscreen = false -- t.window.fullscreen = true -- t.window.fullscreentype = "exclusive" end
使用画像は以下。
_box01_64x64.png
_gridbg.png
ソースと画像を同じフォルダに入れて、
love フォルダ名で実行。
[ ツッコむ ]
以上です。