アイテムの点数を画面に張り付ける方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
TAG

アイテムの点数を画面に張り付ける方法

#1

投稿記事 by TAG » 15年前

を、現在改造してる龍神録で実装しようとしてるのですが
うまくいかなくて困ってます。
out.cpp内
//アイテムとの接触
void ch_and_item(){
	for(int i=0;i<ITEM_MAX;i++){
		if(item.flag>0){
			double x=item.x-ch.x,y=item.y-ch.y;
			if(x*x+y*y<ITEM_HIT_BOX*ITEM_HIT_BOX){
				switch(item.knd){
					case 0:
						break;
					case 1:
						item.flag2=1;
						if(ch.y<ITEM_GET_BORDER_LINE){	
							ch.score+=50000;//
							item.score+=50000;
						}
						for(int a=0;a<=347;a++){
							if(ch.y<ITEM_GET_BORDER_LINE+1+a&&ch.y>ITEM_GET_BORDER_LINE+a){		//itemボーダーらいんを超えたならば
								ch.real_score+=49900-a*100;
								item.score+=49900-a*100;
							}
						}略

graph.cpp内

//アイテム描画
void graph_item(){
	int i;
	for(i=0;i<ITEM_MAX;i++){
略
		if(item.flag2==1){
			int score	=item.score;			//アイテム用のスコア
			for(int a=0;a<6;a++){				//スコア表示
				DrawRotaGraph(item.x-13*a,item[i].y-10,1.0f,0.0f,img_num[0][score%10],TRUE);
				score/=10;
			}
		}
	}
}

と実装してるのですが、
アイテムのスコアが画面に張り付かずに
そのままアイテムと一緒に落下してしまうのですが、どうしたら
よいでしょうか?アドバイスお願いします・・

Justy

Re:アイテムの点数を画面に張り付ける方法

#2

投稿記事 by Justy » 15年前

 このスコアというのはトータルの得点ではなく、何か個別に表示が必要なスコアでしょうか。


>DrawRotaGraph(item.x-13*a,item.y-10,1.0f,0.0f,img_num[0][score%10],TRUE);

 ここが原因でしょうね。
 アイテムの位置を元にスコアを表示しているように見えます。
 なので、アイテムが移動すれば一緒にスコアもついていきます。

 多分スコアを表示しようとした瞬間の座標をどこかに覚えておいて、
その座標を元に表示すればうまくいくのではないかと思います。


 ところで余談ですが、今はアイテムの表示関数内でスコアを表示しているようですが、
いっそのことスコア表示システムを独立させて、アイテム側からリクエストを出して
表示してもらった方が汎用性があって(つまりアイテム以外からでもスコアが表示できるようになる)
いいのかもしれません。

閉鎖

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