ステータスポイントに応じた職業の表示
- サンプルのJARファイルはページの一番下(スポンサーリンクよりも↓)に張ってあるので自由にダウンロードしてくださぃ♪
今回は、各ステータスに割り振られた値に応じて職業を表示させてみます。
実はこれは未完であり、問題点もあって参考にはならないかも知れないです。
主にCharaクラスを変更してあるのでCharaクラスを中心に見ていきます。
Charaクラスのボーナスポイントの加算処理を掲載します。
//ステータスの加算
public void plusStatus(int list){
//引数で渡された値のリスト内容をString型に
strParam=Param.get(list).toString();
//String型からint型へ変換して加算
point=Integer.parseInt(strParam)+FIR;
//ボーナス値を減算
minusBonus(list);
//ボーナスが0になった場合
if(flag_Bonus){
//加算処理をやめる
point=Integer.parseInt(strParam);
//ステータスが18を超えた場合
}else if(point>18){
//上限を18にする
point=18;
}else if(point>=12){
this.list=list;
flag_Charas=true;
loadParam("/menu/charas.dat");
}
strParam=""+point;
Param.set(list,strParam);
}
まず細かいところですが、最初のString型に変換するところでtoString()を使用することによって
簡潔に変換しています。
その他の変更点として、ステータスが規定値(今回は12)に達した場合に該当する職業を表示する処理が加わっています。
if(point>=12)の部分がそれですね!
これはステータスが12以上になった場合に該当する職業を右側に表示させるものです。
処理としてはlistというint型の変数に引数として渡されたlistを入れています。
これは職業を表示するときに使用していますので、後で説明します。
続いてflag_Charasをtrueにしていますね。このflagがtrueになると職業の表示が行なわれます。
この詳細も後ほど。そしてloadParamにてファイルの読み込みを行ないます。
これはMainPanelクラスにあるものと全く同じなので説明は省略します。
続いて職業を表示する処理です。
if(flag_Charas){
switch(list){
case RESET:
g.drawString(Charas.get(RESET).toString(),px+x+CL+CL,y);
break;
case SEC:
g.drawString(Charas.get(FIR).toString(),px+x+CL+CL,y+CL);
break;
case THI:
g.drawString(Charas.get(SEC).toString(),px+x+CL+CL,y+CL*SEC);
break;
case FOU:
g.drawString(Charas.get(THI).toString(),px+x+CL+CL,y+CL*THI);
break;
}
}
this.inputName=menu.inputName();
//名前の表示
g.drawString(inputName,px-x,py-CL*THI);
}
見ての通り、このときにflag_Charasとlistを使用しています。
flagが立った時にlistの番号に該当する職業を表示する処理です。処理としては簡単ですょね??
ただ問題もあり、この手法では職業が1つしか表示できないことです。
例えば力と知恵が両方12以上ある場合に本来ならば戦士と僧侶が表示されるはずなのですが
この場合だとどちらか一方しか表示できません。
なので、ここの処理でswitchを使うのはどうかと思っているのが現状です。
しかし、他の方法で表示させるにしてもどうやって該当する職業だけを表示させたらいいかがわからなぃのです。
また検討してみますので、少々お待ちを!
最終更新:2008年07月09日 01:29