山水堂
A004.コールバックへの記述
さて、前回の最低限のソースを見て、判ったことがあると思います。
これね。
-- main.lua function love.draw() love.graphics.print("Hello World", 400, 300) end
--で始まるのは、コメントです。
functionからendまでは、luaの関数の表記です。
関数の中に処理を記述していきます。
さて、ここで重要なのが「love.draw」という関数名です。
loveで、ぴん、と来ると思いますが、loveで始まるものは、Luaとは別に、LÖVEで提供されているものです。
loveで提供するdraw(描画)用の関数ですよ!ということです。
描画に関する内容は、すべてこの中に記述していきます。
逆を言うと「描画以外の処理はここには記述していけない」ということです。
それぞれの機能ごとにコールバック関数が用意されているので、主なものを列挙しましょう。
function love.load() -- 画像や音楽ファイルを読み込むよ! end
読み込み時のコールバック関数です。
LOVEの実行時に一度だけ、最初の方で呼ばれます。
画像や音楽ファイルの読み込み等をここで行います。
function love.update(dt) -- 更新処理を書き込むよ! end
更新用のコールバック関数です。
一秒間に何十回もこの関数が呼ばれます。
そのため、この中でファイルの読み込み等を頻繁に繰り返さないことが重要です。
プレイヤーの動きや、アニメーションの切替等の処理全般をここで行います。
function love.keypressed(key, isrepeat) -- キーが押された! end function love.keyreleased(key) -- キーが離れた! end
キーボード関連のコールバック関数です。
押されたときと、離れた時にキーの値を取得することが出来ます。
function love.mousepressed(x, y, button) -- マウスボタンが押された! end function love.mousereleased(x, y, button) -- マウスボタンが離れた! end
マウス関連のコールバック関数です。
押されたときと、離れた時に位置とボタンの値を取得することが出来ます。
function love.textinput(text) -- 文章が入力された! end
キーボード入力のテキスト取得用コールバックです。
キーボードの内容だと不都合なSHIFTを押しながら~等のテキスト情報を取得するにはこちらを利用すると、とても便利です。
上のものを駆使するだけでも、大抵のゲームが作れそう、わくわくどきどき!
ここに挙げた代表的なものとは別に、他にも様々なコールバックがあります!
詳しいことを知りたい場合はwikiを参考にしてみてください。