長さの固定されたHPゲージの作り方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
はんなり
記事: 48
登録日時: 14年前

長さの固定されたHPゲージの作り方

#1

投稿記事 by はんなり » 9年前

今DXライブラリで、長さを固定したHPゲージを作っているのですが、とても難儀しています。
言葉では上手く説明しづらいのですが例えば、長さ100ドットのゲージがあり、MHPが2だとしたら、HPが1減る毎に50ドットを短く。
逆にMHPが200だったら、HPが2減る毎に1ドット短くしたいのです。

どうすれば出来るでしょうか?よろしくお願いします。

コード:

DrawBox(400,500,900-(tar->getmhp()-tar->gethp()%900),500+10,GetColor(100,255,100),TRUE);

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: 長さの固定されたHPゲージの作り方

#2

投稿記事 by Dixq (管理人) » 9年前

至って簡単ですよ。

コード:

#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が最大)をかけてやればいいのです。

アバター
はんなり
記事: 48
登録日時: 14年前

Re: 長さの固定されたHPゲージの作り方

#3

投稿記事 by はんなり » 9年前

サンプルまでつけていただいて、ありがとうございます!
おかげで助かりました!

閉鎖

“C言語何でも質問掲示板” へ戻る