传奇私服发布网_新开传奇网站发布_最全优秀单职业传奇私服发布平台_www.sf999.Com
新开传奇私服网站专注于服务广大新开传奇首区和复古传奇私服玩家,我们承诺全年无休,每天为您提供最新的新开传奇网站和传奇sf999信息。...
2025-01-03
#
#
#
#
# (lib,"Winmm.lib") // 引用 API
# High 800 // 游戏画面尺寸
# Width 800
IMAGE ; // 背景图片
IMAGE , ; // 正常飞机图片
IMAGE , ; // 爆炸飞机图片
IMAGE , ; // 敌机图片
IMAGE , ; // boss图片
IMAGE [10][2]; // 我方飞机子弹图片
float [3] = { 0.4,0.5,0.6 }; //敌机随机飞行速度列表
int = 5; //同一画面更大敌机数量
int = 3; //敌机的生命值
int = 20; //同一画面最多敌机子弹数量
int = 2; //我方飞机子弹种类
int = 0; //我方飞机now子弹等级 and 对应打boss的伤害为 +1
int = 20; //我方飞机更大子弹数量
int = 0; //飞机是否爆炸
int score = 0; //得分
int = 5; //boss子弹同一画面更大数量
int = 0; //用于控制boss子弹发射间隔
Plane { //我方飞机属性
float x, y;
int life;
float w, h;
}plane;
{ //我方飞机子弹属性
float x, y;
int life;
float w, h;
}[200];
Enemy { //敌机属性
float x, y;
int speed; //准确来说敌机速度是[enemy.speed]
int life;
float w, h;
}enemy[20];
{ //敌机子弹属性
float x, y;
float speed;
int life;
float w, h;
}[100];
Boss { //boss属性
float x, y;
float w, h;
float add_x, add_y; //x,y轴移动速度
int life; //生命值大小
int ; //boss是否出现
int ;
}boss;
{ //boss子弹属性
float x, y;
float w, h;
float add_x, add_y;
int life;
}[20][3];
void (); // 数据初始化(加载图片资源,初始化飞机属性)
void show(); // 画面刷新
void (); // 与用户输入无关的更新
void (); // 与用户输入有关的更新
void (); //游戏结束
void (); //设置我方飞机的初始属性
void (); //设置我方子弹 和 敌军子弹的大小
void (int i); //设置敌机属性
void (Enemy a); //设置敌机子弹属性
void (); //设置boss属性
void ( a[3]); //设置boss属性
int (Enemy a, b); //子弹--敌机碰撞检测
int (Boss a, b); //子弹--boss碰撞检测
int (Plane a, b); //我方--敌机子弹碰撞检测
int (Plane a, b); //我方--boss子弹碰撞检测
int main()
(); // 数据初始化
while (1) // 游戏循环执行
show(); // 显示画面
(); // 与用户输入无关的更新
(); // 与用户输入有关的更新
if ( == 1) break;
(); // 游戏结束、后续处理
0;
void () // 数据初始化(加载图片资源,初始化飞机属性)
("open image/.mp3 alias ", NULL, 0, NULL);//打开背景音乐
("play ", NULL, 0, NULL); // 循环播放
(Width, High);
(&, "image/back2.jpg", 800, 800);
(&, "image/.jpg");
(&, "image/.jpg");
(&, "image/.jpg");
(&, "image/.jpg");
(&, "image/.jpg");
(&, "image/.jpg");
(&[0][0], "image/.jpg");
(&[0][1], "image/.jpg");
(&[1][0], "image/.jpg");
(&[1][1], "image/.jpg");
(&[2][0], "image/.jpg");
(&[2][1], "image/.jpg");
(&, "image/.jpg");
(&, "image/.jpg");
(); //我方飞机的初始化
(); //boss的初始化
(); //子弹(我方+敌人)的初始化
for (int i = 0; i < ; i++) //敌机的初始化
enemy[i].h = 135;
enemy[i].w = 92;
(i);
();
void show() //
(0, 0, &); // 显示背景
if ( == 0)
int tx = 91;
int ty = 106;
(plane.x - tx / 2, plane.y - ty / 2, &, ); // 显示正常飞机
(plane.x - tx / 2, plane.y - ty / 2, &, );
if (boss. == 1) //如果出现boss
(boss.x, boss.y, &, ); //绘制boss
(boss.x, boss.y, &, );
for (int k = 0; k < ; k++) //绘制boss子弹
for (int i = 0; i < 3; i++)
if ([k][i].life == 0) ;
([k][i].x, [k][i].y, &[0][0], );
([k][i].x, [k][i].y, &[0][1], );
//绘制boss血条
(BLACK); //设置当前画线颜色
(100, 5, Width - 100, 20);
(RED); //设置当前填充颜色。
if (boss.life < 0) boss.life = 0;
(100, 5,100+ boss.life*(Width - 200)*0.01, 20);
for (int i = 0; i < ; i++) //绘制我方飞机子弹
if ([i].life == 0) ;
([i].x - [i].w / 2, [i].y, &[][0], );
([i].x - [i].w / 2, [i].y, &[][1], );
for (int i = 0; i < ; i++) //绘制敌机
(enemy[i].x, enemy[i].y, &, );
(enemy[i].x, enemy[i].y, &, );
for (int i = 0; i < ; i++) //绘制敌机子弹
if ([i].life == 0) ;
([i].x, [i].y, &[0][0], ); // 显示敌机子弹
([i].x, [i].y, &[0][1], );
else
(plane.x - 50, plane.y - 60, &, ); // 显示爆炸飞机
(plane.x - 50, plane.y - 60, &, );
(Width*0.30, High*0.95, "得分:");
char s[5];
(s, "%d", score);
(Width*0.40, High*0.95, s);
(Width*0.55, High*0.95, "生命:");
(s, "%d", plane.life);
(Width*0.65, High*0.95, s);
();
Sleep(2);
void ()
if ( == 0)
++; //算是boss子弹的计时器吧
if (boss. == 1) //如果出现boss
if (boss.y < 25) //boss的前摇(装逼进场)
boss.y += boss.add_y;
else
boss.x += boss.add_x; //boss的左右摇摆
if (boss.x + boss.w > Width || boss.x < 0)
boss.add_x = 0 - boss.add_x;
for (int k = 0; k < ; k++) //boss子弹的移动
for (int i = 0; i < 3; i++)
if ([k][i].life == 0) ;
if ([k][i].y < Width - 10)
[k][i].x += [k][i].add_x;
[k][i].y += [k][i].add_y;
else
[k][i].life = 0; //如果boss子弹超出边界 消失它
if ( % 400 == 0) //boss不定时发射子弹
for (int k = 0; k < ; k++)
{ //找到消失状态的子弹 发射它
if ([k][0].life == 0 && [k][1].life == 0 && [k][2].life == 0)
([k]);
break;
for (int k = 0; k < ; k++) //boss子弹和我方飞机的碰撞检测
for (int i = 0; i < 3; i++)
if ([k][i].life == 0) ;
if ((plane, [k][i]) == 1)
plane.life -= 1;
[k][i].life = 0; //如果boss某个子弹碰撞了 那这个子弹要消失
for (int i = 0; i < ; i++) //我方子弹的移动
if ([i].life == 0) ;
if ([i].y > 0)
[i].y -= 2;
else //如果子弹超出边界 让他消失
[i].life = 0;
for (int i = 0; i < ; i++) //敌机的移动
if (enemy[i].y < High - 25)
enemy[i].y = enemy[i].y + [enemy[i].speed];
else
(i);
for (int i = 0; i < ; i++) //敌方子弹的移动
if ([i].life == 0) ;
if ([i].y < High - 10)
[i].y += [i].speed;
else
[i].life = 0; //如果子弹超出边界 让他消失
for (int i = 0; i < ; i++) //敌方子弹和我方飞机的碰撞检测
if ([i].life == 0) ;
if ((plane, [i]) == 1)
plane.life -= 1;
[i].life = 0;
for (int i = 0; i < ; i++) //我方子弹和boss碰撞检测
if ([i].life == 0) ;
if (boss. == 0 || boss.life < 0) break;
if ((boss, [i]) == 1)
boss.life -= ( + 1);
[i].life = 0;
for (int i = 0; i < ; i++) //我方子弹和敌机的检测
for (int j = 0; j < ; j++)
if ([j].life == 0) ;
if ((enemy[i], [j]) == 1) // 子弹击中敌机
[j].life = 0; //子弹消失
if (enemy[i].life 0 && score % 5 == 0 && score % 2 != 0)
("close ", NULL, 0, NULL); // 先把前面一次的音乐关闭
("open image/5.mp3 alias ", NULL, 0, NULL); // 打开音乐
("play ", NULL, 0, NULL); // 仅播放一次
if (score % 10 == 0)
("close ", NULL, 0, NULL); // 先把前面一次的音乐关闭
("open image/10.mp3 alias ", NULL, 0, NULL); // 打开音乐
("play ", NULL, 0, NULL); // 仅播放一次
if (score >= 6) //达到一定分数 出现boss
boss. = 1;
= 0; //boss出现 同时减少其他小敌机
for (int p = 0; p < ; p++) //之前敌机发射的子弹消失
[p].life = 0;
else
enemy[i].life -= 1;
void ()
if ( == 0)
m; // 定义鼠标消息
while (()) //这个函数用于检测当前是否有鼠标消息
m = ();
if (m.uMsg == )
// 飞机的位置等于鼠标所在的位置
plane.x = m.x;
plane.y = m.y;
else if (m.uMsg == )
// 按下鼠标左键,发射子弹
for (int i = 0; i < ; i++)
if ([i].life == 0)
[i].x = plane.x;
[i].y = plane.y - 53;
[i].life = 1;
break;
("close ", NULL, 0, NULL); // 先把前面一次的音乐关闭
("open image/f_gun.mp3 alias ", NULL, 0, NULL); // 打开音乐
("play ", NULL, 0, NULL); // 仅播放一次
void ()
();
();
();
void () //设置我方飞机的初始属性
plane.x = Width * 0.5;
plane.y = High * 0.7;
plane.w = 91;
plane.h = 106;
plane.life = 10; //我方飞机的初始生命值
void () //重置我方子弹 和 敌军子弹的大小
for (int i = 0; i < ; i++)
if ( == 0)
[i].w = 8;
[i].h = 20;
else if ( == 1)
[i].w = 40;
[i].h = 36;
else if ( == 2)
[i].w = 65;
[i].h = 40;
for (int i = 0; i < ; i++)
[i].w = 8;
[i].h = 20;
void (int i) //设置敌机属性
enemy[i].x = rand() % Width;
enemy[i].y = -200;
enemy[i].speed = rand() % 3;
enemy[i].life = ;
(enemy[i]); //开始时生成一个敌人 就附加子弹
void (Enemy a) //设置敌机子弹属性
for (int i = 0; i < ; i++)
if ([i].life == 0)
[i].x = a.x + a.w / 2;
[i].y = a.y + a.h;
[i].speed = [a.speed] + 0.3;
[i].life = 1;
break;
void () //设置boss属性
boss.w = 200;
boss.h = 213;
boss.x = Width / 2 - boss.w / 2;
boss.y = 0 - boss.h;
boss.life = 100;
boss.add_x = 0.7;
boss.add_y = 0.3;
void ( a[3]) //设置boss属性
for (int i = 0; i < 3; i++)
a[i].x = boss.x + boss.w / 2;
a[i].y = boss.y + boss.h;
a[i].add_y = 0.5;
a[i].w = 8;
a[i].h = 20;
a[i].life = 1;
a[0].add_x = -0.5;
a[1].add_x = 0;
a[2].add_x = 0.5;
int (Enemy a, b) //子弹和敌机是否相撞
int rex = (a.w + b.w) / 2;
int rey = (a.h + b.h) / 2;
int lx = abs((int)(a.x + a.w / 2 - b.x - b.w / 2));
int ly = abs((int)(a.y + a.h / 2 - b.y - b.h / 2));
if (lx < rex &&ly < rey)()
1;
0;
int (Boss a, b) //子弹和boss是否相撞
int rex = (a.w + b.w) / 2;
int rey = (a.h + b.h) / 2;
int lx = abs((int)(a.x + a.w / 2 - b.x - b.w / 2));
int ly = abs((int)(a.y + a.h / 2 - b.y - b.h / 2));
if (lx < rex &&ly < rey)
1;
0;
int (Plane a, b) //敌机子弹是否和我方飞机相撞
a.x -= a.w / 2;
a.y -= a.h / 2;
int rex = (a.w + b.w) / 2;
int rey = (a.h + b.h) / 2;
int lx = abs((int)(a.x + a.w / 2 - b.x - b.w / 2));
int ly = abs((int)(a.y + a.h / 2 - b.y - b.h / 2));
if (lx < rex &&ly < rey)
1;
0;
int (Plane a, b) //boss子弹是否和我方飞机相撞
a.x -= a.w / 2;
a.y -= a.h / 2;
int rex = (a.w + b.w) / 2;
int rey = (a.h + b.h) / 2;
int lx = abs((int)(a.x + a.w / 2 - b.x - b.w / 2));
int ly = abs((int)(a.y + a.h / 2 - b.y - b.h / 2));
if (lx < rex &&ly < rey)
1;
0;
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,请告知我们,本站将立刻删除涉嫌侵权内容。
相关文章
新开传奇私服网站专注于服务广大新开传奇首区和复古传奇私服玩家,我们承诺全年无休,每天为您提供最新的新开传奇网站和传奇sf999信息。...
2025-01-03
明确否认him存在,但是我们可以从一些蛛丝马迹中发现官方有说谎的可能性。就有细心的玩家,从这五个地方观察到了him存在,总共4个证据。...
2025-01-03
8条回答:【推荐答案】主公莫慌(手游)-新手奖励1.序列号:gsaq6617(官方)固定唯一,可重复激活无数新账号。2.奖励:3000绿钻,1000将魂,1紫将...
2025-01-03
网盘提取码: xawy帝国cms内核仿《新趣头条》娱乐游戏资讯网站源码,适合做电竞,娱乐,评测类的站点。利用模板改改可以轻松完成1个站点。不带安装教程...
2025-01-03
热评文章
2022年专属火龙之神途新版
1.80龙神合击传奇
1.76永恒小极品+5复古传奇
1.76双倍魔天大极品第三季单职业
1.76神梦传奇三职业
1.80聖统圣统合击三职业传奇