敵のデータを構造体にして、8体のデータを配列にしたいです。
最終的にはEnemy.〇で呼び出したいです。
typedef struct{
double x;
double y;
double muki;
double radius;
int image;
int counter;
}Enemy_t;
ship3_image = LoadGraph("ship3.png");
Enemy_t Enemy[8];
Enemy_t Enemy[8]={
{400, 50, 0, 10, ship3_image, 0},
{400, 100, 0, 10, ship3_image, 0},
{400, 150, 0, 10, ship3_image, 0},
{400, 200, 0, 10, ship3_image, 0},
{400, 250, 0, 10, ship3_image, 0},
{400, 300, 0, 10, ship3_image, 0},
{400, 350, 0, 10, ship3_image, 0},
{400, 400, 0, 10, ship3_image, 0},
};
これで
Enemy[0].x == 400
Enemy[0].image == ship3_image
といった具合になるのでしょうか?
c言語初心者で3日悩んだけれども解決しなかったので、質問させて頂きます。
何か解決策があればご教授下さい。
敵のデータの構造体と配列
Re: 敵のデータの構造体と配列
解決策も何も、そうなるかどうか確かめてみればいいのではないでしょうか?
それとも suimasenさんの思っているようにならなかったのですか?
それとも suimasenさんの思っているようにならなかったのですか?
-
suimasen
Re: 敵のデータの構造体と配列
>> h2so5
なりませんでした・・・
敵のデータの要素を8体分を手動で決める方法は何か御存じでないですか?
初期化がなかなかできません
お願いします
なりませんでした・・・
敵のデータの要素を8体分を手動で決める方法は何か御存じでないですか?
初期化がなかなかできません
お願いします
Re: 敵のデータの構造体と配列
ではどうなったのですか?suimasen さんが書きました:>> h2so5
なりませんでした・・・
実際に動かしたときの完全なコードも見せてください。
Re: 敵のデータの構造体と配列
初期化できないというのは、2重定義のエラーが出るということでしょうか?suimasen さんが書きました: Enemy_t Enemy[8];
Enemy_t Enemy[8]={
{400, 50, 0, 10, ship3_image, 0},
{400, 100, 0, 10, ship3_image, 0},
{400, 150, 0, 10, ship3_image, 0},
{400, 200, 0, 10, ship3_image, 0},
{400, 250, 0, 10, ship3_image, 0},
{400, 300, 0, 10, ship3_image, 0},
{400, 350, 0, 10, ship3_image, 0},
{400, 400, 0, 10, ship3_image, 0},
};
とにかく、質問の意味が分からないですよ。
non
-
suimasen
Re: 敵のデータの構造体と配列
このソースファイルはだいたいこんな感じです。
typedef struct{
int x;
int y;
double muki;
int radius;
int image;
int counter;
}Enemy_t;
static int ship3_image = LoadGraph("ship3.png");
Enemy_t Enemy[8]={
{400, 50, 0.0, 10, ship3_image, 0}, //{Enemy[0].x=400, ・・・,Enemy[0].image=ship3_image
{400, 100, 0.0, 10, ship3_image, 0}, //と格納されているのでしょうか?
{400, 150, 0.0, 10, ship3_image, 0},
{400, 200, 0.0, 10, ship3_image, 0},
{400, 250, 0.0, 10, ship3_image, 0},
{400, 300, 0.0, 10, ship3_image, 0},
{400, 350, 0.0, 10, ship3_image, 0},
{400, 400, 0.0, 10, ship3_image, 0},
};
void Enemy_Initialize(){
}
void Enemy_Calc(){
}
void Enemy_Graph(){
for(m_i=0; m_i<8; m_i++){
DrawRotaGraph(Enemy[m_i].x, Enemy[m_i].y, 1.0, Enemy[m_i].muki,
LoadGraph("ship3.png"), [/color][/color]TRUE);
}
}
void Enemy_Finalize(){
}
LoadGraph("ship3.png"),
と入力すれば表示されました。しかしここを
Enemy[m_i].image
入力すれば画像が表示されるようにしたいです。こうすることで、[m_i]番目の敵の(x,y)座標や画像を設定できます。
今のままでは何も表示されませんでした。おそらく格納されていないからだと思います。
typedef struct{
int x;
int y;
double muki;
int radius;
int image;
int counter;
}Enemy_t;
static int ship3_image = LoadGraph("ship3.png");
Enemy_t Enemy[8]={
{400, 50, 0.0, 10, ship3_image, 0}, //{Enemy[0].x=400, ・・・,Enemy[0].image=ship3_image
{400, 100, 0.0, 10, ship3_image, 0}, //と格納されているのでしょうか?
{400, 150, 0.0, 10, ship3_image, 0},
{400, 200, 0.0, 10, ship3_image, 0},
{400, 250, 0.0, 10, ship3_image, 0},
{400, 300, 0.0, 10, ship3_image, 0},
{400, 350, 0.0, 10, ship3_image, 0},
{400, 400, 0.0, 10, ship3_image, 0},
};
void Enemy_Initialize(){
}
void Enemy_Calc(){
}
void Enemy_Graph(){
for(m_i=0; m_i<8; m_i++){
DrawRotaGraph(Enemy[m_i].x, Enemy[m_i].y, 1.0, Enemy[m_i].muki,
LoadGraph("ship3.png"), [/color][/color]TRUE);
}
}
void Enemy_Finalize(){
}
LoadGraph("ship3.png"),
と入力すれば表示されました。しかしここを
Enemy[m_i].image
入力すれば画像が表示されるようにしたいです。こうすることで、[m_i]番目の敵の(x,y)座標や画像を設定できます。
今のままでは何も表示されませんでした。おそらく格納されていないからだと思います。
Re: 敵のデータの構造体と配列
画像が表示されないからと言って格納されていないと考えるのは早とちりです。suimasen さんが書きました: Enemy[m_i].image
入力すれば画像が表示されるようにしたいです[/color]。こうすることで、[m_i]番目の敵の(x,y)座標や画像を設定できます。
今のままでは何も表示されませんでした。おそらく格納されていないからだと思います。
格納されていないと思うなら、本当に ship3_image と Enemy[m_i].image の数値が異なっているか確かめてみてください。
一応種明かしをしておくと、
DxLib_init の前に LoadGraph関数を実行すると読み込みに失敗するため、画像は表示されません。
-
suimasen
Re: 敵のデータの構造体と配列
>>h2so5 さん
>>nonさん
なるほど、自分では気づけない問題点でした。
助けてくれて、ありがとうございます。もっと勉強してきます。
お世話になりました。
また何かあったら助けて頂けたら幸いです。
>>nonさん
なるほど、自分では気づけない問題点でした。
助けてくれて、ありがとうございます。もっと勉強してきます。
お世話になりました。
また何かあったら助けて頂けたら幸いです。