プロフィール

inuki

  • Author:inuki
  • "■"
    Flashでゲームとか、
    いろんなものつくってたり
■作ったゲーム+α
■作ったもの[ゲーム以外]
"PUSH!"-[WEB拍手]
カテゴリー
ランキング

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

円状の体力ゲージ

Flashのお勉強
つい最近endFill()というのを知った
これは動的に引いた線の中を塗りつぶすといったもの

これがまた便利
長年の謎だった、初代キングダムハーツのHPゲージを再現することに成功



まぁ、いわゆる、円状のゲージというやつです、ハイ

やっぱりソースとか書いたほうがいいんだろうか・・?
一応乗せておこう

以下糞コード

var health =250;//ゲージの総量
var radius = 30;//内周の半径
var radius2 = 40;//外周の〃
var ring_max = 36;//円を形成するポイントの数
var defaltpos = 180;//リングの始まるポイント

create_posX =100;//リングの位置
create_posY =100;

_root.createEmptyMovieClip ("board", 1000);
board._x = board._y =0;
RingHealth();
function RingHealth(){
board.clear();

//線の外周にポイントを設置
for(i=0;i< ring_max;i++){
_root.attachMovie("p","p"+i,i);
_root["p"+i]._alpha =0;
_root["p"+i].rot =(i/ring_max * health) -defaltpos;
_root["p"+i].rad = _root["p"+i].rot * Math.PI / 180;
_root["p"+i]._x = Math.cos(_root["p"+i].rad) * radius + create_posX;
_root["p"+i]._y = Math.sin(_root["p"+i].rad) * radius +create_posY;
}
//リングの内周にポイントを設置
for(i=0;i<(ring_max);i++){
n=i+ring_max;
_root.attachMovie("p","p"+n,i+ring_max);
_root["p"+n]._alpha =0;
_root["p"+n].rot =(i/ring_max * health) -defaltpos;
_root["p"+n].rad = _root["p"+n].rot * Math.PI / 180;
_root["p"+n]._x = Math.cos(_root["p"+n].rad) * radius2 + create_posX;
_root["p"+n]._y = Math.sin(_root["p"+n].rad) * radius2 + create_posY;
}

//線を描画
board.lineStyle(2, 0x000000, 0);
_root.board.beginFill (0xFF0000, 100);
board.moveTo(p0._x,p0._y);
for(i=0;i<(ring_max);i++){
board.lineTo(_root["p"+i]._x, _root["p"+i]._y);
}
for(i=ring_max*2-1;i>=ring_max;i--){
board.lineTo(_root["p"+i]._x, _root["p"+i]._y);
}


//塗る
_root.board.endFill();
}




で、pという名前のムービークリップを用意して、書き出し設定してやると円状のゲージが作れるはず

コメントの投稿

非公開コメント

FLASH置き場
■てすと@ついった
Amazon
■スポンサード リンク
■steam ID
Steam ID

L4DとかTF2やってます。
見かけたら遊んでやって下さい。
ぐ!
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。