今DXライブラリで、長さを固定したHPゲージを作っているのですが、とても難儀しています。
言葉では上手く説明しづらいのですが例えば、長さ100ドットのゲージがあり、MHPが2だとしたら、HPが1減る毎に50ドットを短く。
逆にMHPが200だったら、HPが2減る毎に1ドット短くしたいのです。
どうすれば出来るでしょうか?よろしくお願いします。
長さの固定されたHPゲージの作り方
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: 長さの固定されたHPゲージの作り方
至って簡単ですよ。
実行結果
[youtube][/youtube]
キモは
長さ*hp/hpMax
です。
長さはMAXの長さです。
MAXの長さに今のHPの割合hp/hpMax(1が最大)をかけてやればいいのです。
#include "DxLib.h"
void DrawHP(int hp, int hpMax){
int color = GetColor(255,255,255);
DrawBox(100,100,100+200,100+20,color,FALSE); //枠を描画
DrawBox(100,100,100+200*hp/hpMax,100+20,color,TRUE); //HPゲージを描画
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
int hp=0, hpMax=180;
while(!ScreenFlip()&&!ProcessMessage()&&!ClearDrawScreen()){
DrawHP(hp,hpMax);
hp++;
if(hp>=hpMax){
hp=0;
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
[youtube][/youtube]
キモは
長さ*hp/hpMax
です。
長さはMAXの長さです。
MAXの長さに今のHPの割合hp/hpMax(1が最大)をかけてやればいいのです。