易语言使用动画框做消除游戏的代码
全局变量表
.版本 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