Hiragi(GKUTH)の日常
理系大学生の日記

久しぶりにSTG制作日記

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前
住所: 大阪府
連絡を取る:

久しぶりにSTG制作日記

投稿記事 by Hiragi(GKUTH) » 9年前

なんか最近ほとんどがっつりやってなかったので、無理をしてプログラミングしてみました。 前回の続きでやろうと思って...

 まずまだ規模が小っちゃかったのでDxLib->Siv3Dへ移植(?)してみました。たぶん合計して3時間ないぐらいで移植完了、コピペメインでちょこっとづつ修正。
DxLibより行数が減った!!!(体感的に) 特にライブラリのほうでcsvの読み込みがサポートされているのはとても大きい。むっちゃ楽です。
それとデプスステートとか(動かんかったけど)結構DxLibに比べて便利な機能がそろっている気がする。でも分割された画像を配列ごとに...的な機能はなかったので、
自分で実装する必要がありました。

 で、移植完了後とりあえずなんか実装しないと、ということで効果音の再生、制御の関数を作って終わり、結局この前質問させていただいたあのあたり判定云々は解決せず。
設計から見直すって、どうすりゃいいんだー。まぁまた今度大量の時間が取れたら考えてみるとしましょうかね。


こんな感じで描画の前面や背面が制御できる

CODE:

	//描画順序定義 上ほど背面に描画される
enum
{
	DEP_BACK,
	DEP_ENEMY_SHOT,
	DEP_ENEMY,
	DEP_PLAYER_SHOT,
	DEP_PLAYER,
	DEP_BOARD,
	DEP_SCORE,
	DEP_MENU,
};

void Back::Draw()
{
		//背景画像
	Graphics2D::SetZ(DEP_BACK);
	BackImg.draw(BackPos.x,BackPos.y);
	BackImg.draw(BackPos.x, BackPos.y + BackImg.height);
	BackImg.draw(BackPos.x, BackPos.y - BackImg.height);
	BackImg.mirror().draw(BackPos.x + BackImg.width, BackPos.y);
	BackImg.mirror().draw(BackPos.x + BackImg.width, BackPos.y + BackImg.height);
	BackImg.mirror().draw(BackPos.x + BackImg.width, BackPos.y - BackImg.height);

		//ボード描画
	Graphics2D::SetZ(DEP_BOARD);
	BoardImg.draw(0,0);
}
そしてcsvは専用の型が用意されているという...

CODE:

void Manager::LoadEnemyData()
{
	EnemyData_t data[ENEMY_MAX];
	const CSVReader csv(L"src/enemy/enemy00.csv");

	for (int i = 0;i (row, 0);
		data[i].s_type		= csv.get(row, 1);
		data[i].m_pattern	= csv.get(row, 2);
		data[i].s_pattern	= csv.get(row, 3);
		data[i].in_time		= csv.get(row, 4);
		data[i].stop_time	= csv.get(row, 5);
		data[i].shot_time	= csv.get(row, 6);
		data[i].out_time	= csv.get(row, 7);
		data[i].x			= csv.get(row, 8);
		data[i].y			= csv.get(row, 9);
		data[i].speed		= csv.get(row, 10);
		data[i].hp			= csv.get(row, 11);
		data[i].item		= csv.get(row, 12);
	}
...etc
}
便利すぎるぜSiv3Dめ....!

コメントはまだありません。