前提・実現したいこと
ここに質問の内容を詳しく書いてください。
C言語を使い東方の弾幕ゲームもどきを作ってるのですが、敵の弾幕で
「弾が止まった状態で画面に沢山出現し、数秒後に動き出す」と言う弾幕を作りたい
のですが作り方が分からないので何方か教えてください。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
「C言語」 ソースコード
// 設定値
static const float FLOOR_Y = WINDOW_HEIGHT - 100.0f; // 床座標
// 出現パラメーター
// パーティクルパラメーター
static const int PIECE_MAX = 50; // パーティクルの総数
bool active[PIECE_MAX]; // 今使っているならtrue, 使ってなければfalse
int lifeTime[PIECE_MAX]; // ピースが出現している時間
float positionX[PIECE_MAX]; // 座標
float positionY[PIECE_MAX];
float velocityX[PIECE_MAX]; // 速度
float velocityY[PIECE_MAX];
static const int SPAWN_COUNT = 20;//1フレーム現数
//static const int LIFE_MAX = 120; //生きている時間
int timeCount;//出現時間数える
int PieceMove;
int pieceImage = -1;
float r;//円の半径(展開範囲)
float ang = 0.0f;
void EffectInit()
{
// 画像の準備
pieceImage = LoadGraph("data\texture\bullet2.png");
r = 100.0f; PieceMove = 0; // データを for (int i = 0; i < PIECE_MAX; i++) { active[i] = true; positionX[i] = 400.0f; positionY[i] = 300.0f; velocityX[i] = 0.0f; velocityY[i] = 0.0f; lifeTime[i] = 0; }
}
void EffectUpdate()
{
PieceMove += 1;
if (PieceMove <= 500) {
//r -= 0.5f; ang -= 0.05f; } for (int i = 0; i < PIECE_MAX; i++) { positionX[i] = r * ((float)i / PIECE_MAX) * cos(DX_PI / 18 * i + ang) + 400.0f; positionY[i] = r * ((float)i / PIECE_MAX) * sin(DX_PI / 18 * i + ang) + 300.0f; //positionX[i] = r * cos(DX_PI / 18 * i + ang) + 400.0f; //positionY[i] = r * sin(DX_PI / 16 * i + ang) + 300.0f; } /*for (int i = 0; 250 > PIECE_MAX; i++) { positionX[i] = r * cos(DX_PI / 18 * i - ang) - 400.0f; positionY[i] = r * sin(DX_PI / 18 * i - ang) - 300.0f; }*/
}
void EffectDraw()
{
for (int i = 0; i < PIECE_MAX; i++) {
if(active[i])
DrawRectGraph(positionX[i], positionY[i], 0, 32, 32, 32, pieceImage, true, false);
}
}
void EffectRelease()
{
DeleteGraph(pieceImage);
pieceImage = -1;
}
試したこと
色々試していたら螺旋の弾幕は出来たのですが
上記のような弾幕が作れませんでした。
補足情報(FW/ツールのバージョンなど)
Visual Sturdyを使用しています。
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー