敵が降ってくるプログラムを作りたいのですが、、、

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cupa
記事: 117
登録日時: 2年前

敵が降ってくるプログラムを作りたいのですが、、、

#1

投稿記事 by cupa » 2年前

たびたび失礼します、、、、
今、弾を発射するところまでいったのですが(STG作りです、みけCATさんに助けられました、、、)
敵を作ろうと思い考えたのですが、よくある弾幕のようなプログラムはまだ初心者の自分には早いと思い、ただランダムで敵が降ってきて、自機・敵ともに弾を撃ち、当たったら敵は消え(できれば爆発も)自機は3~5回当たるとゲームオーバー(4回までは赤く点滅)というのを作りたいのですが、コードや使う素材なども添付しておくのでコードのどこを変えたらいいのかサンプルプログラムを書いていただけると幸いです。
ちなみにVS Code C++を使っていて初心者の極みです、、、😢

コード:

#define WORLD_WIDTH 640
#define WORLD_HEIGHT 480
#define Tama 500
#define TEKI_MAX 5

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	int i;
	int j;

	int PienX, PienY, PienGraph;
	int PienTamaGraph, PienTamaX[Tama], PienTamaY[Tama], PienTamaFlag[Tama];
	int Teki1X[TEKI_MAX], Teki1Y[TEKI_MAX], Teki1Flag[TEKI_MAX], Teki1Graph;
	int titlebackground, gamebackground, titlefont, titlemojifont;
	int sht_sound;

	ChangeWindowMode(true);
	SetGraphMode(WORLD_WIDTH, WORLD_HEIGHT, 64);
	DxLib_Init();
	SetDrawScreen(DX_SCREEN_BACK);
	SetDrawMode(DX_DRAWMODE_BILINEAR);
	SetWindowText("生姜");

	for (i = 0; i < Tama; i++)
	{
		PienTamaFlag[i] = 0;
	}

	for (j = 0; j < TEKI_MAX; j++)
	{
		Teki1Flag[j] = 0;
	}

	titlebackground = LoadGraph("Game.title.jpg");
	gamebackground = LoadGraph("title2.jpg");
	PienGraph = LoadGraph("sprite.png");
	PienX = 320; PienY = 400;
	PienTamaGraph = LoadGraph("sht.jikishot.png");
	Teki1Graph = LoadGraph("killerT.png");
	titlefont = CreateFontToHandle("けいふぉんと", 50, 9, DX_FONTTYPE_ANTIALIASING_EDGE);
	titlemojifont = CreateFontToHandle("07やさしさゴシック手書き", 20, 5, DX_FONTTYPE_ANTIALIASING_EDGE);
	sht_sound = LoadSoundMem("sht.c.z.mp3");

	enum {
		TITLE,

		GAME,

		END,
	}status=TITLE;

	while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
	{
		ClearDrawScreen();

		switch (status)
		{
		case TITLE:
			DrawGraph(0, 0, titlebackground, 0);
			if (CheckHitKey(KEY_INPUT_Z)) {
				status = GAME;
				PlaySoundMem(sht_sound, DX_PLAYTYPE_BACK);
			}
			break;
		case GAME:
			DrawGraph(0, 0, gamebackground, 0);
			break;
		case END:
			break;
		}

		if (status == TITLE)
		{
			DrawStringToHandle(70, 200, "シューティングゲーム", GetColor(255, 255, 255), titlefont);
			DrawStringToHandle(30, 420, "Zでゲーム開始", GetColor(255, 255, 255), titlemojifont);
			DrawStringToHandle(30, 450, "ESCでゲーム終了", GetColor(255, 255, 255), titlemojifont);
			
		}

		if (status == GAME)
		{
			DrawGraph(PienX, PienY, PienGraph, true);

			if (CheckHitKey(KEY_INPUT_W))PienY -= 3;
			if (CheckHitKey(KEY_INPUT_A))PienX -= 3;
			if (CheckHitKey(KEY_INPUT_S))PienY += 3;
			if (CheckHitKey(KEY_INPUT_D))PienX += 3;


			if (CheckHitKey(KEY_INPUT_SPACE) == 1)
			{
				i = -1;
				for (int p = 0; p < Tama; p++) // 配列を走査し
				{
					if (PienTamaFlag[p] != 1) // 空いている場所を見つけたら
					{
						i = p; // その添字をiに設定
						break;
					}
				}
				if (i >= 0)
				{
					int Pw, Ph, Tw, Th;

					GetGraphSize(PienGraph, &Pw, &Ph);
					GetGraphSize(PienTamaGraph, &Tw, &Th);

					// 弾iの位置をセット、位置はボール君の中心にする
					PienTamaX[i] = (Pw - Tw) / 2 + PienX;
					PienTamaY[i] = (Ph - Th) / 2 + PienY;

					PienTamaFlag[i] = 1;
				}



				for (i = 0; i < Tama; i++)
				{
					// 自機の弾iの移動ルーチン( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う )
					if (PienTamaFlag[i] == 1)
					{
						// 弾iを16ドット上に移動させる
						PienTamaY[i] -= 20;

						// 画面外に出てしまった場合は存在状態を保持している変数に0(存在しない)を代入する
						if (PienTamaY[i] < -80)
						{
							PienTamaFlag[i] = 0;
						}

						// 画面に弾iを描画する
						DrawGraph(PienTamaX[i] + 10, PienTamaY[i] - 30, PienTamaGraph, true);
						DrawGraph(PienTamaX[i] - 10, PienTamaY[i] - 30, PienTamaGraph, true);
					}
				}
			}

			if (Teki1Flag[j] <= 5)
			{
				j = -1;
				for (int t = 0; t < TEKI_MAX; t++) // 配列を走査し
				{
					if (PienTamaFlag[t] != 1) // 空いている場所を見つけたら
					{
						j = t; // その添字をiに設定
						break;
					}
				}
				int TekiPattern = GetRand(640);

				Teki1X[j] = TekiPattern;

				Teki1Y[j] += 3;

				DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);
			}

			if (PienX > 640 - 64) PienX = 640 - 64;
			if (PienX <= 0) PienX = 0;
			if (PienY > 480 - 64) PienY = 480 - 64;
			if (PienY <= 0) PienY = 0;

			ScreenFlip();

		}
	}

	
	DxLib_End();

	return 0; 
}
コードはこんな感じので(汚くてすみません)

プロジェクトファイルです(爆発素材なども入っているので、、、) ↓
https://drive.google.com/drive/folders/ ... sp=sharing

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#2

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
 とりあえず、

https://visualstudio.microsoft.com/ja/v ... ad-preview

Visual Studio 2022 プレビュー(
はじめ、間違って VS2019 のプレビューをダウンロード & インストールしちまったみみ
)で、ビルドできましたみみ。

 これ以上の cupa 氏へのレスは、他の書き込みへのものも含めて 8/1(日)以降にするみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

cupa
記事: 117
登録日時: 2年前

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#3

投稿記事 by cupa » 2年前

すみません、あたっしゅさん、これはどういうことでしょうか。
VS2020PRE が出たのは知らなかったので教えてくれてありがとうございます。
でも、、、そのあとに記述されていること全部宣伝ですよね?
さらに質問と全く違うことを書かれているので意味が分かりません、
荒らしですよね、、、やめてもらいたいものです、、、

cupa
記事: 117
登録日時: 2年前

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#4

投稿記事 by cupa » 2年前

一つ勘違いしていました、、、最後の宣伝と思われたものは自己紹介?みたいなところに書くことが出ているだけでしたね、、、すみません。
ビルドができた、とおっしゃっていましたが、直ったということでしょうか、それともただVS2022でビルドが実行できたという意味でしょうか、もっと具体的に答えてほしいです、、、

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#5

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
 7/31 締め切りの ”仕事” の息抜きに、アクセスしているみみ。

> ビルドができた、とおっしゃっていましたが、直ったということでしょうか、それともただVS2022でビルドが実行できたという意味でしょうか、

 プロジェクトがダウンロード出来て、ビルドできた、という意味みみ。プロジェクトのダウンロードができない/うまくいっていないから、レスが付かないわけではない、ということを貴方に知らせる意味の書き込みみみ。

 自分は、質問主の為にレスしているわけではないみみ。自分のスキルを維持するためにレスしているみみ。だから、「課題なので締め切りに間に合うようにレスしてくれ」とかの事情は、まったく考慮しないみみ。だから、課題の締め切りが過ぎてしまったと思われるものにも、レスするみみ。

コード:

//
//
//
//
//
#define WORLD_WIDTH 640
#define WORLD_HEIGHT 480
#define Tama 500
#define TEKI_MAX 5

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	int i;
	int j;

	int PienX, PienY, PienGraph;
	int PienTamaGraph, PienTamaX[Tama], PienTamaY[Tama], PienTamaFlag[Tama];
	int Teki1X[TEKI_MAX], Teki1Y[TEKI_MAX], Teki1Flag[TEKI_MAX], Teki1Graph;
	int titlebackground, gamebackground, titlefont, titlemojifont;
	int sht_sound;

	ChangeWindowMode(true);
	SetGraphMode(WORLD_WIDTH, WORLD_HEIGHT, 64);
	DxLib_Init();
	SetDrawScreen(DX_SCREEN_BACK);
	SetDrawMode(DX_DRAWMODE_BILINEAR);
	SetWindowText("生姜");

	for (i = 0; i < Tama; i++)
	{
		PienTamaFlag[i] = 0;
	}

	for (j = 0; j < TEKI_MAX; j++)
	{
		Teki1Flag[j] = 0;
	}

	titlebackground = LoadGraph("Game.title.jpg");
	gamebackground = LoadGraph("title2.jpg");
	PienGraph = LoadGraph("sprite.png");
	PienX = 320; PienY = 400;
	PienTamaGraph = LoadGraph("sht.jikishot.png");
	Teki1Graph = LoadGraph("killerT.png");
	titlefont = CreateFontToHandle("けいふぉんと", 50, 9, DX_FONTTYPE_ANTIALIASING_EDGE);
	titlemojifont = CreateFontToHandle("07やさしさゴシック手書き", 20, 5, DX_FONTTYPE_ANTIALIASING_EDGE);
	sht_sound = LoadSoundMem("sht.c.z.mp3");

	enum {
		TITLE,

		GAME,

		END,
	}status=TITLE;

	while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
	{
		ClearDrawScreen();

		switch (status)
		{
		case TITLE:
			DrawGraph(0, 0, titlebackground, 0);
			if (CheckHitKey(KEY_INPUT_Z)) {
				status = GAME;
				PlaySoundMem(sht_sound, DX_PLAYTYPE_BACK);
			}
			break;
		case GAME:
			DrawGraph(0, 0, gamebackground, 0);
			break;
		case END:
			break;
		}

		if (status == TITLE)
		{
			DrawStringToHandle(70, 200, "シューティングゲーム", GetColor(255, 255, 255), titlefont);
			DrawStringToHandle(30, 420, "Zでゲーム開始", GetColor(255, 255, 255), titlemojifont);
			DrawStringToHandle(30, 450, "ESCでゲーム終了", GetColor(255, 255, 255), titlemojifont);
			
		}

		if (status == GAME)
		{
			DrawGraph(PienX, PienY, PienGraph, true);

			if (CheckHitKey(KEY_INPUT_W))PienY -= 3;
			if (CheckHitKey(KEY_INPUT_A))PienX -= 3;
			if (CheckHitKey(KEY_INPUT_S))PienY += 3;
			if (CheckHitKey(KEY_INPUT_D))PienX += 3;


			if (CheckHitKey(KEY_INPUT_SPACE) == 1)
			{
				i = -1;
				for (int p = 0; p < Tama; p++) // 配列を走査し
				{
					if (PienTamaFlag[p] != 1) // 空いている場所を見つけたら
					{
						i = p; // その添字をiに設定
						break;
					}
				}
				if (i >= 0)
				{
					int Pw, Ph, Tw, Th;

					GetGraphSize(PienGraph, &Pw, &Ph);
					GetGraphSize(PienTamaGraph, &Tw, &Th);

					// 弾iの位置をセット、位置はボール君の中心にする
					PienTamaX[i] = (Pw - Tw) / 2 + PienX;
					PienTamaY[i] = (Ph - Th) / 2 + PienY;

					PienTamaFlag[i] = 1;
				}



				for (i = 0; i < Tama; i++)
				{
					// 自機の弾iの移動ルーチン( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う )
					if (PienTamaFlag[i] == 1)
					{
						// 弾iを16ドット上に移動させる
						PienTamaY[i] -= 20;

						// 画面外に出てしまった場合は存在状態を保持している変数に0(存在しない)を代入する
						if (PienTamaY[i] < -80)
						{
							PienTamaFlag[i] = 0;
						}

						// 画面に弾iを描画する
						DrawGraph(PienTamaX[i] + 10, PienTamaY[i] - 30, PienTamaGraph, true);
						DrawGraph(PienTamaX[i] - 10, PienTamaY[i] - 30, PienTamaGraph, true);
					}
				}
			}

			if (Teki1Flag[j] <= 5)
			{
				j = -1;
				for (int t = 0; t < TEKI_MAX; t++) // 配列を走査し
				{
					if (PienTamaFlag[t] != 1) // 空いている場所を見つけたら
					{
						j = t; // その添字をiに設定

						int TekiPattern = GetRand(640);

						Teki1X[j] = TekiPattern;

						Teki1Y[j] += 3;

						DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);

						break;
					}
				}
				//int TekiPattern = GetRand(640);

				//Teki1X[j] = TekiPattern;

				//Teki1Y[j] += 3;

				//DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);
			}

			if (PienX > 640 - 64) PienX = 640 - 64;
			if (PienX <= 0) PienX = 0;
			if (PienY > 480 - 64) PienY = 480 - 64;
			if (PienY <= 0) PienY = 0;

			ScreenFlip();

		}
	}

	
	DxLib_End();

	return 0; 
}


// end.
 配列を走査し、空いている場所が見つからなかった時( J==-1 の時)にも、Teki1Y[ j ] へアクセスしにいっていたので、そこを修正したものみみ。注釈を書いたのが本人であれば、こんなプログラムを書かない、と思うみみ。コピペしただけなんですかみみ ?

 "けいふぉんと" とか "07やさしさゴシック手書き" というフォントは持っていないので、自分の環境で動くようにするのは、7/31 締め切りの ”仕事” が終わった 8/1 以降になるみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

cupa
記事: 117
登録日時: 2年前

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#6

投稿記事 by cupa » 2年前

すみません、、、コメントアウトのところは頑張ってGoogleでググっているときに目的のものがあればコピペしている次第です。(見て映してもまったく意味がなく、時間の無駄なため、できなかったらさらに無駄公式のや、他の方から教えてくれたものがコピペされているだけですよ。)

まぁ、質問には関係ないのですが、その語尾の「みみ」というのなんですか?
このような世界の誰からでも見れて、コメントができる場でそのようなことはしないほうがいいですよ?

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#7

投稿記事 by あたっしゅ » 2年前

コード:

//
//
//
//
//
//#define WORLD_WIDTH 640
//#define WORLD_HEIGHT 480
//#define Tama 500
//#define TEKI_MAX 5

#include "DxLib.h"

const int WORLD_WIDTH = 640;
const int WORLD_HEIGHT = 480;
const int Tama = 500;
const int TEKI_MAX = 5;


enum eStatus {
	TITLE,

	GAME,

	END,
}; //status = TITLE;


//#define ENVCupa
#ifdef ENVCupa
 const char* const TITLEFONT		= "けいふぉんと";
 const char* const TITLEMOJIFONT	= "07やさしさゴシック手書き";
#else
 const char* const TITLEFONT		= "メイリオ";
 const char* const TITLEMOJIFONT	= "メイリオ";
#endif



int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	int i;
	int j;

	int PienX, PienY, PienGraph;
	int PienTamaGraph, PienTamaX[Tama], PienTamaY[Tama], PienTamaFlag[Tama];

	int Teki1X[TEKI_MAX], Teki1Y[TEKI_MAX], Teki1Flag[TEKI_MAX], Teki1Graph;

	int titlebackground, gamebackground, titlefont, titlemojifont;

	int sht_sound;


	ChangeWindowMode(true);
	SetGraphMode(WORLD_WIDTH, WORLD_HEIGHT, 64);
	DxLib_Init();
	SetDrawScreen(DX_SCREEN_BACK);
	SetDrawMode(DX_DRAWMODE_BILINEAR);
	SetWindowText("生姜");

	for (i = 0; i < Tama; i++)
	{
		PienTamaFlag[i] = 0;
	}

	for (j = 0; j < TEKI_MAX; j++)
	{
		Teki1Flag[j] = 0;
	}

	titlebackground = LoadGraph("Game.title.jpg");
	gamebackground = LoadGraph("title2.jpg");

	PienGraph = LoadGraph("sprite.png");
	PienX = 320; PienY = 400;
	PienTamaGraph = LoadGraph("sht.jikishot.png");

	Teki1Graph = LoadGraph("killerT.png");

	titlefont = CreateFontToHandle(TITLEFONT, 50, 9, DX_FONTTYPE_ANTIALIASING_EDGE);
	titlemojifont = CreateFontToHandle(TITLEMOJIFONT, 20, 5, DX_FONTTYPE_ANTIALIASING_EDGE);

	sht_sound = LoadSoundMem("sht.c.z.mp3");

//	enum {
//		TITLE,
//
//		GAME,
//
//		END,
//	}
	eStatus status=TITLE;


	while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
	{
		ClearDrawScreen();

		switch (status)
		{
		case TITLE:
			DrawGraph(0, 0, titlebackground, 0);

			if (CheckHitKey(KEY_INPUT_Z)) {
				status = GAME;
				PlaySoundMem(sht_sound, DX_PLAYTYPE_BACK);
			}
			break;

		case GAME:
			DrawGraph(0, 0, gamebackground, 0);
			break;

		case END:
			break;
		}

		if (status == TITLE)
		{
			DrawStringToHandle(70, 200, "シューティングゲーム", GetColor(255, 255, 255), titlefont);
			DrawStringToHandle(30, 420, "Zでゲーム開始", GetColor(255, 255, 255), titlemojifont);
			DrawStringToHandle(30, 450, "ESCでゲーム終了", GetColor(255, 255, 255), titlemojifont);
			
		}

		if (status == GAME)
		{
			DrawGraph(PienX, PienY, PienGraph, true);

			if (CheckHitKey(KEY_INPUT_W))PienY -= 3;
			if (CheckHitKey(KEY_INPUT_A))PienX -= 3;
			if (CheckHitKey(KEY_INPUT_S))PienY += 3;
			if (CheckHitKey(KEY_INPUT_D))PienX += 3;


			if (CheckHitKey(KEY_INPUT_SPACE) == 1)
			{
				i = -1;
				for (int p = 0; p < Tama; p++) // 配列を走査し
				{
					if (PienTamaFlag[p] != 1) // 空いている場所を見つけたら
					{
						i = p; // その添字をiに設定
						break;
					}
				}
				if (i >= 0)
				{
					int Pw, Ph, Tw, Th;

					GetGraphSize(PienGraph, &Pw, &Ph);
					GetGraphSize(PienTamaGraph, &Tw, &Th);

					// 弾iの位置をセット、位置はボール君の中心にする
					PienTamaX[i] = (Pw - Tw) / 2 + PienX;
					PienTamaY[i] = (Ph - Th) / 2 + PienY;

					PienTamaFlag[i] = 1;
				}
			}

			// 自機が発射したの弾の移動と描画
			for (i = 0; i < Tama; i++)
			{
				// 自機の弾iの移動ルーチン( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う )
				if (PienTamaFlag[i] == 1)
				{
					// 弾iを16ドット上に移動させる
					PienTamaY[i] -= 20;

					// 画面外に出てしまった場合は存在状態を保持している変数に0(存在しない)を代入する
					if (PienTamaY[i] < -80)
					{
						PienTamaFlag[i] = 0;
					}

					// 画面に弾iを描画する
					DrawGraph(PienTamaX[i] + 10, PienTamaY[i] - 30, PienTamaGraph, true);
					DrawGraph(PienTamaX[i] - 10, PienTamaY[i] - 30, PienTamaGraph, true);
				}
			}

			// 敵の発生
			//if (Teki1Flag[j] <= 5)
			if (rand() < (RAND_MAX / 100)) // 乱数で敵、発生
			{
				//j = -1;
				for (int t = 0; t < TEKI_MAX; t++) // 配列を走査し
				{
					// if (PienTamaFlag[t] != 1) // 空いている場所を見つけたら
					if (Teki1Flag[t] != 1) // 空いている場所を見つけたら
					{
						// j = t; // その添字をiに設定

						//int TekiPattern = GetRand(WORLD_WIDTH); // パターンではなく、発生する敵の X 座標

						//Teki1X[i] = TekiPattern;
						Teki1X[t] = GetRand(WORLD_WIDTH);

						//Teki1Y[j] += 3;
						Teki1Y[t] = GetRand(WORLD_HEIGHT);

						Teki1Flag[t] = 1;
						// DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);

						break;
					}
				}
				//int TekiPattern = GetRand(640);

				//Teki1X[j] = TekiPattern;

				//Teki1Y[j] += 3;

				//DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);
			}

			// 敵の描画
			for (j = 0; j < TEKI_MAX; j++)
			{
				if (Teki1Flag[j] != 0) {
					DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);
				    // 四角い枠が表示されるのは、killerT.png の背景が透過になっていないため。
				}
			}

			// 自機の移動の制限
			//if (PienX > 640 - 64) PienX = 640 - 64;
			if (PienX > WORLD_WIDTH - 64) { PienX = WORLD_WIDTH - 64; }
			if (PienX <= 0) { PienX = 0; }

			//if (PienY > 480 - 64) PienY = 480 - 64;
			if (PienY > WORLD_HEIGHT - 64) { PienY = WORLD_HEIGHT - 64; }
			if (PienY <= 0) { PienY = 0; }


			// 自機弾と敵の衝突
				// 未実装

			// 自機と敵の衝突
				// 未実装

			//ScreenFlip();
		}

		ScreenFlip();
	}

	
	DxLib_End();

	return 0; 
}


// end.
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

cupa
記事: 117
登録日時: 2年前

Re: 敵が降ってくるプログラムを作りたいのですが、、、

#8

投稿記事 by cupa » 2年前

ありがとうございます、この場合だと画面に敵が現れるだけなので、少し改造して落ちてくるようにしました!
教えていただき、ありがとうございました!(´▽`)

返信

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