「Gamemakerでゲームを作って見よう」
ということで、作業メモっぽい使い方をする予定。
愚痴なんかが多くなるかも・・・
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
所謂ライフゲージ、ライフバーといわれるものなのですが、現在キャラが装備している武器の情報も表示できるようにしました。
5つの枠を一つにまとめたものをスプライトとして用意し、draw_spriteで記述します。
この際、すでにスプライトを持ているオブジェクトで行うと、本来のスプライトが消えてしまいますので、注意が必要です。
また、ゲージは常に画面の決まった場所に表示されている方がいいでしょうから、表示位置の指定で工夫が必要です。
僕の場合、Viewを使っているので、
x=view_xview[0] + 57
y=view_yview[0] + 3
としています。
view_xview[0]、view_yview[0]はそれぞれviewの中でのx,yの座標を表しています。
こうすることで、常にviewの左上にゲージが表示されるようになります。
ここにライフゲージを表示するわけですが、やってみたらやり方がいろいろと見つかりました。
1.四角形を描く
draw_rectangleという関数で4つの座標指定で四角形を描くことができるます。
一つ目、二つ目の座標で始点のx、y座標を
三つ目、四つ目で終点のx、y座標を指定します。
この三つ目の終点のx座標がポイントでして
始点のx座標 + (現在のHP ÷ 最大HP)×ゲージの最大長さ
で表示することができます。
2.draw_healthbar
Gamemakerにはライフバーを描くための関数があります。
「ならそれを使えよ」
と思われるかもしれませんが、まさにそのとおりw
とはいえ色々試してみたいのが人情というものです。
この関数では表示位置、バーのパーセンテージ、背景色、
最大の時の色、最小の時の色、バーの変化の方向、
背景枠の有無、枠の有無を設定できます。
3.スプライトを使う
僕が現在使っている方法です。
まず、ライフバー用のスプライトを用意します。
サイズは1×8です。
これをつかったオブジェクトを作成しまして、image_xscaleを使います。
image_xscaleはスプライトの横方向の倍率を表すもので、この値を変更することで画像を横に引き延ばすことができます。
そこで先ほどの1×8の画像の倍率を現在のライフの値に合わせて変えていきます。
image_xscale = (現在のHP÷最大HP)×最大の長さ
とすることで画像が現在の体力に合わせて伸び縮みします。
この方法の利点はグラデーションやアニメーションのような表現をライフバーに持たせることができるということです。
他にも縦横比を利用した表現などいろいろ試してみましたが、現在はスプライトを使う方法で安定しています。
PR
この記事にコメントする
アクセスカウンター
プロフィール
HN:
岩
性別:
男性
趣味:
読書・ゲーム
自己紹介:
・好きな作家
夢枕獏/綾辻行人/椎名誠/北杜夫/スティーブンキング
・ハマったゲーム
R-TYPE/WILD ARMSシリーズ/イースシリーズ/九龍妖魔学園紀/SIREN/ぐわんげ/プロギアの嵐/エスプレイド/エスプガルーダ/式神の城
夢枕獏/綾辻行人/椎名誠/北杜夫/スティーブンキング
・ハマったゲーム
R-TYPE/WILD ARMSシリーズ/イースシリーズ/九龍妖魔学園紀/SIREN/ぐわんげ/プロギアの嵐/エスプレイド/エスプガルーダ/式神の城
カレンダー
ブログ内検索
最新記事
(03/21)
(01/17)
(10/05)
(08/05)
(07/27)
忍者アナライズ