易语言使用动画框做消除游戏的代码

全局变量表

.版本 2

.全局变量 得分总和, 整数型

.全局变量 最高得分, 整数型

.全局变量 关卡, 整数型

利用动画框做的一个消除游戏

.版本 2

.支持库 iext2

.支持库 iext

.程序集 窗口程序集1

.程序集变量 标识1, 整数型, , "100"

.程序集变量 角度, 整数型

.程序集变量 是否开始, 逻辑型

.子程序 初始化

.局部变量 a, 整数型

.局部变量 b, 整数型

.局部变量 C, 整数型

.局部变量 d, 整数型

置随机数种子 ()

d = 1

.计次循环首 (10, a)

.计次循环首 (10, b)

C = 取随机数 (1, 5)

标识1 [d] = 动画框1.创建物体 (方块1, (b - 1) × 40, (a - 1) × 40, , )

动画框1.置类型 (标识1 [d], d)

动画框1.置图片 (标识1 [d], 取图片组图片 (#图片组1, C - 1, ), )

动画框1.置附加文本 (标识1 [d], 到文本 (C - 1))

动画框1.置角度 (标识1 [d], 180)

动画框1.自动前进 (标识1 [d], 5, 1, , , , , , , )

d = d + 1

.计次循环尾 ()

.计次循环尾 ()

.如果 (关卡 = 1)

当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + “1000”

.否则

.如果 (关卡 = 2)

当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + “3000”

.否则

.如果 (关卡 ≥ 3 且 关卡 < 10)

当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + 到文本 ((关卡 - 1) × 3000)

.否则

当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + 到文本 ((关卡 - 1) × 4000)

.如果结束

.如果结束

.如果结束

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

关卡 = 1

初始化 ()

.如果真 (寻找文件 (取运行目录 () + “\win.ini”, ) = “”)

写配置项 (取运行目录 () + “\win.ini”, “userdata”, “最高得分”, 到文本 (最高得分))

.如果真结束

最高得分 = 到整数 (读配置项 (取运行目录 () + “\win.ini”, “userdata”, “最高得分”, ))

最高得分1.标题 = “最高得分:” + 到文本 (最高得分)

.子程序 _动画框1_碰撞到边界, 逻辑型

.参数 物体标识值, 整数型

.参数 碰撞前横坐标, 整数型

.参数 碰撞前纵坐标, 整数型

.参数 边界类型, 整数型

.如果 (边界类型 = 8 且 边界类型 = 1)

动画框1.置物体位置 (物体标识值, 碰撞前横坐标, 碰撞前纵坐标, 真)

动画框1.停止自动前进 (物体标识值)

.否则

.如果 (边界类型 = 8 且 动画框1.取角度 (物体标识值) = 180)

动画框1.置物体位置 (物体标识值, 碰撞前横坐标, 碰撞前纵坐标, 真)

动画框1.停止自动前进 (物体标识值)

.否则

.如果结束

.如果结束

.子程序 _动画框1_碰撞到物体

.参数 碰撞物体标识值, 整数型

.参数 碰撞前横坐标, 整数型

.参数 碰撞前纵坐标, 整数型

.参数 被碰撞物体标识值, 整数型

动画框1.置物体位置 (碰撞物体标识值, 碰撞前横坐标, 碰撞前纵坐标, 真)

.子程序 _动画框1_双击物体

.参数 物体标识值, 整数型

.局部变量 连定, 整数型, , "5"

.局部变量 计数, 整数型

.局部变量 计次, 整数型

.局部变量 计次1, 整数型

.局部变量 计次2, 整数型

.局部变量 计次3, 整数型

.局部变量 计次4, 整数型

.局部变量 A, 整数型

.局部变量 B, 整数型

.局部变量 有无, 逻辑型

.局部变量 确定相连, 整数型, , "100"

.局部变量 横坐标, 整数型

.局部变量 有没, 逻辑型

.局部变量 定位1, 整数型

.局部变量 剩余, 整数型

计数 = 1

.如果真 (物体标识值 ≤ 0)

返回 ()

.如果真结束

连定 [1] = 物体标识值

确定相连 [计数] = 连定 [1]

连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上

.如果真 (连定 [2] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [2]

.如果真结束

.如果真结束

连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下

.如果真 (连定 [3] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [3]

.如果真结束

.如果真结束

连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左

.如果真 (连定 [4] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [4]

.如果真结束

.如果真结束

连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右

.如果真 (连定 [5] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [5]

.如果真结束

.如果真结束

.如果真 (动画框1.取附加文本 (连定 [2]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [3]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [4]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [5]) ≠ 动画框1.取附加文本 (连定 [1]))

返回 ()

.如果真结束

.计次循环首 (计数 + 20, 计次)

.如果真 (确定相连 [计次 + 1] = 0 或 计次 + 1 > 计数)

跳出循环 ()

.如果真结束

连定 [1] = 确定相连 [计次 + 1]

.如果真 (有无 = 真)

有无 = 假

.如果真结束

连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上

.如果真 (连定 [2] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [2] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [2]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下

.如果真 (连定 [3] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [3] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [3]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左

.如果真 (连定 [4] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [4] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [4]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右

.如果真 (连定 [5] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [5] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [5]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

.计次循环尾 ()

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

动画框1.销毁物体 (确定相连 [计次])

.计次循环尾 ()

.计次循环首 (9, 计次3)

.计次循环首 (11, 计次)

横坐标 = (计次 - 1) × 40

.计次循环首 (100, 计次1)

.如果真 (动画框1.是否在区域内 (标识1 [计次1], , , 横坐标, 0, 40, 500))

有没 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有没 = 假)

.计次循环首 (20 - 计次, 计次1)

.计次循环首 (20 - 计次, 计次2)

.如果真 (动画框1.定位物体 (横坐标 + 40 × 计次1, 动画框1.高度 - 40 × (计次2 - 1)) ≠ -1)

定位1 = 动画框1.定位物体 (横坐标 + 40 × 计次1, 动画框1.高度 - 40 × (计次2 - 1))

动画框1.置角度 (定位1, 270)

动画框1.前进 (定位1, 40)

动画框1.置角度 (定位1, 180)

.如果真结束

.计次循环尾 ()

.计次循环尾 ()

.如果真结束

有没 = 假

.计次循环尾 ()

.计次循环尾 ()

得分总和 = 得分总和 + 计数 × 计数 × 5

当前得分.标题 = 到文本 (得分总和)

.计次循环首 (100, 计次3)

.如果真 (动画框1.是否已显示 (标识1 [计次3]))

连定 [1] = 标识1 [计次3]

连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40)

连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40)

连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1]))

连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1]))

.如果真 (连定 [2] ≠ -1 且 动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))

有没 = 假

返回 ()

.如果真结束

.如果真 (连定 [3] ≠ -1 且 动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))

有没 = 假

返回 ()

.如果真结束

.如果真 (连定 [4] ≠ -1 且 动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))

有没 = 假

返回 ()

.如果真结束

.如果真 (连定 [5] ≠ -1 且 动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))

有没 = 假

返回 ()

.如果真结束

.如果真结束

.如果真 (计次3 = 100 且 有没 = 假)

有没 = 真

.如果真结束

.计次循环尾 ()

.如果真 (有没)

剩余 = 动画框1.取物体数 ()

.如果真 (剩余 < 10)

得分总和 = 得分总和 + 2000 - 剩余 × 剩余 × 20

当前得分.标题 = 到文本 (得分总和)

.如果真结束

.如果真 (得分总和 > 最高得分)

最高得分 = 得分总和

当前得分.标题 = 到文本 (得分总和)

最高得分1.标题 = “最高得分:” + 到文本 (最高得分)

.如果真结束

.如果真 (关卡 = 1)

.如果 (到整数 (当前得分.标题) ≥ 1000)

信息框 (“闯关成功!”, 0, )

关卡 = 关卡 + 1

当前得分.标题 = 到文本 (得分总和)

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.否则

信息框 (“闯关失败!”, 0, )

关卡 = 1

当前得分.标题 = “0”

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.如果结束

.如果真结束

.如果真 (关卡 = 2)

.如果 (到整数 (当前得分.标题) ≥ 3000)

信息框 (“闯关成功!”, 0, )

关卡 = 关卡 + 1

当前得分.标题 = 到文本 (得分总和)

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.否则

信息框 (“闯关失败!”, 0, )

关卡 = 1

当前得分.标题 = “0”

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.如果结束

.如果真结束

.如果真 (关卡 ≥ 3 且 关卡 < 10)

.如果 (到整数 (当前得分.标题) ≥ (关卡 - 1) × 3000)

信息框 (“闯关成功!”, 0, )

关卡 = 关卡 + 1

当前得分.标题 = 到文本 (得分总和)

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.否则

信息框 (“闯关失败!”, 0, )

关卡 = 1

当前得分.标题 = “0”

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.如果结束

.如果真结束

.如果真 (关卡 ≥ 10)

.如果 (到整数 (当前得分.标题) ≥ (关卡 - 1) × 4000)

信息框 (“闯关成功!”, 0, )

关卡 = 关卡 + 1

当前得分.标题 = 到文本 (得分总和)

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.否则

信息框 (“闯关失败!”, 0, )

关卡 = 1

当前得分.标题 = “0”

动画框1.销毁所有物体 ()

初始化 ()

返回 ()

.如果结束

.如果真结束

动画框1.销毁所有物体 ()

.如果真结束

.子程序 _重开按钮_被单击

动画框1.销毁所有物体 ()

得分总和 = 0

初始化 ()

.子程序 _动画框1_物体左键被放开

.参数 物体标识值, 整数型

.参数 已被按下物体, 整数型

.局部变量 连定, 整数型, , "5"

.局部变量 计数, 整数型

.局部变量 计次, 整数型

.局部变量 A, 整数型

.局部变量 有无, 逻辑型

.局部变量 确定相连, 整数型, , "100"

.局部变量 变暗计次, 整数型

.如果真 (物体标识值 + 已被按下物体 > 0 且 物体标识值 = 已被按下物体)

计数 = 1

连定 [1] = 物体标识值

确定相连 [计数] = 连定 [1]

连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上

.如果真 (连定 [2] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [2]

.如果真结束

.如果真结束

连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下

.如果真 (连定 [3] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [3]

.如果真结束

.如果真结束

连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左

.如果真 (连定 [4] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [4]

.如果真结束

.如果真结束

连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右

.如果真 (连定 [5] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))

计数 = 计数 + 1

确定相连 [计数] = 连定 [5]

.如果真结束

.如果真结束

.如果真 (动画框1.取附加文本 (连定 [2]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [3]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [4]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [5]) ≠ 动画框1.取附加文本 (连定 [1]))

返回 ()

.如果真结束

.计次循环首 (计数 + 20, 计次)

.如果真 (确定相连 [计次 + 1] = 0 或 计次 + 1 > 计数)

跳出循环 ()

.如果真结束

连定 [1] = 确定相连 [计次 + 1]

.如果真 (有无 = 真)

有无 = 假

.如果真结束

连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上

.如果真 (连定 [2] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [2] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [2]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下

.如果真 (连定 [3] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [3] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [3]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左

.如果真 (连定 [4] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [4] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [4]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右

.如果真 (连定 [5] ≠ -1)

.如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))

.计次循环首 (计数, A)

.如果真 (连定 [5] = 确定相连 [A])

有无 = 真

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (有无 = 假)

计数 = 计数 + 1

确定相连 [计数] = 连定 [5]

.如果真结束

有无 = 假

.如果真结束

.如果真结束

.计次循环尾 ()

.如果真结束

.计次循环首 (100, 变暗计次)

动画框1.置亮度 (标识1 [变暗计次], 0)

.计次循环尾 ()

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

动画框1.置亮度 (确定相连 [计次], 250)

.计次循环尾 ()

本次得分1.标题 = 到文本 (计数 × 计数 × 5)

.子程序 __启动窗口_将被销毁

写配置项 (取运行目录 () + “\win.ini”, “userdata”, “最高得分”, 到文本 (最高得分))

运行结果:

总结

以上是 易语言使用动画框做消除游戏的代码 的全部内容, 来源链接: utcz.com/z/318842.html

回到顶部