易语言电子竞技源码-易语言射击游戏源码

2026-01-28 08:15:14
  • "太空入侵者"风格
  • 风格

    下面是一个基于易语言的简单射击游戏源码,模仿经典的太空入侵者游戏风格:

    .版本 2

    .程序集 主窗口, , ,

    .程序集变量 玩家X, 整数型

    .程序集变量 玩家Y, 整数型

    .程序集变量 子弹列表, 坐标信息, , "0

    .程序集变量 敌机列表, 敌机信息, , "0

    .程序集变量 得分, 整数型

    .程序集变量 游戏状态, 整数型 // 0=未开始未开始 1=进行中 2=暂停 3=结束

    .数据类型 坐标信息

    .成员 X, 整数型

    .成员 Y, 整数型

    .数据类型 敌机信息

    .成员 X, 整数型

    .成员 Y, 整数型

    .成员 生命值, 整数型

    .成员 类型, 整数型 // 不同类型有不同外观和行为

    .子程序子程序 __启动窗口_创建完毕

    初始化游戏

    .子程序 _时钟1_周期事件

    .如果真 (游戏状态 ≠ 1)

    返回

    .如果真如果真结束

    更新游戏逻辑

    万彩网

    重绘

    .子程序 __启动窗口_按下某键, 逻辑型

    .参数 键代码, 整数型

    .参数 功能键状态, 整数型

    .判断开始 (游戏状态 =状态 = 1)

    .判断开始 (键代码 = #左箭头键)

    玩家X = 取大值 (10, 玩家X - 8)

    .判断 (键代码 = #右箭头键)

    玩家X = 取小值 (_启动窗口.宽度 - 50, 玩家X + 8)

    .判断 (键代码 = #空格键)

    发射子弹

    .默认

    .判断结束

    .否则

    .如果真 (键代码 = #回车键)

    .判断开始 (游戏状态 = 0 或 游戏状态 = 3)

    初始化游戏

    游戏状态 = 1

    .判断 (游戏状态 = 2)

    游戏状态 = 1

    .默认

    .判断结束

    .如果真结束

    .如果结束

    .子程序 初始化游戏

    玩家X = _启动窗口.宽度 ÷ 2 - 25

    玩家Y = _启动窗口.高度 - 60

    清除数组 (子弹列表)

    易语言电子竞技源码-易语言射击游戏源码

    清除数组 (敌机列表)

    得分 = 0

    游戏 游戏状态 = 1 ' 游戏中

    ' 创建初始敌机编队

    创建敌创建敌机编队

    .子程序 创建敌机编队

    .局部变量 i, 整数型

    .局部变量 j, 整数型

    .局部变量 行数, 整数型

    .局部变量 列数, 整数型

    .局部变量 索引, 整数型

    行数 = 3

    列数 = 8

    .计次循环首 (行数, i)

    .计次循环首 (列数, j)

    索引 = 取数组成员数 (敌机列表) + 1

    重定义数组 (敌机列表, 真, 索引)

    索引)

    敌机列表 [索引].X = 50 + j × 80

    敌机列表 [索引].Y = 30 + i × 70

    敌机列表 [索引].生命值 = 1

    敌机列表 [索引].类型 = 1

    .计次循环尾

    .计次循环尾

    .子程序 更新游戏逻辑

    更新子弹位置

    更新敌机位置

    检测碰撞

    .如果真 (取数组成员数 (敌机列表) = 0)

    创建敌机编队 ' 生成新生成新一波敌机

    .如果真结束

    .子程序 更新子弹位置

    .局部变量 i, 整数型

    i = 1

    .判断循环首 (i ≤ 取数组成员数 (子弹列表))

    子弹列表 [i].Y = 子弹列表 [i].Y - 12

    .如果真 (子弹列表 [i].Y ≤ 0)

    删除成员 (子弹列表, i, 1)

    .否则

    i = i + 1

    .如果真结束

    .判断循环尾

    .子程序 更新敌机位置

    .局部变量 i, 整数型

    .计次循环首 (取数组成员数 (敌机列表), i)

    敌机列表 [i].Y = 敌机列表 [i].Y + 1 ' 敌机缓慢向下移动

    .如果真 (敌机列表 [i].Y ≥ 玩家Y) ' 敌机到达屏幕底部,游戏结束

    游戏状态 = 3 ' 游戏结束

    返回

    .如果真结束

    .计次循环尾

    .子程序 检测碰撞

    .局部变量 i, 整数型

    .局部变量 j, 整数型

    i = 1

    .判断循环首 (i ≤ 取数组成员数 (子弹列表))

    j = 1

    .判断循环首 (j ≤ 取数组成员数 (敌机列表))

    .如果 (求两点距离 (子弹列表 [i].X, 子弹列表 [i].Y, 敌机列表 [j].X, 敌机列表 [j].Y)

    ' 命中目标

    删除成员 (子弹列表, i, 1)

    敌机列表 [j].生命值 = 敌机列表 [j].生命].生命值 - 1

    .如果真 (敌机列表 [j].生命值 ≤ 0)

    删除成员 (敌机列表, j, 1)

    得分 = 得分 + 100

    .如果真 (取随机数 (1, 4) = 1)

    ' 概率掉落道具等扩展内容可以在这里添加

    .如果真结束

    .否则

    j = j + 1

    .如果真结束

    跳出循环 ' 一颗子弹只能打中一个目标

    .否则

    j = j + 1

    .如果结束

    .判断循环尾

    .如果真 (i ≤ 取数组成员数 (子弹列表)) ' 确保 确保不越界

    i = i + 1

    .如果真结束

    .判断循环尾

    .子程序 求两点距离, 双精度小数型

    .参数 x1, 整数型

    .参数 y1, 整数型

    .参数 x2, 整数型

    .参数 y2, 整数型

    返回 (求平方根 ((x1 - x2) × (x1 - x2) + (y1 - y2) × (y1 - y2)))

    .子程序 程序 发射子弹

    .局部变量 新子弹, 坐标信息

    .如果真 (取数组成员数 (子弹列表) > 5) ' 限制同时存在的子弹数量

    返回

    .如果真结束

    新子弹.X = 玩家X + 15

    新子弹.Y = 玩家Y

    加入成员 (子弹列表, 新子弹)

    .子程序 绘制游戏界面

    .局部变量 i, 整数型

    ' 绘制背景

    画板1.背景颜色 = #黑色

    画板1.清除 (, )

    ' 绘制玩家飞机

    画板1.画笔颜色 = #绿色

    画板1.刷子颜色 = #绿色

    画板1.填充矩形 (玩家X, 玩家Y, 40, 20)

    ' 绘制所有子弹

    画板1.画笔颜色 = #黄色

    画板1.刷子颜色 = #黄色

    .计次循环首 (取数组成员数 (子弹列表), i)

    画板1.填充矩形 (子弹列表 [i].X, 子弹 子弹列表 [i].Y, 6, 12)

    .计次循环尾

    ' 绘制所有敌机

    .计次循环首 (取数组成员数 (敌机列表), i)

    画板1.画笔颜色 = #红色

    画板1.刷子颜色 = #红色

    画板1.填充椭圆 (敌机列表 [i].X, 敌机列表 [i].Y, 敌机列表 [i].X + 30, 敌机列表 [i].Y + 24)

    ' 根据不同敌机类型可绘制不同样式

    .如果真 (敌机列表 [i].类型 = 1)

    画板1.画笔颜色 = #白色

    画板1.刷子颜色 = #白色

    画板1.填充矩形 (敌机列表 [i].X + 7, 敌机列表 [i].Y + 9, 敌机列表 [i].X + 23, 敌机列表 [i].Y + 11)

    .如果真结束

    .计次循环尾

    ' 显示分数

    画板1.字体.字体大小 = 16

    画板1.文本颜色 = #白色

    画板1.定位写出 (10, 10, "分数: " + 到文本 (得分))

    ' 显示游戏状态

    .判断开始 (游戏状态 = 0)

    画板1.定位写出 (_启动窗口.宽度 ÷ 2 - 50, _启动窗口.高度 ÷ 2, "按回车键开始游戏")

    .判断 (游戏状态 = 2)

    画板1.定位写出 (_启动窗口.宽度 ÷ 2 - 35, _启动窗口.高度 ÷ 2, "游戏暂停")

    .判断 (游戏状态 = 3)

    画板1.定位.定位写出 (_启动窗口.宽度 ÷ 2 - 45, _启动窗口.高度 ÷ 2, "游戏结束! 最终分数: " + 到文本 (得分))

    .默认

    .判断结束

    实现说明

    这个简易的射击游戏包含以下主要功能:

    1. 玩家控制:通过左右方向键移动飞船,空格键发射子弹

    2. 敌机系统:自动生成敌机并向下移动

    3. 碰撞检测:子弹与敌机的碰撞检测

    4. 得分系统:击落敌机获得分数

    5. 游戏状态管理:包括未开始、进行中、暂停和结束四种状态

    如何改进

    你可以进一步扩展此游戏:

    1. 添加 添加不同类型的敌机和Boss

    2. 增加多种武器系统和升级机制

    3. 添加音效和更精美的图形资源

    4. 实现关卡系统,随着关卡的提升难度递增

    5. 添加玩家生命值和护盾系统

    希望这个基础源码能帮助你入门易语言游戏开发!