準備する
ノートブックでもゲームを書くことができますが、シンプルで柔軟なのでSublime Text 2を使用します。 人気のあるすべてのデスクトッププラットフォームの愛をここからダウンロードできます。 Sublimeテキストを起動し、すぐに[ツール]-> [ビルドシステム]-> [新しいビルドシステム]に移動します。
{ "selector": "source.lua", "cmd": ["c:\\Program Files\\LOVE\\love", "${project_path:${folder}}"] }
(x64をお持ちの場合、愛へのパスを変更します)
これは簡単に開始するためのもので、Ctrl + Bを押すだけで十分です。 ゲームを保存するフォルダーを作成します。 その中でmain.luaを作成します。 ゲームのベースはこのファイルに保存されます。 Sublimeテキストでは、プロジェクトにフォルダーを追加します。 すべて準備完了です。 次のようなものが得られるはずです。
。
コードが欲しい!
すべてのロジックはlove.update(dt)関数で更新され、love.draw()で描画します。初期化はlove.load()です。 すぐにそれらを書きましょう:
function love.load() end function love.update(dt) end function love.draw() end
次に、画像を追加して、すぐに描画します。 画像はlove.graphics.newImage(ファイル名)関数を使用してロードされ、love.graphics.draw(image、x、y)に描画されます。 この写真をフォルダーに追加します。 そして、コードを書きます:
local habrImage, width, height function love.load() habrImage = love.graphics.newImage("habr.png") width = love.graphics.getWidth() height = love.graphics.getHeight() end function love.update(dt) end function love.draw() love.graphics.draw(habrImage, width / 2 - habrImage:getWidth() / 2, height / 2 - habrImage:getHeight() / 2) end
Ctrl + Bを使用すると、美しくないものがあるので、微調整して背景を白にしましょう。 レンダリングの開始時に次の行を追加します。
love.graphics.setBackgroundColor(255, 255, 255)
そして今、素敵な写真。
もちろんこれはすべてクールですが、ゲームに命を吹き込み、絵でアクションを実行しましょう。
-Rキーで、画像が回転します
-Sキーでは、画像が増減します
-Mボタンは画像を移動します。
これを実装するために、変数state(何が起きているかを担当します)、rotation(画像の角度)、scale(そのサイズ)、ox、ox(画像の中心のシフト)、delta(この変数は変数の更新を担当します)を追加します。 入力については、恋に、キーが下げられると、love.keypressed(キー、ユニコード)関数が呼び出され、love.keyreleased(キー)が上げられます。 キーの下降を追跡します。 次に、コード自体:
local habrImage, width, height, state, rotation, scale, ox, oy, delta -- function love.load() habrImage = love.graphics.newImage("habr.png") width = love.graphics.getWidth() height = love.graphics.getHeight() state = "none" resetVariables() end -- function resetVariables() rotation = 0 scale = 1 ox = 0 oy = 0 delta = 1 end -- function love.keypressed(key, unicode) if key == "r" then state = "rotation" resetVariables() elseif key == "s" then state = "scalling" resetVariables() elseif key == "m" then state = "moving" resetVariables() elseif key == "space" then -- (: state = "none" resetVariables() end end -- function love.update(dt) if state == "rotation" then -- rotation = rotation + delta * dt elseif state == "scalling" then -- scale = scale + delta * dt elseif state == "moving" then -- , : -- -- -- delta = delta + delta * dt local radius = 50 ox = radius * math.sin(delta) oy = radius * math.cos(delta) end end -- function love.draw() -- love.graphics.setBackgroundColor(255, 255, 255) -- love.graphics.draw(habrImage, width / 2 - habrImage:getWidth() / 2, height / 2 - habrImage:getHeight() / 2, rotation, scale, scale, ox, oy) end
紳士です ゲームを作って頑張ってください! ここであなたを助けるためにウィキとオフサイトです。
継続する。
Z.Y. これはすべて0.8.0で書かれています。
Z.Z.Y. 実行するビルドシステムを選択することを忘れないでください。