Visual Studio 2017 + EasyX C语言 低配版水果忍者

C语言 低配版水果忍者

演示视频


效果展示:

在这里插入图片描述
(注:未实现刀光轨迹 未实现音乐加入)


大致思路:

0.定义变量

定义模拟重力的变量:

  • (伪)重力加速度 g
#define g 0.03  //0.03需根据情况调整

定义与水果相关的变量:

  • 坐标 x y
  • 水平速度 velocity_x velocity_y
  • 显示标记 flag
struct FRUIT
{
	float x;
	float y;
	float vx;
	float vy;
	int flag;
}Fruit[18];  //18需根据情况调整

1.水果上抛/下落

关于以上变量在初始时的赋值:

  • x等于画布横坐标范围任意值
  • y大于画布纵坐标最大值之上
  • vx在特定范围内变动
  • vy初始必须是小于零
  • flag只能是0或1

关于以上变量在循坏中的变化:

  • x+/-vx
  • y + vy
  • vy + g
  • flag的(0/1)值表示水果是否显示并抛出

2.水果是否被切

若否:

  • flag=1 水果依旧显示
  • 此后变量变化依旧相同

若是

  • flag=0 水果贴图消失
  • flag_left=1 水果被切后的左部分贴图显示
  • flag_right=1 水果被切后的右部分贴图显示
  • 此后变量变化基本相同

3.水果抛出相邻回合衔接

(注:由time()函数实现 或clock()函数实现)


源码展示:

#include <graphics.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

IMAGE Background;
IMAGE Dj; IMAGE Dj_rotate;
IMAGE Ng; IMAGE Ng_rotate;
IMAGE Qt; IMAGE Qt_rotate;

IMAGE Canvas;
IMAGE Life3; IMAGE Life2; IMAGE Life1; IMAGE Life0;

IMAGE Ap; IMAGE Ap_rotate; IMAGE Apl; IMAGE Apl_rotate; IMAGE Apr; IMAGE Apr_rotate;
IMAGE Bn; IMAGE Bn_rotate; IMAGE Bnl; IMAGE Bnl_rotate; IMAGE Bnr; IMAGE Bnr_rotate;
IMAGE Pc; IMAGE Pc_rotate; IMAGE Pcl; IMAGE Pcl_rotate; IMAGE Pcr; IMAGE Pcr_rotate;
IMAGE Sb; IMAGE Sb_rotate; IMAGE Sbl; IMAGE Sbl_rotate; IMAGE Sbr; IMAGE Sbr_rotate;
IMAGE Wm; IMAGE Wm_rotate; IMAGE Wml; IMAGE Wml_rotate; IMAGE Wmr; IMAGE Wmr_rotate;
IMAGE Zd; IMAGE Zd_rotate; IMAGE Zd_ban; IMAGE Zd_ban_rotate;
IMAGE Flash; IMAGE Flash_rotate;

IMAGE ComingSoon;
IMAGE GameOver;

#define g 0.03
#define Width 640
#define Height 480
#define PI 3.1415926535

int life;
int score;
int recover;
int flag1, flag2, flag3;
int sign1, sign2, sign3;
clock_t start1, end1, start2, end2, start3, end3;

int Break;

struct FRUIT
{
	float x;
	float y;
	float vx;
	float vy;
	float angle;
	int flag;
	time_t start;
	time_t end;
}Fruit[18];

struct CIRCLE
{
	int x;
	int y;
	float angle;
}Circle[3];

struct FRUIT_L
{
	float x;
	float y;
	float vx;
	float vy;
	float angle;
	int flag;
}Fruit_L[18];

struct FRUIT_R
{
	float x;
	float y;
	float vx;
	float vy;
	float angle;
	int flag;
}Fruit_R[18];

void image();
void site();
void show();
void run();
void hit();
void init();
void play();
void operate();
void connect();

int main()  //  主函数
{
	initgraph(Width, Height);
	image();  
	BeginBatchDraw();
	/*////////开始界面////////*/
	site();
	while (true)
	{
		show();
		run();
		hit();
	/*////////开始界面////////*/
		FlushBatchDraw();
	}
	EndBatchDraw();
	closegraph();
}

void image()
{
	loadimage(&Background, _T("Background.png"));
	loadimage(&Dj, _T("Dj.png"));
	loadimage(&Ng, _T("Ng.png"));
	loadimage(&Qt, _T("Qt.png"));

	loadimage(&Canvas, _T("Canvas.png"));
	loadimage(&Life3, _T("Life3.png"));
	loadimage(&Life2, _T("Life2.png"));
	loadimage(&Life1, _T("Life1.png"));
	loadimage(&Life0, _T("Life0.png"));

	loadimage(&Ap, _T("Ap.png"));
	loadimage(&Apl, _T("Apl.png"));
	loadimage(&Apr, _T("Apr.png"));
	loadimage(&Bn, _T("Bn.png"));
	loadimage(&Bnl, _T("Bnl.png"));
	loadimage(&Bnr, _T("Bnr.png"));
	loadimage(&Pc, _T("Pc.png"));
	loadimage(&Pcl, _T("Pcl.png"));
	loadimage(&Pcr, _T("Pcr.png"));
	loadimage(&Sb, _T("Sb.png"));
	loadimage(&Sbl, _T("Sbl.png"));
	loadimage(&Sbr, _T("Sbr.png"));
	loadimage(&Wm, _T("Wm.png"));
	loadimage(&Wml, _T("Wml.png"));
	loadimage(&Wmr, _T("Wmr.png"));
	loadimage(&Zd, _T("Zd.png"));
	loadimage(&Zd_ban, _T("Zd_ban.png"));

	loadimage(&Flash, _T("Flash.png"), 179, 10);

	loadimage(&ComingSoon, _T("ComingSoon.png"));
	loadimage(&GameOver, _T("GameOver.png"));
}

void site()
{
	Circle[0].x = 0; Circle[0].y = 210; Circle[0].angle = 0; rotateimage(&Dj_rotate, &Dj, Circle[0].angle += 0);
	Circle[1].x = 200, Circle[1].y = 180; Circle[1].angle = 0; rotateimage(&Ng_rotate, &Ng, Circle[1].angle += 0);
	Circle[2].x = 420, Circle[2].y = 280; Circle[2].angle = 0; rotateimage(&Qt_rotate, &Qt, Circle[2].angle -= 0);

	Fruit[2].x = 80; Fruit[2].y = 290; Fruit[2].flag = 1; rotateimage(&Pc_rotate, &Pc, Fruit[2].angle -= 0);
	Fruit[4].x = 275; Fruit[4].y = 250; Fruit[4].flag = 1; rotateimage(&Wm_rotate, &Wm, Fruit[4].angle -= 0);
	Fruit[5].x = 475; Fruit[5].y = 330; Fruit[5].flag = 1; rotateimage(&Zd_rotate, &Zd, Fruit[5].angle += 0);

	Fruit_L[2].x = Fruit[2].x; Fruit_L[2].y = Fruit[2].y; Fruit_L[2].flag = 0; rotateimage(&Pcl_rotate, &Pcl, Fruit_L[2].angle += 0);
	Fruit_R[2].x = Fruit[2].x; Fruit_R[2].y = Fruit[2].y; Fruit_R[2].flag = 0; rotateimage(&Pcr_rotate, &Pcr, Fruit_R[2].angle -= 0);
	Fruit_L[4].x = Fruit[4].x; Fruit_L[4].y = Fruit[4].y; Fruit_L[4].flag = 0; rotateimage(&Wml_rotate, &Wml, Fruit_L[4].angle += 0);
	Fruit_R[4].x = Fruit[4].x; Fruit_R[4].y = Fruit[4].y; Fruit_R[4].flag = 0; rotateimage(&Wmr_rotate, &Wmr, Fruit_R[4].angle -= 0);

	Break = 0;
}

void show()
{
	putimage(0, 0, &Background);
	putimage(Circle[0].x, Circle[0].y, &Dj_rotate);
	putimage(Circle[1].x, Circle[1].y, &Ng_rotate);
	putimage(Circle[2].x, Circle[2].y, &Qt_rotate);

	if (Fruit[2].flag) putimage(Fruit[2].x, Fruit[2].y, &Pc_rotate);
	else
	{
		if (Fruit_L[2].flag&&Fruit_R[2].flag)
		{
			putimage(Fruit_L[2].x, Fruit_L[2].y, &Pcl_rotate);
			Fruit[2].end = clock();
			if (difftime(Fruit[2].end, Fruit[2].start) <= 100)
			{
				rotateimage(&Flash_rotate, &Flash, Fruit[2].angle + 50);
				putimage(Fruit[2].x - 45, Fruit[2].y - 50, &Flash_rotate);
			}
			putimage(Fruit_R[2].x, Fruit_R[2].y, &Pcr_rotate);
		}
	}

	if (Fruit[4].flag) putimage(Fruit[4].x, Fruit[4].y, &Wm_rotate);
	else
	{
		if (Fruit_L[4].flag&&Fruit_R[4].flag)
		{
			putimage(Fruit_L[4].x, Fruit_L[4].y, &Wml_rotate);
			Fruit[4].end = clock();
			if (difftime(Fruit[4].end, Fruit[4].start) <= 100)
			{
				rotateimage(&Flash_rotate, &Flash, Fruit[4].angle + 100);
				putimage(Fruit[4].x - 25, Fruit[4].y - 20, &Flash_rotate);
			}
			putimage(Fruit_R[4].x, Fruit_R[4].y, &Wmr_rotate);
		}
	}

	if (Fruit[5].flag) putimage(Fruit[5].x, Fruit[5].y, &Zd_rotate);
	else
	{
		putimage(Fruit[5].x, Fruit[5].y, &Zd_rotate);
		putimage(Fruit[5].x - 25, Fruit[5].y - 22, &Zd_ban_rotate);
	}
}

void run()
{
	rotateimage(&Dj_rotate, &Dj, Circle[0].angle += (float)PI / 60);
	rotateimage(&Ng_rotate, &Ng, Circle[1].angle += (float)PI / 60);
	rotateimage(&Qt_rotate, &Qt, Circle[2].angle -= (float)PI / 60);

	if (Fruit[2].flag) rotateimage(&Pc_rotate, &Pc, Fruit[2].angle -= (float)PI / 6);
	if (Fruit[4].flag) rotateimage(&Wm_rotate, &Wm, Fruit[4].angle -= (float)PI / 6);
	if (Fruit[5].flag) rotateimage(&Zd_rotate, &Zd, Fruit[5].angle += (float)PI / 6);

	if (Fruit_L[2].flag&&Fruit_R[2].flag)
	{
		rotateimage(&Pcl_rotate, &Pcl, Fruit_L[2].angle -= (float)PI / 6);
		Fruit_L[2].x += Fruit_L[2].vx; Fruit_L[2].y += Fruit_L[2].vy; Fruit_L[2].vy += g;

		rotateimage(&Pcr_rotate, &Pcr, Fruit_R[2].angle += (float)PI / 6);
		Fruit_R[2].x += Fruit_R[2].vx; Fruit_R[2].y += Fruit_R[2].vy; Fruit_R[2].vy += g;

		if (Fruit_L[2].y >= Height + 320 && Fruit_R[2].y >= Height + 320)
		{
			while (true)
			{
				putimage(0, 0, &ComingSoon);

				MOUSEMSG msg;
				if (MouseHit())
				{
					msg = GetMouseMsg();
					if (msg.uMsg == WM_LBUTTONDOWN)
					{
						site();
						break;
					}
				}

				FlushBatchDraw();
			}
		}
	}

	if (Fruit_L[4].flag&&Fruit_R[4].flag)
	{
		rotateimage(&Wml_rotate, &Wml, Fruit_L[4].angle -= (float)PI / 6);
		Fruit_L[4].x += Fruit_L[4].vx; Fruit_L[4].y += Fruit_L[4].vy; Fruit_L[4].vy += g;

		rotateimage(&Wmr_rotate, &Wmr, Fruit_R[4].angle += (float)PI / 6);
		Fruit_R[4].x += Fruit_R[4].vx; Fruit_R[4].y += Fruit_R[4].vy; Fruit_R[4].vy += g;

		if (Fruit_L[4].y >= Height + 320 && Fruit_R[4].y >= Height + 320)
		{
			init();

			while (true)
			{
				play();
				operate();
				connect();

				FlushBatchDraw();

				if (Break)
				{
					while (true)
					{
						putimage(0, 0, &GameOver);

						MOUSEMSG msg;
						if (MouseHit())
						{
							msg = GetMouseMsg();
							if (msg.uMsg == WM_LBUTTONDOWN)
							{
								site();
								break;
							}
						}

						FlushBatchDraw();
					}

					break;
				}
			}
		}
	}

	if (Fruit[5].flag == 0)
	{
		Sleep(6);
		Fruit[5].end = clock();
		if (difftime(Fruit[5].end, Fruit[5].start) >= 1500) exit(NULL);
	}
}

void hit()
{
	srand((unsigned int)time(NULL));

	MOUSEMSG msg;
	if (MouseHit())
	{
		msg = GetMouseMsg();
		if (msg.mkLButton)
		{
			if (msg.x >= Fruit[2].x + 25 && msg.x <= Fruit[2].x + 60 && msg.y >= Fruit[2].y + 25 && msg.y <= Fruit[2].y + 60 && Fruit[2].flag && Fruit[4].flag && Fruit[5].flag)
			{
				Fruit[2].flag = 0; Fruit[2].start = clock();

				Fruit_L[2].flag = 1; Fruit_L[2].angle = Fruit[2].angle;
				Fruit_L[2].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[2].vy = 0;
				rotateimage(&Pcl_rotate, &Pcl, Fruit_L[2].angle -= 0);

				Fruit_R[2].flag = 1; Fruit_R[2].angle = Fruit[2].angle;
				Fruit_R[2].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[2].vy = 0;
				rotateimage(&Pcr_rotate, &Pcr, Fruit_R[2].angle += 0);
			}

			if (msg.x >= Fruit[4].x + 40 && msg.x <= Fruit[4].x + 90 && msg.y >= Fruit[4].y + 40 && msg.y <= Fruit[4].y + 90 && Fruit[2].flag && Fruit[4].flag && Fruit[5].flag)
			{
				Fruit[4].flag = 0; Fruit[4].start = clock();

				Fruit_L[4].flag = 1; Fruit_L[4].angle = Fruit[4].angle;
				Fruit_L[4].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[4].vy = 0;
				rotateimage(&Wml_rotate, &Wml, Fruit_L[4].angle -= 0);

				Fruit_R[4].flag = 1; Fruit_R[4].angle = Fruit[4].angle;
				Fruit_R[4].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[4].vy = 0;
				rotateimage(&Wmr_rotate, &Wmr, Fruit_R[4].angle += 0);
			}

			if (msg.x >= Fruit[5].x + 40 && msg.x <= Fruit[5].x + 55 && msg.y >= Fruit[5].y + 40 && msg.y <= Fruit[5].y + 55 && Fruit[2].flag && Fruit[4].flag && Fruit[5].flag)
			{
				Fruit[5].flag = 0;
				Fruit[5].start = clock();
				rotateimage(&Zd_ban_rotate, &Zd_ban, Fruit[5].angle + 90);
			}
		}
	}
}

void init()
{
	for (int n = 0; n < 18; n++)
	{
		Fruit[n].x = Width;
		Fruit[n].y = Height;
		Fruit[n].vx = 0;
		Fruit[n].vy = 0;
		Fruit[n].angle = 0;
		Fruit[n].flag = 0;
	}

	rotateimage(&Ap_rotate, &Ap, 0);
	rotateimage(&Bn_rotate, &Bn, 0);
	rotateimage(&Pc_rotate, &Pc, 0);
	rotateimage(&Sb_rotate, &Sb, 0);
	rotateimage(&Wm_rotate, &Wm, 0);
	rotateimage(&Zd_rotate, &Zd, 0);

	life = 3;
	score = 0;
	recover = 0;
	flag1 = 1; flag2 = 0; flag3 = 0;
	sign1 = 1; sign2 = 1; sign3 = 1;
	start1 = clock(); start2 = clock(); start3 = clock();
}

void play()
{
	putimage(0, 0, &Canvas);

	if (flag1)
	{
		for (int n = 0; n < 6; n++)
		{
			if (Fruit[n].flag)
			{
				if (n == 0)
				{
					rotateimage(&Ap_rotate, &Ap, Fruit[0].angle += 1);
					putimage(Fruit[0].x, Fruit[0].y, &Ap_rotate);
				}
				if (n == 1)
				{
					rotateimage(&Bn_rotate, &Bn, Fruit[1].angle += 1);
					putimage(Fruit[1].x, Fruit[1].y, &Bn_rotate);
				}
				if (n == 2)
				{
					rotateimage(&Pc_rotate, &Pc, Fruit[2].angle += 1);
					putimage(Fruit[2].x, Fruit[2].y, &Pc_rotate);
				}
				if (n == 3)
				{
					rotateimage(&Sb_rotate, &Sb, Fruit[3].angle += 1);
					putimage(Fruit[3].x, Fruit[3].y, &Sb_rotate);
				}
				if (n == 4)
				{
					rotateimage(&Wm_rotate, &Wm, Fruit[4].angle += 1);
					putimage(Fruit[4].x, Fruit[4].y, &Wm_rotate);
				}
				if (n == 5)
				{
					rotateimage(&Zd_rotate, &Zd, Fruit[5].angle += 1);
					putimage(Fruit[5].x, Fruit[5].y, &Zd_rotate);
				}
			}
			if (Fruit_L[n].flag&&Fruit_R[n].flag)
			{
				if (n == 0)
				{
					rotateimage(&Apl_rotate, &Apl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Apl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 50);
						putimage(Fruit[n].x - 40, Fruit[n].y - 40, &Flash_rotate);
					}
					rotateimage(&Apr_rotate, &Apr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Apr_rotate);
				}
				if (n == 1)
				{
					rotateimage(&Bnl_rotate, &Bnl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Bnl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 90);
						putimage(Fruit[n].x - 20, Fruit[n].y - 15, &Flash_rotate);
					}
					rotateimage(&Bnr_rotate, &Bnr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Bnr_rotate);
				}
				if (n == 2)
				{
					rotateimage(&Pcl_rotate, &Pcl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Pcl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 50);
						putimage(Fruit[n].x - 45, Fruit[n].y - 50, &Flash_rotate);
					}
					rotateimage(&Pcr_rotate, &Pcr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Pcr_rotate);
				}
				if (n == 3)
				{
					rotateimage(&Sbl_rotate, &Sbl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Sbl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle - 35);
						putimage(Fruit[n].x - 40, Fruit[n].y - 40, &Flash_rotate);
					}
					rotateimage(&Sbr_rotate, &Sbr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Sbr_rotate);
				}
				if (n == 4)
				{
					rotateimage(&Wml_rotate, &Wml, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Wml_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 100);
						putimage(Fruit[n].x - 25, Fruit[n].y - 20, &Flash_rotate);
					}
					rotateimage(&Wmr_rotate, &Wmr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Wmr_rotate);
				}
				if (n == 5)
				{
					if (!sign1)
					{
						rotateimage(&Zd_ban_rotate, &Zd_ban, Fruit[n].angle + 90);
						putimage(Fruit[n].x, Fruit[n].y, &Zd_rotate);
						putimage(Fruit[n].x - 25, Fruit[n].y - 22, &Zd_ban_rotate);
					}
				}
			}
		}
	}

	if (flag2)
	{
		for (int n = 6; n < 12; n++)
		{
			if (Fruit[n].flag)
			{
				if (n == 6)
				{
					rotateimage(&Ap_rotate, &Ap, Fruit[6].angle -= 1);
					putimage(Fruit[6].x, Fruit[6].y, &Ap_rotate);
				}
				if (n == 7)
				{
					rotateimage(&Bn_rotate, &Bn, Fruit[7].angle -= 1);
					putimage(Fruit[7].x, Fruit[7].y, &Bn_rotate);
				}
				if (n == 8)
				{
					rotateimage(&Pc_rotate, &Pc, Fruit[8].angle -= 1);
					putimage(Fruit[8].x, Fruit[8].y, &Pc_rotate);
				}
				if (n == 9)
				{
					rotateimage(&Sb_rotate, &Sb, Fruit[9].angle -= 1);
					putimage(Fruit[9].x, Fruit[9].y, &Sb_rotate);
				}
				if (n == 10)
				{
					rotateimage(&Wm_rotate, &Wm, Fruit[10].angle -= 1);
					putimage(Fruit[10].x, Fruit[10].y, &Wm_rotate);
				}
				if (n == 11)
				{
					rotateimage(&Zd_rotate, &Zd, Fruit[11].angle -= 1);
					putimage(Fruit[11].x, Fruit[11].y, &Zd_rotate);
				}
			}
			if (Fruit_L[n].flag&&Fruit_R[n].flag)
			{
				if (n == 6)
				{
					rotateimage(&Apl_rotate, &Apl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Apl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 50);
						putimage(Fruit[n].x - 40, Fruit[n].y - 40, &Flash_rotate);
					}
					rotateimage(&Apr_rotate, &Apr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Apr_rotate);
				}
				if (n == 7)
				{
					rotateimage(&Bnl_rotate, &Bnl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Bnl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 90);
						putimage(Fruit[n].x - 20, Fruit[n].y - 15, &Flash_rotate);
					}
					rotateimage(&Bnr_rotate, &Bnr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Bnr_rotate);
				}
				if (n == 8)
				{
					rotateimage(&Pcl_rotate, &Pcl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Pcl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 50);
						putimage(Fruit[n].x - 45, Fruit[n].y - 50, &Flash_rotate);
					}
					rotateimage(&Pcr_rotate, &Pcr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Pcr_rotate);
				}
				if (n == 9)
				{
					rotateimage(&Sbl_rotate, &Sbl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Sbl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle - 35);
						putimage(Fruit[n].x - 40, Fruit[n].y - 40, &Flash_rotate);
					}
					rotateimage(&Sbr_rotate, &Sbr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Sbr_rotate);
				}
				if (n == 10)
				{
					rotateimage(&Wml_rotate, &Wml, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Wml_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 100);
						putimage(Fruit[n].x - 25, Fruit[n].y - 20, &Flash_rotate);
					}
					rotateimage(&Wmr_rotate, &Wmr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Wmr_rotate);
				}
				if (n == 11)
				{
					if (!sign2)
					{
						rotateimage(&Zd_ban_rotate, &Zd_ban, Fruit[n].angle + 90);
						putimage(Fruit[n].x, Fruit[n].y, &Zd_rotate);
						putimage(Fruit[n].x - 25, Fruit[n].y - 22, &Zd_ban_rotate);
					}
				}
			}
		}
	}

	if (flag3)
	{
		for (int n = 12; n < 18; n++)
		{
			if (Fruit[n].flag)
			{
				if (n == 12)
				{
					rotateimage(&Ap_rotate, &Ap, Fruit[12].angle += 1);
					putimage(Fruit[12].x, Fruit[12].y, &Ap_rotate);
				}
				if (n == 13)
				{
					rotateimage(&Bn_rotate, &Bn, Fruit[13].angle -= 1);
					putimage(Fruit[13].x, Fruit[13].y, &Bn_rotate);
				}
				if (n == 14)
				{
					rotateimage(&Pc_rotate, &Pc, Fruit[14].angle += 1);
					putimage(Fruit[14].x, Fruit[14].y, &Pc_rotate);
				}
				if (n == 15)
				{
					rotateimage(&Sb_rotate, &Sb, Fruit[15].angle -= 1);
					putimage(Fruit[15].x, Fruit[15].y, &Sb_rotate);
				}
				if (n == 16)
				{
					rotateimage(&Wm_rotate, &Wm, Fruit[16].angle += 1);
					putimage(Fruit[16].x, Fruit[16].y, &Wm_rotate);
				}
				if (n == 17)
				{
					rotateimage(&Zd_rotate, &Zd, Fruit[17].angle -= 1);
					putimage(Fruit[17].x, Fruit[17].y, &Zd_rotate);
				}
			}
			if (Fruit_L[n].flag&&Fruit_R[n].flag)
			{
				if (n == 12)
				{
					rotateimage(&Apl_rotate, &Apl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Apl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 50);
						putimage(Fruit[n].x - 40, Fruit[n].y - 40, &Flash_rotate);
					}
					rotateimage(&Apr_rotate, &Apr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Apr_rotate);
				}
				if (n == 13)
				{
					rotateimage(&Bnl_rotate, &Bnl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Bnl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 90);
						putimage(Fruit[n].x - 20, Fruit[n].y - 15, &Flash_rotate);
					}
					rotateimage(&Bnr_rotate, &Bnr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Bnr_rotate);
				}
				if (n == 14)
				{
					rotateimage(&Pcl_rotate, &Pcl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Pcl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 50);
						putimage(Fruit[n].x - 45, Fruit[n].y - 50, &Flash_rotate);
					}
					rotateimage(&Pcr_rotate, &Pcr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Pcr_rotate);
				}
				if (n == 15)
				{
					rotateimage(&Sbl_rotate, &Sbl, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Sbl_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle - 35);
						putimage(Fruit[n].x - 40, Fruit[n].y - 40, &Flash_rotate);
					}
					rotateimage(&Sbr_rotate, &Sbr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Sbr_rotate);
				}
				if (n == 16)
				{
					rotateimage(&Wml_rotate, &Wml, Fruit_L[n].angle -= (float)PI / 6);
					putimage(Fruit_L[n].x, Fruit_L[n].y, &Wml_rotate);
					Fruit[n].end = clock();
					if (difftime(Fruit[n].end, Fruit[n].start) <= 100)
					{
						rotateimage(&Flash_rotate, &Flash, Fruit[n].angle + 100);
						putimage(Fruit[n].x - 25, Fruit[n].y - 20, &Flash_rotate);
					}
					rotateimage(&Wmr_rotate, &Wmr, Fruit_R[n].angle += (float)PI / 6);
					putimage(Fruit_R[n].x, Fruit_R[n].y, &Wmr_rotate);
				}
				if (n == 17)
				{
					if (!sign3)
					{
						rotateimage(&Zd_ban_rotate, &Zd_ban, Fruit[n].angle + 90);
						putimage(Fruit[n].x, Fruit[n].y, &Zd_rotate);
						putimage(Fruit[n].x - 25, Fruit[n].y - 22, &Zd_ban_rotate);
					}
				}
			}
		}
	}

	if (life == 3) putimage(540, 20, &Life3);
	if (life == 2) putimage(540, 20, &Life2);
	if (life == 1) putimage(540, 20, &Life1);
	if (life <= 0) putimage(540, 20, &Life0);

	TCHAR s[40];
	_stprintf_s(s, _T("%d"), score);
	setbkmode(TRANSPARENT);
	settextcolor(RGB(120, 120, 240));
	settextstyle(30, 0, _T("ROG Fonts"));
	outtextxy(60, 15, s);
}

void operate()
{
	srand((unsigned int)time(NULL));

	//_____________
	end1 = clock();
	if (difftime(end1, start1) >= 3000 && difftime(end1, start1) <= 3020 && flag1)
	{
		flag2 = 1;
		start2 = clock();
		int n = 0, m = 0;
		for (n = 0; n < 6; n++)
		{
			if (m < 2)
			{
				Fruit[n].flag = rand() % 2;
				if (Fruit[n].flag == 1)
					m += 1;
			}
			if (Fruit[n].flag)
			{
				Fruit[n].x = rand() % 256 - 4;
				if (Fruit[n].x >= -4 && Fruit[n].x < 60)
					Fruit[n].vx = (float)(rand() % 3) / 10;
				if (Fruit[n].x >= 60 && Fruit[n].x < 188)
					Fruit[n].vx = (float)(rand() % 6 + 3) / 10;
				if (Fruit[n].x >= 188 && Fruit[n].x < 252)
					Fruit[n].vx = (float)(rand() % 3) / 10;
				Fruit[n].y = Height + 10;
				if (n != 5)
					Fruit[n].vy = -(float)(rand() % 5 + 44) / 10;
				else
				{
					int choice = rand() % 2 + 1;
					if (choice == 1)
						Fruit[n].vy = -5;
					else
						Fruit[n].vy = -4;
				}
			}
			Fruit_L[n].flag = 0; Fruit_R[n].flag = 0;
		}
	}
	if (difftime(end1, start1) >= 7100 && flag1)
	{
		flag1 = 0;
	}
	if (flag1)
	{
		if (Fruit[0].flag)
		{
			if (Fruit[0].y >= Height + 10 && Fruit[0].vy > 0)
			{
				life -= 1;
				Fruit[0].flag = 0;
			}
			Fruit[0].x += Fruit[0].vx; Fruit[0].y += Fruit[0].vy; Fruit[0].vy += g;
		}
		if (Fruit[1].flag)
		{
			if (Fruit[1].y >= Height + 10 && Fruit[1].vy > 0)
			{
				life -= 1;
				Fruit[1].flag = 0;
			}
			Fruit[1].x += Fruit[1].vx; Fruit[1].y += Fruit[1].vy; Fruit[1].vy += g;
		}
		if (Fruit[2].flag)
		{
			if (Fruit[2].y >= Height + 10 && Fruit[2].vy > 0)
			{
				life -= 1;
				Fruit[2].flag = 0;
			}
			Fruit[2].x += Fruit[2].vx; Fruit[2].y += Fruit[2].vy; Fruit[2].vy += g;
		}
		if (Fruit[3].flag)
		{
			if (Fruit[3].y >= Height + 10 && Fruit[3].vy > 0)
			{
				life -= 1;
				Fruit[3].flag = 0;
			}
			Fruit[3].x += Fruit[3].vx; Fruit[3].y += Fruit[3].vy; Fruit[3].vy += g;
		}
		if (Fruit[4].flag)
		{
			if (Fruit[4].y >= Height + 10 && Fruit[4].vy > 0)
			{
				life -= 1;
				Fruit[4].flag = 0;
			}
			Fruit[4].x += Fruit[4].vx; Fruit[4].y += Fruit[4].vy; Fruit[4].vy += g;
		}
		if (Fruit[5].flag)
		{
			Fruit[5].x += Fruit[5].vx; Fruit[5].y += Fruit[5].vy; Fruit[5].vy += g;
			if (Fruit[5].y >= Height + 10 && Fruit[5].vy > 0) Fruit[5].flag = 0;
		}
	}
	//~~~~~~~~~~~~~

	//_____________
	end2 = clock();
	if (difftime(end2, start2) >= 2400 && difftime(end2, start2) <= 2420 && flag2)
	{
		flag3 = 1;
		start3 = clock();
		int n = 6, m = 6;
		for (n = 6; n < 12; n++)
		{
			if (m < 8)
			{
				Fruit[n].flag = rand() % 2;
				if (Fruit[n].flag == 1)
					m += 1;
			}
			if (Fruit[n].flag)
			{
				Fruit[n].x = rand() % 256 + 252;
				if (Fruit[n].x >= 252 && Fruit[n].x < 316)
					Fruit[n].vx = -(float)(rand() % 3) / 10;
				if (Fruit[n].x >= 316 && Fruit[n].x < 444)
					Fruit[n].vx = -(float)(rand() % 6 + 3) / 10;
				if (Fruit[n].x >= 444 && Fruit[n].x < 508)
					Fruit[n].vx = -(float)(rand() % 3) / 10;
				Fruit[n].y = Height + 10;
				if (n != 11)
					Fruit[n].vy = -(float)(rand() % 5 + 44) / 10;
				else
				{
					int choice = rand() % 2 + 1;
					if (choice == 1)
						Fruit[n].vy = -5;
					else
						Fruit[n].vy = -4;
				}
			}
			Fruit_L[n].flag = 0; Fruit_R[n].flag = 0;
		}
	}
	if (difftime(end2, start2) >= 7100 && flag2)
	{
		flag2 = 0;
	}
	if (flag2)
	{
		if (Fruit[6].flag)
		{
			if (Fruit[6].y >= Height + 10 && Fruit[6].vy > 0)
			{
				life -= 1;
				Fruit[6].flag = 0;
			}
			Fruit[6].x += Fruit[6].vx; Fruit[6].y += Fruit[6].vy; Fruit[6].vy += g;
		}
		if (Fruit[7].flag)
		{
			if (Fruit[7].y >= Height + 10 && Fruit[7].vy > 0)
			{
				life -= 1;
				Fruit[7].flag = 0;
			}
			Fruit[7].x += Fruit[7].vx; Fruit[7].y += Fruit[7].vy; Fruit[7].vy += g;
		}
		if (Fruit[8].flag)
		{
			if (Fruit[8].y >= Height + 10 && Fruit[8].vy > 0)
			{
				life -= 1;
				Fruit[8].flag = 0;
			}
			Fruit[8].x += Fruit[8].vx; Fruit[8].y += Fruit[8].vy; Fruit[8].vy += g;
		}
		if (Fruit[9].flag)
		{
			if (Fruit[9].y >= Height + 10 && Fruit[9].vy > 0)
			{
				life -= 1;
				Fruit[9].flag = 0;
			}
			Fruit[9].x += Fruit[9].vx; Fruit[9].y += Fruit[9].vy; Fruit[9].vy += g;
		}
		if (Fruit[10].flag)
		{
			if (Fruit[10].y >= Height + 10 && Fruit[10].vy > 0)
			{
				life -= 1;
				Fruit[10].flag = 0;
			}
			Fruit[10].x += Fruit[10].vx; Fruit[10].y += Fruit[10].vy; Fruit[10].vy += g;
		}
		if (Fruit[11].flag)
		{
			Fruit[11].x += Fruit[11].vx; Fruit[11].y += Fruit[11].vy; Fruit[11].vy += g;
			if (Fruit[11].y >= Height + 10 && Fruit[11].vy > 0) Fruit[11].flag = 0;
		}
	}
	//~~~~~~~~~~~~~

	//_____________
	end3 = clock();
	if (difftime(end3, start3) >= 1800 && difftime(end3, start3) <= 1820 && flag3)
	{
		flag1 = 1;
		start1 = clock();
		int n = 12, m = 12;
		for (n = 12; n < 18; n++)
		{
			if (m < 15)
			{
				Fruit[n].flag = rand() % 2;
				if (Fruit[n].flag == 1)
					m += 1;
			}
			if (Fruit[n].flag)
			{
				Fruit[n].x = rand() % 384 + 60;
				if (Fruit[n].x >= 60 && Fruit[n].x < 188)
					Fruit[n].vx = (float)(rand() % 6 + 3) / 10;
				if (Fruit[n].x >= 188 && Fruit[n].x < 252)
					Fruit[n].vx = (float)(rand() % 3) / 10;
				if (Fruit[n].x >= 252 && Fruit[n].x < 316)
					Fruit[n].vx = -(float)(rand() % 3) / 10;
				if (Fruit[n].x >= 316 && Fruit[n].x < 444)
					Fruit[n].vx = -(float)(rand() % 6 + 3) / 10;
				Fruit[n].y = Height + 10;
				if (n != 17)
					Fruit[n].vy = -(float)(rand() % 5 + 44) / 10;
				else
				{
					int choice = rand() % 2 + 1;
					if (choice == 1)
						Fruit[n].vy = -5;
					else
						Fruit[n].vy = -4;
				}
			}
			Fruit_L[n].flag = 0; Fruit_R[n].flag = 0;
		}
	}
	if (difftime(end3, start3) >= 7100 && flag3)
	{
		flag3 = 0;
	}
	if (flag3)
	{
		if (Fruit[12].flag)
		{
			if (Fruit[12].y >= Height + 10 && Fruit[12].vy > 0)
			{
				life -= 1;
				Fruit[12].flag = 0;
			}
			Fruit[12].x += Fruit[12].vx; Fruit[12].y += Fruit[12].vy; Fruit[12].vy += g;
		}
		if (Fruit[13].flag)
		{
			if (Fruit[13].y >= Height + 10 && Fruit[13].vy > 0)
			{
				life -= 1;
				Fruit[13].flag = 0;
			}
			Fruit[13].x += Fruit[13].vx; Fruit[13].y += Fruit[13].vy; Fruit[13].vy += g;
		}
		if (Fruit[14].flag)
		{
			if (Fruit[14].y >= Height + 10 && Fruit[14].vy > 0)
			{
				life -= 1;
				Fruit[14].flag = 0;
			}
			Fruit[14].x += Fruit[14].vx; Fruit[14].y += Fruit[14].vy; Fruit[14].vy += g;
		}
		if (Fruit[15].flag)
		{
			if (Fruit[15].y >= Height + 10 && Fruit[15].vy > 0)
			{
				life -= 1;
				Fruit[15].flag = 0;
			}
			Fruit[15].x += Fruit[15].vx; Fruit[15].y += Fruit[15].vy; Fruit[15].vy += g;
		}
		if (Fruit[16].flag)
		{
			if (Fruit[16].y >= Height + 10 && Fruit[16].vy > 0)
			{
				life -= 1;
				Fruit[16].flag = 0;
			}
			Fruit[16].x += Fruit[16].vx; Fruit[16].y += Fruit[16].vy; Fruit[16].vy += g;
		}
		if (Fruit[17].flag)
		{
			Fruit[17].x += Fruit[17].vx; Fruit[17].y += Fruit[17].vy; Fruit[17].vy += g;
			if (Fruit[17].y >= Height + 10 && Fruit[17].vy > 0) Fruit[17].flag = 0;
		}
	}
	//~~~~~~~~~~~~~

	for (int n = 0; n < 18; n++)
	{
		if (n == 0 || n == 6 || n == 12)
		{
			Fruit_L[n].x += Fruit_L[n].vx; Fruit_L[n].y += Fruit_L[n].vy; Fruit_L[n].vy += g;
			Fruit_R[n].x += Fruit_R[n].vx; Fruit_R[n].y += Fruit_R[n].vy; Fruit_R[n].vy += g;
		}
		if (n == 1 || n == 7 || n == 13)
		{
			Fruit_L[n].x += Fruit_L[n].vx; Fruit_L[n].y += Fruit_L[n].vy; Fruit_L[n].vy += g;
			Fruit_R[n].x += Fruit_R[n].vx; Fruit_R[n].y += Fruit_R[n].vy; Fruit_R[n].vy += g;
		}
		if (n == 2 || n == 8 || n == 14)
		{
			Fruit_L[n].x += Fruit_L[n].vx; Fruit_L[n].y += Fruit_L[n].vy; Fruit_L[n].vy += g;
			Fruit_R[n].x += Fruit_R[n].vx; Fruit_R[n].y += Fruit_R[n].vy; Fruit_R[n].vy += g;
		}
		if (n == 3 || n == 9 || n == 15)
		{
			Fruit_L[n].x += Fruit_L[n].vx; Fruit_L[n].y += Fruit_L[n].vy; Fruit_L[n].vy += g;
			Fruit_R[n].x += Fruit_R[n].vx; Fruit_R[n].y += Fruit_R[n].vy; Fruit_R[n].vy += g;
		}
		if (n == 4 || n == 10 || n == 16)
		{
			Fruit_L[n].x += Fruit_L[n].vx; Fruit_L[n].y += Fruit_L[n].vy; Fruit_L[n].vy += g;
			Fruit_R[n].x += Fruit_R[n].vx; Fruit_R[n].y += Fruit_R[n].vy; Fruit_R[n].vy += g;
		}
		if (n == 5 || n == 11 || n == 17)
		{
			if (((n == 5 && !sign1) || (n == 11 && !sign2) || (n == 17 && !sign3)) && !Break)
			{
				Sleep(6);
				Fruit[n].end = clock();
				if (difftime(Fruit[n].end, Fruit[n].start) >= 1500) Break = 1;
			}
		}

		if (Fruit_L[n].y >= Height + 10 && Fruit_L[n].vy > 0 && Fruit_R[n].y >= Height + 10 && Fruit_R[n].vy > 0)
		{
			Fruit_L[n].flag = 0;
			Fruit_L[n].flag = 0;
		}
	}

	if (life <= 0 && !Break)
	{
		if (life == -200)
		{
			Break = 1;
		}
		else
		{
			life -= 1;
			Sleep(6);
		}
	}
	if ((score % 30 == 0 || score % 30 == 1 || score % 30 == 2 || score % 30 == 3) && score / 30 > recover)
	{
		recover = score / 3;
		if (life < 3) life += 1;
	}
}

void connect()
{
	MOUSEMSG msg;
	if (MouseHit())
	{
		msg = GetMouseMsg();
		if (msg.mkLButton)
		{
			for (int n = 0; n < 18; n++)
			{
				if ((n == 0 || n == 6 || n == 12) && Fruit[n].flag)
				{
					if (msg.x >= Fruit[n].x + 20 - Fruit[n].vx && msg.x <= Fruit[n].x + 75 - Fruit[n].vx && msg.y >= Fruit[n].y + 20 - Fruit[n].vy && msg.y <= Fruit[n].y + 75 - Fruit[n].vy && Fruit[n].flag)
					{
						Fruit[n].flag = 0; Fruit[n].start = clock();

						Fruit_L[n].flag = 1; Fruit_L[n].angle = Fruit[n].angle;
						Fruit_L[n].x = Fruit[n].x; Fruit_L[n].y = Fruit[n].y;
						Fruit_L[n].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[n].vy = 0;

						Fruit_R[n].flag = 1; Fruit_R[n].angle = Fruit[n].angle;
						Fruit_R[n].x = Fruit[n].x; Fruit_R[n].y = Fruit[n].y;
						Fruit_R[n].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[n].vy = 0;

						score += 1;
					}
				}
				if ((n == 1 || n == 7 || n == 13) && Fruit[n].flag)
				{
					if (msg.x >= Fruit[n].x + 40 - Fruit[n].vx && msg.x <= Fruit[n].x + 100 - Fruit[n].vx && msg.y >= Fruit[n].y + 40 - Fruit[n].vy && msg.y <= Fruit[n].y + 100 - Fruit[n].vy && Fruit[n].flag)
					{
						Fruit[n].flag = 0; Fruit[n].start = clock();

						Fruit_L[n].flag = 1; Fruit_L[n].angle = Fruit[n].angle;
						Fruit_L[n].x = Fruit[n].x; Fruit_L[n].y = Fruit[n].y;
						Fruit_L[n].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[n].vy = 0;

						Fruit_R[n].flag = 1; Fruit_R[n].angle = Fruit[n].angle;
						Fruit_R[n].x = Fruit[n].x; Fruit_R[n].y = Fruit[n].y;
						Fruit_R[n].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[n].vy = 0;

						score += 1;
					}
				}
				if ((n == 2 || n == 8 || n == 14) && Fruit[n].flag)
				{
					if (msg.x >= Fruit[n].x + 15 - Fruit[n].vx && msg.x <= Fruit[n].x + 70 - Fruit[n].vx && msg.y >= Fruit[n].y + 15 - Fruit[n].vy && msg.y <= Fruit[n].y + 70 - Fruit[n].vy && Fruit[n].flag)
					{
						Fruit[n].flag = 0; Fruit[n].start = clock();

						Fruit_L[n].flag = 1; Fruit_L[n].angle = Fruit[n].angle;
						Fruit_L[n].x = Fruit[n].x; Fruit_L[n].y = Fruit[n].y;
						Fruit_L[n].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[n].vy = 0;

						Fruit_R[n].flag = 1; Fruit_R[n].angle = Fruit[n].angle;
						Fruit_R[n].x = Fruit[n].x; Fruit_R[n].y = Fruit[n].y;
						Fruit_R[n].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[n].vy = 0;

						score += 1;
					}
				}
				if ((n == 3 || n == 9 || n == 15) && Fruit[n].flag)
				{
					if (msg.x >= Fruit[n].x + 15 - Fruit[n].vx && msg.x <= Fruit[n].x + 75 - Fruit[n].vx && msg.y >= Fruit[n].y + 15 - Fruit[n].vy && msg.y <= Fruit[n].y + 75 - Fruit[n].vy && Fruit[n].flag)
					{
						Fruit[n].flag = 0; Fruit[n].start = clock();

						Fruit_L[n].flag = 1; Fruit_L[n].angle = Fruit[n].angle;
						Fruit_L[n].x = Fruit[n].x; Fruit_L[n].y = Fruit[n].y;
						Fruit_L[n].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[n].vy = 0;

						Fruit_R[n].flag = 1; Fruit_R[n].angle = Fruit[n].angle;
						Fruit_R[n].x = Fruit[n].x; Fruit_R[n].y = Fruit[n].y;
						Fruit_R[n].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[n].vy = 0;

						score += 1;
					}
				}
				if ((n == 4 || n == 10 || n == 16) && Fruit[n].flag)
				{
					if (msg.x >= Fruit[n].x + 30 - Fruit[n].vx && msg.x <= Fruit[n].x + 100 - Fruit[n].vx && msg.y >= Fruit[n].y + 30 - Fruit[n].vy && msg.y <= Fruit[n].y + 100 - Fruit[n].vy && Fruit[n].flag)
					{
						Fruit[n].flag = 0; Fruit[n].start = clock();

						Fruit_L[n].flag = 1; Fruit_L[n].angle = Fruit[n].angle;
						Fruit_L[n].x = Fruit[n].x; Fruit_L[n].y = Fruit[n].y;
						Fruit_L[n].vx = -(float)(rand() % 4 + 4) / 10; Fruit_L[n].vy = 0;

						Fruit_R[n].flag = 1; Fruit_R[n].angle = Fruit[n].angle;
						Fruit_R[n].x = Fruit[n].x; Fruit_R[n].y = Fruit[n].y;
						Fruit_R[n].vx = +(float)(rand() % 4 + 4) / 10; Fruit_R[n].vy = 0;

						score += 1;
					}
				}
				if ((n == 5 || n == 11 || n == 17) && Fruit[n].flag)
				{
					if (msg.x >= Fruit[n].x + 40 - Fruit[n].vx && msg.x <= Fruit[n].x + 55 - Fruit[n].vx && msg.y >= Fruit[n].y + 40 - Fruit[n].vy && msg.y <= Fruit[n].y + 55 - Fruit[n].vy && (sign1 || sign2 || sign3))
					{
						if (n == 5)sign1 = 0;
						if (n == 11)sign2 = 0;
						if (n == 17)sign3 = 0;
						Fruit[n].start = clock();
						Fruit_L[n].flag = 1; Fruit_R[n].flag = 1;
					}
				}
			}
		}
	}
}

(注:该源码非最终版本 该源码只提供参考)


发布了18 篇原创文章 · 获赞 1 · 访问量 674

猜你喜欢

转载自blog.csdn.net/LangYueMoon/article/details/103279941