プログラミング未経験だけどゲームつくる - 7 : ライフと制限時間を設定する【LOVE2d】
こんにちは、サトウダイスケです。
昨日は久々にMikkeller Tokyoに行ってきました。
道玄坂にあるビアバーです。ビール好きにはおすすめ。
さて、今日はライフと制限時間を設定したいと思います。
ライフを設定する
-- 各種パラメーターの初期化
nokori_soul = 3
time = 20
x = 0
neko_x = window_w-20
neko_center_x = neko_x+chara_w_h*scale/2+x
zimen_h = window_h/2.8+scale*chara_w_h
neko_center_y = zimen_h
damage = 0
damage_muteki = 0
damage_muteki_time = 2
damage_muteki_time_remaing = damage_muteki_time
now_time = 0
-- ソウルの描写
love.graphics.setColor(255, 255, 255)
for i=1 , nokori_soul do
love.graphics.draw(soul, 20+35*(i-1) , 20 , 0, 1, 1)
end
if nokori_soul == 0 then
game_start = false
end
Undertaleに則ってライフをソウルと呼んでます笑
まず、ゲーム開始時にロードしていた各種パラメーターですが、ゲームオーバーになったときに初期化されないといけないため、タイトル画面が表示されたときに読み込むように配置移動しました。
ソウルの画像はこれで読み込んでいます。
soul = love.graphics.newImage('images/soul.png')
デフォルトのソウルは3になっています。
nokori_soul = 3
nokori_soulが減ったらソウルの数を減らすのではなく、常にnokori_soulすべて描くようになっています。
for i=1 , nokori_soul do
love.graphics.draw(soul, 20+35*(i-1) , 20 , 0, 1, 1)
end
そして、nokori_soulが0になるとタイトル画面に戻るようにしました。将来的にはリザルト画面を出すことになるかと思います。
if nokori_soul == 0 then
game_start = false
end
制限時間を設定する
次に制限時間を設定します。
time = 20
20秒にしておきます。
now_time = 0
now_timeというものを初期化しておきます。
これは、1秒の経過を判断するために使用します。
次にfunction love.update(dt)内で、
-- 制限時間の計算
now_time = now_time + dt
if now_time > 1 then
now_time = 0
time = time - 1
end
前回の処理からの経過時間(dt)の和(=now_time)が1秒を超えた場合、timeから1秒を引きます。
そして、その描写が、function love.draw()内で、
-- 制限時間の計算
love.graphics.setColor(0, 0, 0)
love.graphics.print(time ,20, 60) -- 表示
if time <= 0 then
game_start = false
end
です。
0以下になるとタイトル画面に戻ります。
といった感じで、ライフの設定と制限時間の設定ができました。
次回は石ころをランダム生成したいと思います。
この記事が気に入ったらサポートをしてみませんか?