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;
}
}
}
}
}
}
(注:该源码非最终版本 该源码只提供参考)