LÖVEのいろは

ゲームの作りかた

ゲームファイルを作ってみましょう。このページでは、ゲームファイルの作り方を説明します。まず、①ゲームファイルを分解し、ゲームファイルの構成を説明します。次に、 ②ゲームファイルの中身を書き換えてみます。最後に、③ゲームファイルの分解と逆の手順でゲームファイルを作ります。[*1]

[*1]実際のゲーム開発では、②→③→②→③...と繰り返していくことになります。 ①は、「LÖVEのいろは」等でサンプルのゲームファイルの中身を見たい時、覚えておくと便利です。

用意するもの

ゲームのファイル [Sample]今回の解説で使用するサンプルを用意しました。
テキストエディタ[Link]テキストファイルが作れるアプリケーションです。基本的に、なんでも構いませんが、Luaに対応していると良いともいます。。[*2]
ZIPファイルの圧縮/解凍ソフトゲームファイルの圧縮/解凍に使用します。[*3]

[*2]"Word"のようにワードプロセッサー(ワープロ)のことではなく、テキストエディタです…。

[*3]:Vista以降のWindows、Mac、Linuxの場合は用意不要です。もともと搭載されている機能でZIPファイルの圧縮/解凍ができます。

今回のサンプル(書き換え前)

今回のサンプルを実行すると以下のようになります。クリックすると少しだけLOVE子の位置が上に移動します。 このままでは虚しいですね…。 書き換えてしまいましょう。

①ゲームファイルを分解する

まず、ゲームファイルの中身がどうなっているか見てみましょう。ゲームファイルは".love"ファイル形式で保存されていますが、実態は"zip"形式の圧縮ファイルです。

1.ファイル名を".love"から".zip"へ

".love"形式のファイルの名前を変更し、".zip"形式にします(例:iroha.love > iroha.zip)。".zip"形式にすることで、PCがゲームファイルを圧縮ファイルと認識できるようになります。

2.圧縮ファイルを解凍

Windowsの場合、右クリック>全て展開 の手順で解凍できます。

Macの場合、対象のファイルをダブルクリックすると解凍できます。

ファイルの構成

さて、今回サンプルで用意したのは"main.lua"という".lua"形式のファイルと、ゲームの画像".png"形式のファイルのみです。 ゲームを作る時、".love"ファイルは以下のような構成でファイルを配置していきます。

プログラムファイル".lua\"形式のテキストファイルです。ゲームをどのように実行するかという指示(プログラム)を書きます。"Lua"というプログラム言語を採用しています。
アセットファイル(素材)ゲームに使用する素材のファイルです。画像、音楽、フォント、テキストファイル、動画等用途によって様々な形式のファイルを配置します。
フォルダ".love"ファイル内は、アセットとフォルダを管理しやすくするために、自由にフォルダを作ることができます。

②ゲームファイルの中身を書き換える

この".lua"形式のファイルにゲームのプログラムを書いています。テキストエディタで見てみましょう。 いきなり内容量が多いですが、いまは細かい内容までは理解しなくてOKです。

--準備するブロックはじめ
function love.load()
   --寝ているLOVE子の画像を読み込んでloveko_oyasumiという名前の変数(値の入れ物)に入れる
   loveko_oyasumi = love.graphics.newImage("/imgs/loveko_sleep_x4.png")
   --起きているLOVE子の画像を読み込んでloveko_ohayoという名前の変数(値の入れ物)に入れる
   loveko_ohayo = love.graphics.newImage("/imgs/loveko_wakeup_x4.png")
   --おやすみの画像をprint_imgという名前の変数に入れる。
   print_img = loveko_oyasumi  
   --loveko_yという名前の変数(値の入れ物)に100を入れる。
   loveko_y = 100
   --loveko_speekという名前の変数(値の入れ物)にZzz...という文字列を入れる。
   loveko_speek = "Zzz..."
end
--準備するブロックおわり


--描画するブロックはじめ
function love.draw()
    --一旦キャンバスををクリア
    love.graphics.clear()
    --次の色を白に設定(赤が255,青が255,緑が255の色 (255がMAX))

    love.graphics.setColor(255,255,255)
    --画像を表示(print_imgの中の画像、xが100、yがloveko_yの位置)
    love.graphics.draw(print_img,100,loveko_y)

    --次の色をグレーに設定(赤が255,青が0,緑が0の色 (255がMAX))
    love.graphics.setColor(255,0,0)
    --文字を表示(textの中のという文字列,xが50,yが10の位置)
    love.graphics.print(loveko_speek,50,10)
end
--描画するブロックおわり


--更新するブロックはじめ
function love.update(dt)
   
end
--更新するブロックおわり


--マウスが押されたときの内容を書くブロックはじめ
function love.mousepressed(x,y,button,istouch)
   --LOVE子の上からの位置を80にする。
   loveko_y = 80
end
--マウスが押されたときの内容を書くブロックおわり

今回は、クリックされてからLOVE子の高さ(上からの位置)が100から80になった時、LOVE子の画像とテキストを変えてみようと思います。 なんども言いますがこのページではプログラムの細かい内容について理解していなくてよいです。

--更新するブロックはじめ
function love.update(dt)
   
end
--更新するブロックおわり

以下のように書き換えます。書き換える際、全角スペースを使わないで、半角スペースで入力してください。

--更新するブロックはじめ
function love.update(dt)
   --LOVE子の位置が80の時、then~endまでの処理を行う。
   if loveko_y == 80 then
       --おはようの画像をprint_imgという名前の変数に入れる。                                                
      print_img = loveko_ohayo
      --表示する内容をohayoに変更する。                                                                     
      loveko_speek = "ohayo"
   end
end
--更新するブロックおわり

上記のように書き換えが終わったら、ゲームファイルを作ってみましょう。

③ゲームファイルを作成する

実際に②で書き換えたゲームファイルを作成します。 作り方は①と逆の手順です。

1.ファイルを圧縮

まずは編集したファイルと素材を圧縮ファイルに閉じ込めます。圧縮する時に一つ注意があります。「main.luaはzipファイルの一番上の階層のフォルダに入れておく」 ということです。"main.lua"は特別で、一番上のフォルダにあるときだけ、読み込まれます。

2.ファイル名を".zip"から".love"へ

".zip"形式のファイルの名前を変更し、".love"形式にします(例:iroha.zip > iroha.love)。 ".love"形式にすることで、PCが圧縮ファイルをゲームファイルとして認識できるようになります。

3.ゲームを実行する

実行方法は前のセクションでも説明していますが、ダブルクリックをするだけです。

実行して画面をクリックして見ましょう。以下のように、LOVE子が起きれば成功です。

一応書き換え後のサンプルも用意しました。 こちらからダウンロードしてください。

top

このウェブページはLÖVE公式ではありません。hakolife.net[hako 生活]