设为首页收藏本站亲,今天是2018年01月20日,离还有-17550.666666667天。

易源码

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 287|回复: 14

对对碰

[复制链接]

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
发表于 2017-6-6 08:59:48 | 显示全部楼层 |阅读模式
链接:http://pan.baidu.com/s/1kV82eNl 密码:rd67

  
窗口程序集名保 留  保 留备 注
地图类  123
变量名类 型数组备 注
地图横坐标整数型相对与目标0,0的地图整体坐标
地图纵坐标整数型  
小格宽整数型地图中每个小格的尺寸
小格高整数型  
地图总宽度整数型通过横向小格数和每个小格宽计算出的地图总宽度
地图总高度整数型通过纵向小格数和每个小格高计算出的地图总高度
横向小格数整数型地图中横向小格的数量
纵向小格数整数型地图中纵向小格的数量

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用

子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
初始数据
如果 (取数组成员数 (地图数组) > 0)
纵向小格数 = 取数组下标 (地图数组, 1)
横向小格数 = 取数组下标 (地图数组, 2)
输出调试文本 (“地图类,初始数据失败,地图数组成员数为0”)

' 计算地图总宽高
地图总宽度 = 小格宽 × 横向小格数
地图总高度 = 小格高 × 纵向小格数
子程序名返回值类型公开备 注
定义地图
参数名类 型参考可空数组备 注
横向位置整数型   地图整体横向位置
纵向位置整数型   地图整体纵向位置
图块宽整数型   
图块高整数型   
地图横坐标 = 横向位置
地图纵坐标 = 纵向位置
小格宽 = 图块宽
小格高 = 图块高
子程序名返回值类型公开备 注
重画
参数名类 型参考可空数组备 注
绘画目标画板   
变量名类 型静态数组备 注
所需画出横向起始索引整数型  
所需画出横向结束索引整数型  
所需画出纵向起始索引整数型  
所需画出纵向结束索引整数型  
画出横向位置整数型  
画出纵向位置整数型  
循环变量1整数型  
循环变量2整数型  
所需画出横向起始索引 = (0 - 地图横坐标) ÷ 小格宽
所需画出横向结束索引 = 所需画出横向起始索引 + 绘画目标.取用户区宽度 () ÷ 小格宽
所需画出纵向起始索引 = (0 - 地图纵坐标) ÷ 小格高
所需画出纵向结束索引 = 所需画出纵向起始索引 + 绘画目标.取用户区高度 () ÷ 小格高
如果真 (所需画出横向起始索引 < 1)
所需画出横向起始索引 = 1
如果真 (所需画出纵向起始索引 < 1)
所需画出纵向起始索引 = 1
如果真 (所需画出横向结束索引 > 横向小格数)
所需画出横向结束索引 = 横向小格数
如果真 (所需画出纵向结束索引 > 纵向小格数)
所需画出纵向结束索引 = 纵向小格数

' 画地图
如果 (地图纵坐标 > 0)
画出纵向位置 = 地图纵坐标
画出纵向位置 = 地图纵坐标 % 小格高

变量循环首 (所需画出纵向起始索引, 所需画出纵向结束索引, 1, 循环变量1)
画出横向位置 = 地图横坐标
如果 (地图横坐标 > 0)
画出横向位置 = 地图横坐标
画出横向位置 = 地图横坐标 % 小格宽

变量循环首 (所需画出横向起始索引, 所需画出横向结束索引, 1, 循环变量2)
如果真 (地图数组 [循环变量1] [循环变量2] > 0)
绘画目标.画图片 (图块图片号组 [地图数组 [循环变量1] [循环变量2]], 画出横向位置, 画出纵向位置, , , #拷贝 )
画出横向位置 = 画出横向位置 + 小格宽
变量循环尾 ()
画出纵向位置 = 画出纵向位置 + 小格高
变量循环尾 ()
子程序名返回值类型公开备 注
移动地图
参数名类 型参考可空数组备 注
横向增量整数型  
纵向增量整数型  
如果真 (是否为空 (横向增量))
地图横坐标 = 地图横坐标 + 横向增量
如果真 (是否为空 (纵向增量))
地图纵坐标 = 地图纵坐标 + 横向增量

子程序名返回值类型公开备 注
设置地图横坐标
参数名类 型参考可空数组备 注
新横坐标整数型   
地图横坐标 = 新横坐标
子程序名返回值类型公开备 注
设置地图纵坐标
参数名类 型参考可空数组备 注
新纵坐标整数型   
地图纵坐标 = 新纵坐标
子程序名返回值类型公开备 注
获取地图横坐标整数型
返回 (地图横坐标)
子程序名返回值类型公开备 注
获取地图纵坐标整数型
返回 (地图纵坐标)
子程序名返回值类型公开备 注
清除数据清除本对象中所有数据。欲再次使用,需重新调用初始数据方法。
地图横坐标 = 0
地图纵坐标 = 0
小格宽 = 0
小格高 = 0
地图总宽度 = 0
地图总高度 = 0
横向小格数 = 0
纵向小格数 = 0
清除数组 (地图数组)
子程序名返回值类型公开备 注
取单元格横坐标整数型取单元格X位置
参数名类 型参考可空数组备 注
所在列号整数型   
返回 (地图横坐标 + (所在列号 - 1) × 小格宽)
子程序名返回值类型公开备 注
取单元格纵坐标整数型取单元格Y位置
参数名类 型参考可空数组备 注
所在行号整数型   
返回 (地图纵坐标 + (所在行号 - 1) × 小格高)
子程序名返回值类型公开备 注
取地图总宽度整数型
返回 (地图总宽度)
子程序名返回值类型公开备 注
取地图总高度整数型
返回 (地图总高度)




上一篇:学校图书管理系统
回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 08:59:57 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
启动窗口程序集   
变量名类 型数组备 注
剩余块数整数型当前关剩余普通块数量,用于判断是否过关
欲载入关号整数型指定欲载入的关卡号
按下键键值整数型当前未处理的按键操作的键值
本次消除块数整数型本次操作消除块的数量
消除块动画组精灵类0可以动态添加指定数量的动画,并操作它们
块动画动作索引组整数型4对应精灵类动画播放的动作索引
后台缓冲画板用于消除闪烁而建立的不可视后台缓冲

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
循环变量整数型  
计次循环首 (4, 循环变量)
块动画动作索引组 [循环变量] = 循环变量
计次循环尾 ()
复制窗口组件 (画板1, 后台缓冲)
后台缓冲.自动重画 = 真
运行目录 = 取运行目录 ()
如果真 (取文本右边 (运行目录, 1)“\”)
运行目录 = 运行目录 + “\”

周期长度 = 1000 ÷ #FPS
载入资源 ()
选择框对象.初始化数据 (, )
欲载入关号 = 1
读地图 ()
子程序名返回值类型公开备 注
__启动窗口_将被销毁  
变量名类 型静态数组备 注
循环变量整数型  
计次循环首 (取数组成员数 (图块图片号组), 循环变量)
卸载图片 (图块图片号组 [循环变量])
计次循环尾 ()
卸载图片 (图片号_墙 [1])
卸载图片 (图片号_石头 [1])
卸载图片 (图片号_电梯 [1])
卸载图片 (图片号_火焰 [1])
卸载图片 (图片号_火焰 [2])
卸载图片 (图片号_选择框 [1])
卸载图片 (图片号_选择框 [2])
子程序名返回值类型公开备 注
读地图  
变量名类 型静态数组备 注
行数整数型  
列数整数型  
文件号整数型  
循环变量1整数型  
循环变量2整数型  
临时对象_石头石头类 0
临时对象_火焰火焰类 0
临时对象_墙墙类 0
临时对象_水平电梯电梯_水平类 0
临时对象_垂直电梯电梯_垂直类 0
' 释放无用资源
地图.清除数据 ()
剩余块数 = 0
清除数组 (特殊块组)
游戏结束 = 假
_启动窗口.标题 = “对对碰 - 第” + 到文本 (欲载入关号)“关”
' 载入新地图
文件号 = 打开文件 (运行目录 + #地图路径 + 到文本 (欲载入关号)“.map”, #读入, #无限制 )
如果真 (文件号 = 0)
输出调试文本 (“打开地图文件失败”)

' 读地图数据
地图.定义地图 (0, 0, #图块宽度, #图块高度 )
行数 = 取字节集数据 (读入字节集 (文件号, 4), #整数型, )
列数 = 取字节集数据 (读入字节集 (文件号, 4), #整数型, )
重定义数组 (地图数组, 假, 行数, 列数)
计次循环首 (行数, 循环变量1)
计次循环首 (列数, 循环变量2)
地图数组 [循环变量1] [循环变量2] = 取字节集数据 (读入字节集 (文件号, 4), #整数型, )
如果真 (地图数组 [循环变量1] [循环变量2] > 0)
剩余块数 = 剩余块数 + 1
' 特殊块处理
如果真 (地图数组 [循环变量1] [循环变量2] < 0)
判断 (地图数组 [循环变量1] [循环变量2] = -1)
重定义数组 (临时对象_墙, 假, 1)
临时对象_墙 [1].置数据 (地图.取单元格横坐标 (循环变量2), 地图.取单元格纵坐标 (循环变量1), 循环变量1, 循环变量2)
加入成员 (特殊块组, 临时对象_墙 [1])
清除数组 (临时对象_墙)
判断 (地图数组 [循环变量1] [循环变量2] = -2)
重定义数组 (临时对象_石头, 假, 1)
临时对象_石头 [1].置数据 (地图.取单元格横坐标 (循环变量2), 地图.取单元格纵坐标 (循环变量1), 循环变量1, 循环变量2)
加入成员 (特殊块组, 临时对象_石头 [1])
清除数组 (临时对象_石头)
判断 (地图数组 [循环变量1] [循环变量2] = -3)
重定义数组 (临时对象_垂直电梯, 假, 1)
临时对象_垂直电梯 [1].置数据 (地图.取单元格横坐标 (循环变量2), 地图.取单元格纵坐标 (循环变量1), 循环变量1, 循环变量2)
加入成员 (特殊块组, 临时对象_垂直电梯 [1])
清除数组 (临时对象_垂直电梯)
判断 (地图数组 [循环变量1] [循环变量2] = -4)
重定义数组 (临时对象_水平电梯, 假, 1)
临时对象_水平电梯 [1].置数据 (地图.取单元格横坐标 (循环变量2), 地图.取单元格纵坐标 (循环变量1), 循环变量1, 循环变量2)
加入成员 (特殊块组, 临时对象_水平电梯 [1])
清除数组 (临时对象_水平电梯)
判断 (地图数组 [循环变量1] [循环变量2] = -5)
输出调试文本 (“真的有5”)
判断 (地图数组 [循环变量1] [循环变量2] = -6)
重定义数组 (临时对象_火焰, 假, 1)
临时对象_火焰 [1].置数据 (地图.取单元格横坐标 (循环变量2), 地图.取单元格纵坐标 (循环变量1), 循环变量1, 循环变量2)
加入成员 (特殊块组, 临时对象_火焰 [1])
清除数组 (临时对象_火焰)
输出调试文本 (“还有其他值:” + 到文本 (地图数组 [循环变量1] [循环变量2]))
地图数组 [循环变量1] [循环变量2] = -取数组成员数 (特殊块组)

计次循环尾 ()
计次循环尾 ()
' 初始化
地图.初始数据 ()
地图.设置地图横坐标 ( (后台缓冲.宽度 - 地图.取地图总宽度 ()) ÷ 2)
地图.设置地图纵坐标 ( (后台缓冲.高度 - 地图.取地图总高度 ()) ÷ 2)
计次循环首 (取数组成员数 (特殊块组), 循环变量1)
特殊块组 [循环变量1].更新横坐标 ()
特殊块组 [循环变量1].更新纵坐标 ()
计次循环尾 ()
' 设置选择框位置
选择框对象.置所在行 (取数组下标 (地图数组, 1) ÷ 2 + 1)
选择框对象.置所在列 (取数组下标 (地图数组, 2) ÷ 2 + 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))
选择框对象.置纵坐标 (地图.取单元格纵坐标 (选择框对象.取所在行 ()))
选择框对象.置状态 (1)
' 改变游戏状态
关闭文件 (文件号)
时钟1.时钟周期 = 周期长度
子程序名返回值类型公开备 注
载入资源 载入图片等动作
变量名类 型静态数组备 注
循环变量1整数型  
循环变量2整数型  
计次循环首 ( #图块数量, 循环变量1)
加入成员 (图块图片号组, 载入图片 (运行目录 + #图块图片路径“图块” + 到文本 (循环变量1)“.bmp”))
计次循环首 ( #图块动画帧数, 循环变量2)
加入成员 (图块动画组, 载入图片 (运行目录 + #动画图片路径“图块” + 到文本 (循环变量1)“_” + 到文本 (循环变量2)“.bmp”))
计次循环尾 ()
计次循环尾 ()
图片号_墙 [1] = 载入图片 (运行目录 + #特殊块图片路径“墙.bmp”)
图片号_石头 [1] = 载入图片 (运行目录 + #特殊块图片路径“石头.bmp”)
图片号_电梯 [1] = 载入图片 (运行目录 + #特殊块图片路径“电梯.bmp”)
图片号_火焰 [1] = 载入图片 (运行目录 + #特殊块图片路径“火焰_1.bmp”)
图片号_火焰 [2] = 载入图片 (运行目录 + #特殊块图片路径“火焰_2.bmp”)
图片号_选择框 [1] = 载入图片 (运行目录 + #图片路径“选择框_未选.bmp”)
图片号_选择框 [2] = 载入图片 (运行目录 + #图片路径“选择框_已选.bmp”)
子程序名返回值类型公开备 注
_时钟1_周期事件  
变量名类 型静态数组备 注
启动时间整数型  
耗费时间整数型  
时钟1.时钟周期 = 0
如果真 (游戏结束 = )
信息框 (“游戏失败,按F2重来”, #确认钮#信息图标, “失败”)
返回 ()

启动时间 = 取启动时间 ()
' 耗时代码
游戏逻辑 ()
重绘画面 ()
_画板1_绘画 (0, 0, 画板1.宽度, 画板1.高度)
' 时间计算
耗费时间 = 取启动时间 () - 启动时间
如果 (耗费时间 < 周期长度)
时钟1.时钟周期 = 周期长度 - 耗费时间
时钟1.时钟周期 = 1

子程序名返回值类型公开备 注
重绘画面  
变量名类 型静态数组备 注
循环变量整数型  
' 清屏
后台缓冲.刷子颜色 = #白色
后台缓冲.填充矩形 (0, 0, 后台缓冲.取用户区宽度 (), 后台缓冲.取用户区高度 ())
' 画背景
' 画地图
地图.重画 (后台缓冲)
' 画特殊块
计次循环首 (取数组成员数 (特殊块组), 循环变量)
特殊块组 [循环变量].重画 (后台缓冲)
计次循环尾 ()
' 画消块动画
变量循环首 (取数组成员数 (消除块动画组), 1, -1, 循环变量)
如果 (消除块动画组 [循环变量].是否已停止 ())
删除成员 (消除块动画组, 循环变量, 1)
消除块动画组 [循环变量].重画 (后台缓冲)

变量循环尾 ()
' 画选择框
选择框对象.重画 (后台缓冲)
子程序名返回值类型公开备 注
游戏逻辑  
变量名类 型静态数组备 注
循环变量1整数型  
循环变量2整数型  
循环变量3整数型  
消除节点组我的节点 0
临时节点我的节点  
临时行整数型  
临时列整数型  
当前节点索引整数型  
临时数据整数型  
' 更新特殊块数据
变量循环首 (取数组成员数 (特殊块组), 1, -1, 循环变量1)
特殊块组 [循环变量1].更新状态 ()
变量循环尾 ()
' 块消除及下落处理
如果真 (移动中 = )
临时数据 = 0
移动中 = 假
变量循环首 (取数组下标 (地图数组, 1), 1, -1, 循环变量1)
变量循环首 (取数组下标 (地图数组, 2), 1, -1, 循环变量2)
如果真 (移动中 = 取数组成员数 (消除块动画组) > 0)
' 判断是否有在播放消除动画的,如果有先不下落
返回 ()

如果真 (循环变量1 > 1)
临时数据 = 地图数组 [循环变量1 - 1] [循环变量2]

' 下落处理
' 判断条件:
' 判断当前格上边是否有格(没有超出数组边界)
' 判断当前格是否是空的
' 判断当前格上边是否是普通格或是可移动的特殊格
如果 (循环变量1 - 1 > 0 地图数组 [循环变量1] [循环变量2] = 0 且 (临时数据 > 0 临时数据 < 0 特殊块组 [-临时数据].是否禁止 ()))
移动中 =   ' 让程序在下次循环时继续判断
' 对调数据
地图数组 [循环变量1 - 1] [循环变量2] = 0
地图数组 [循环变量1] [循环变量2] = 临时数据
如果真 (选择框对象.取状态 () = 2 选择框对象.取所在行 () = 循环变量1 - 1 选择框对象.取所在列 () = 循环变量2)
' 更新选择框位置
选择框对象.置所在行 (循环变量1)
选择框对象.置所在列 (循环变量2)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))
选择框对象.置纵坐标 (地图.取单元格纵坐标 (选择框对象.取所在行 ()))

' 特殊块处理
如果真 (临时数据 < 0)
特殊块组 [-临时数据].置所在行 (循环变量1)

临时数据 = 地图数组 [循环变量1] [循环变量2]
如果真 (移动中 = 临时数据 > 0)
' 消除检查、连锁消除
临时节点.行 = 循环变量1
临时节点.列 = 循环变量2
加入成员 (消除节点组, 临时节点)
判断循环首 (取数组成员数 (消除节点组) > 0)
当前节点索引 = 取数组成员数 (消除节点组)
临时节点 = 消除节点组 [当前节点索引]
计次循环首 (4, 循环变量3)
' 判断当前块的4个方向相临块是否与当前块相同
判断 (循环变量3 = 1)
' 左
临时行 = 临时节点.行
临时列 = 临时节点.列 - 1
判断 (循环变量3 = 2)
' 上
临时行 = 临时节点.行 - 1
临时列 = 临时节点.列
判断 (循环变量3 = 3)
' 右
临时行 = 临时节点.行
临时列 = 临时节点.列 + 1
判断 (循环变量3 = 4)
' 下
临时行 = 临时节点.行 + 1
临时列 = 临时节点.列



如果 (临时行 < 1 临时行 > 取数组下标 (地图数组, 1) 临时列 < 1 临时列 > 取数组下标 (地图数组, 2))
' 越界判断
如果真 (地图数组 [临时行] [临时列] = 临时数据)
' 消块
地图数组 [临时行] [临时列] = 0
地图数组 [临时节点.行] [临时节点.列] = 0
' 以新找到的节点为基准,再寻找它周围的相同块
重定义数组 (消除节点组, 真, 取数组成员数 (消除节点组) + 1)
消除节点组 [取数组成员数 (消除节点组)].行 = 临时行
消除节点组 [取数组成员数 (消除节点组)].列 = 临时列
' 添加动画组对象
重定义数组 (消除块动画组, 真, 取数组成员数 (消除块动画组) + 1)
消除块动画组 [取数组成员数 (消除块动画组)].初始化数据 (图块动画组, 地图.取单元格横坐标 (临时列), 地图.取单元格纵坐标 (临时行), (临时数据 - 1) × #图块动画帧数 + 1, 临时数据 × #图块动画帧数, 块动画动作索引组, 1, 1)
重定义数组 (消除块动画组, 真, 取数组成员数 (消除块动画组) + 1)
消除块动画组 [取数组成员数 (消除块动画组)].初始化数据 (图块动画组, 地图.取单元格横坐标 (循环变量2), 地图.取单元格纵坐标 (循环变量1), (临时数据 - 1) × #图块动画帧数 + 1, 临时数据 × #图块动画帧数, 块动画动作索引组, 1, 1)
' 让程序在下次循环时继续判断
移动中 = 真
本次消除块数 = 本次消除块数 + 1
如果真 (选择框对象.取状态 () = 2 且 (选择框对象.取所在行 () = 临时行 选择框对象.取所在列 () = 临时列 选择框对象.取所在行 () = 循环变量1 选择框对象.取所在列 () = 循环变量2))
' 恢复选择框状态
选择框对象.置状态 (1)


如果真 (循环变量3 = 4)
' 遍历完4个方向后,删除这个节点
删除成员 (消除节点组, 当前节点索引, 1)

计次循环尾 ()
判断循环尾 ()
临时行 = 0
临时列 = 0
当前节点索引 = 0
清除数组 (消除节点组)


变量循环尾 ()
变量循环尾 ()
' 不执行按键处理
返回 ()

' 过关判断
如果真 (本次消除块数 > 0)
本次消除块数 = 本次消除块数 + 1
剩余块数 = 剩余块数 - 本次消除块数
本次消除块数 = 0
如果真 (剩余块数 ≤ 0)
欲载入关号 = 欲载入关号 + 1
如果真 (欲载入关号 > #总关数 )
欲载入关号 = 欲载入关号 - 1
' 已经是最后一关了
读地图 ()


' 按键处理
如果真 (按下键键值 ≠ 0)
判断 (按下键键值 = #上光标键 按下键键值 = #键8 )
按下键键值 = 0
如果真 (选择框对象.取状态 () = 1)
如果真 (选择框对象.取所在行 () > 1)
选择框对象.置所在行 (选择框对象.取所在行 () - 1)
选择框对象.置纵坐标 (地图.取单元格纵坐标 (选择框对象.取所在行 ()))


判断 (按下键键值 = #下光标键 按下键键值 = #键2 )
按下键键值 = 0
如果真 (选择框对象.取状态 () = 1)
如果真 (选择框对象.取所在行 () < 取数组下标 (地图数组, 1))
选择框对象.置所在行 (选择框对象.取所在行 () + 1)
选择框对象.置纵坐标 (地图.取单元格纵坐标 (选择框对象.取所在行 ()))


判断 (按下键键值 = #左光标键 按下键键值 = #键4 )
按下键键值 = 0
如果 (选择框对象.取状态 () = 1)
如果真 (选择框对象.取所在列 () > 1)
选择框对象.置所在列 (选择框对象.取所在列 () - 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))

如果真 (选择框对象.取状态 () = 2)
如果真 (选择框对象.取所在列 () > 1 地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 () - 1] = 0)
' 移动块,即交换两个成员的数据
地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 () - 1] = 地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()]
地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()] = 0
选择框对象.置所在列 (选择框对象.取所在列 () - 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))
如果真 (地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()] < 0)
特殊块组 [-地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()]].置所在列 (选择框对象.取所在列 ())
移动中 = 真



判断 (按下键键值 = #右光标键 按下键键值 = #键6 )
按下键键值 = 0
如果 (选择框对象.取状态 () = 1)
如果真 (选择框对象.取所在列 () < 取数组下标 (地图数组, 2))
选择框对象.置所在列 (选择框对象.取所在列 () + 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))

如果真 (选择框对象.取状态 () = 2)
如果真 (选择框对象.取所在列 () < 取数组下标 (地图数组, 2) 地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 () + 1] = 0)
地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 () + 1] = 地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()]
地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()] = 0
选择框对象.置所在列 (选择框对象.取所在列 () + 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))
如果真 (地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()] < 0)
特殊块组 [-地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()]].置所在列 (选择框对象.取所在列 ())
移动中 = 真



判断 ( (按下键键值 = #回车键 按下键键值 = #键5 ) 移动中 = )
按下键键值 = 0
如果 (选择框对象.取状态 () = 1 地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()] ≠ 0)
如果 (地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()] > 0)
选择框对象.置状态 (2)
如果真 (特殊块组 [-地图数组 [选择框对象.取所在行 ()] [选择框对象.取所在列 ()]].是否禁止 ())
选择框对象.置状态 (2)


如果真 (选择框对象.取状态 () = 2)
选择框对象.置状态 (1)






子程序名返回值类型公开备 注
__启动窗口_按下某键逻辑型 
参数名类 型参考可空数组备 注
键代码整数型   
功能键状态整数型   
如果真 (按下键键值 = 0)
按下键键值 = 键代码

子程序名返回值类型公开备 注
__启动窗口_放开某键逻辑型 
参数名类 型参考可空数组备 注
键代码整数型   
功能键状态整数型   
如果真 (键代码 = 按下键键值)
按下键键值 = 0

子程序名返回值类型公开备 注
_画板1_绘画  
参数名类 型参考可空数组备 注
重画区左边整数型   
重画区上边整数型   
重画区右边整数型   
重画区下边整数型   
后台缓冲.复制 (重画区左边, 重画区上边, 重画区右边 - 重画区左边, 重画区下边 - 重画区上边, 画板1, 重画区左边, 重画区上边, #拷贝 )
子程序名返回值类型公开备 注
__启动窗口_被激活  
_启动窗口.获取焦点 ()
子程序名返回值类型公开备 注
_重新开始_被选择  
读地图 ()
子程序名返回值类型公开备 注
_跳到下一关_被选择  
欲载入关号 = 欲载入关号 + 1
如果真 (欲载入关号 > #总关数 )
欲载入关号 = 欲载入关号 - 1
读地图 ()
子程序名返回值类型公开备 注
_跳到指定关_被选择  
变量名类 型静态数组备 注
目标关数整数型  
如果真 (输入框 (“请输入欲跳到的目标关数”, “跳关”, “”, 目标关数, #输入整数 ))
如果真 (目标关数 ≤ #总关数 )
欲载入关号 = 目标关数
读地图 ()


子程序名返回值类型公开备 注
_退出_被选择  
_启动窗口.销毁 ()
子程序名返回值类型公开备 注
_关于_被选择  
载入 (关于窗口, , )
子程序名返回值类型公开备 注
_游戏帮助_被选择  
运行 (“Notepad ” + 运行目录 + #帮助文件名, 假, #普通激活 )
回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:02 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
特殊块类  作为所有特殊块的父类,提供了特殊块的通用接口
变量名类 型数组备 注
可视逻辑型该块是否可视
禁止逻辑型该块是否禁止操作
所在行整数型在地图中的行
所在列整数型在地图中的列
横坐标整数型相对于容器左上角的横坐标
纵坐标整数型相对于容器左上角的纵坐标
当前图片索引整数型该块当前重画时对应的图片索引
所属图片号组整数型0该块显示时可用的图片号组
计数器整数型  
动作索引组整数型0指定根据本数组重画时所用图片的顺序
块类型整数型标识本块的类型

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
当前图片索引 = 1
可视 = 真
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
重画
参数名类 型参考可空数组备 注
绘画目标画板   
如果真 (可视 = )
绘画目标.画图片 (所属图片号组 [动作索引组 [当前图片索引]], 横坐标, 纵坐标, , , - #品红 )
如果真 (取数组成员数 (所属图片号组) > 1)
计数器 = 计数器 + 1
如果真 (计数器 % 10 = 0)
当前图片索引 = 当前图片索引 + 1
如果真 (当前图片索引 > 取数组成员数 (动作索引组))
当前图片索引 = 1




子程序名返回值类型公开备 注
取块类型整数型
返回 (块类型)
子程序名返回值类型公开备 注
置块类型
参数名类 型参考可空数组备 注
新类型整数型   
块类型 = 新类型
子程序名返回值类型公开备 注
初始化数据  
参数名类 型参考可空数组备 注
初始图片号组整数型  
初始横坐标整数型   
初始纵坐标整数型   
初始行数整数型   
初始列数整数型   
初始动作索引组整数型  
初始块类型整数型   
所在行 = 初始行数
所在列 = 初始列数
动作索引组 = 初始动作索引组
横坐标 = 初始横坐标
纵坐标 = 初始纵坐标
所属图片号组 = 初始图片号组
块类型 = 初始块类型
子程序名返回值类型公开备 注
置数据
参数名类 型参考可空数组备 注
_横坐标整数型   
_纵坐标整数型   
_所在行整数型   
_所在列整数型   

子程序名返回值类型公开备 注
更新状态

子程序名返回值类型公开备 注
是否禁止逻辑型
返回 (禁止)
子程序名返回值类型公开备 注
设置禁止
参数名类 型参考可空数组备 注
新值逻辑型   
禁止 = 新值
子程序名返回值类型公开备 注
取所在列整数型
返回 (所在列)
子程序名返回值类型公开备 注
置所在列
参数名类 型参考可空数组备 注
新列号整数型   
所在列 = 新列号
更新横坐标 ()
子程序名返回值类型公开备 注
取所在行整数型
返回 (所在行)
子程序名返回值类型公开备 注
置所在行
参数名类 型参考可空数组备 注
新行号整数型   
所在行 = 新行号
更新纵坐标 ()
子程序名返回值类型公开备 注
是否可视逻辑型
返回 (可视)
子程序名返回值类型公开备 注
置可视
参数名类 型参考可空数组备 注
新值逻辑型   
可视 = 新值
子程序名返回值类型公开备 注
更新横坐标
横坐标 = 地图.取单元格横坐标 (所在列)
子程序名返回值类型公开备 注
更新纵坐标
纵坐标 = 地图.取单元格纵坐标 (所在行)
回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:15 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
石头类, 特殊块类, , 实现了对石头的抽象,块类型为-2   
变量名类 型数组备 注
动作索引组整数型1 

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
动作索引组 [1] = 1
设置禁止 ()
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
置数据
参数名类 型参考可空数组备 注
_横坐标整数型   
_纵坐标整数型   
_所在行整数型   
_所在列整数型   
初始化数据 (图片号_石头, _横坐标, _纵坐标, _所在行, _所在列, 动作索引组, -2)
子程序名返回值类型公开备 注
更新状态

回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:22 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
电梯_水平类, 特殊块类, , 实现了对水平移动电梯的抽象,块类型为-4   
变量名类 型数组备 注
动作索引组整数型1 
移动速度整数型每次移动的距离,单位为块宽
累计移动长度整数型记录当前某方向的累计激动长度
计数器整数型  

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
动作索引组 [1] = 1
移动速度 = 1
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
置数据
参数名类 型参考可空数组备 注
_横坐标整数型   
_纵坐标整数型   
_所在行整数型   
_所在列整数型   
初始化数据 (图片号_电梯, _横坐标, _纵坐标, _所在行, _所在列, 动作索引组, -4)
子程序名返回值类型公开备 注
更新状态
变量名类 型静态数组备 注
临时数据整数型  
临时索引整数型  
计数器 = 计数器 + 1
如果真 (计数器 % 10 ≠ 0)  ' 10个周期执行一次
返回 ()

如果 (移动速度 < 0)
' 向左
如果 (取所在列 () > 0 地图数组 [取所在行 ()] [取所在列 () - 1] = 0)
' 左边没块的情况
累计移动长度 = 累计移动长度 + 移动速度
如果真 (累计移动长度 ÷ #图块宽度 < 0)
如果真 (取所在行 () > 1)
临时数据 = 地图数组 [取所在行 () - 1] [取所在列 () - 1]
如果真 (临时数据 = 0)
' 移动块
临时数据 = 地图数组 [取所在行 () - 1] [取所在列 ()]
如果真 (临时数据 > 0 临时数据 < 0 特殊块组 [-临时数据].是否禁止 ())
' 交换数值
地图数组 [取所在行 () - 1] [取所在列 () - 1] = 临时数据
地图数组 [取所在行 () - 1] [取所在列 ()] = 0
如果真 (临时数据 < 0)
' 特殊块
' 更新新位置
特殊块组 [-临时数据].置所在列 (取所在列 () - 1)

' 移动选择框
如果真 (选择框对象.取所在列 () = 取所在列 () 选择框对象.取所在行 () = 取所在行 () - 1 选择框对象.取状态 () = 2)
选择框对象.置所在列 (选择框对象.取所在列 () - 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))
' 打开消块判断
移动中 = 真


' 移动电梯
地图数组 [取所在行 ()] [取所在列 () - 1] = 地图数组 [取所在行 ()] [取所在列 ()]
地图数组 [取所在行 ()] [取所在列 ()] = 0
置所在列 (取所在列 () - 1)
累计移动长度 = 0
' 左边有块
' 换个方向
移动速度 = -移动速度

如果真 (移动速度 > 0)
' 向右
如果 (取所在列 () < 取数组下标 (地图数组, 2) 地图数组 [取所在行 ()] [取所在列 () + 1] = 0)
' 右边没块的情况
累计移动长度 = 累计移动长度 + 移动速度
如果真 (累计移动长度 ÷ #图块宽度 > 0)
' 移动电梯上的块
如果真 (取所在行 () > 0)
临时数据 = 地图数组 [取所在行 () - 1] [取所在列 () + 1]
如果真 (临时数据 = 0)
' 移动块
临时数据 = 地图数组 [取所在行 () - 1] [取所在列 ()]
如果真 (临时数据 > 0 临时数据 < 0 特殊块组 [-临时数据].是否禁止 ())
' 交换数值
地图数组 [取所在行 () - 1] [取所在列 () + 1] = 临时数据
地图数组 [取所在行 () - 1] [取所在列 ()] = 0
如果真 (临时数据 < 0)
' 特殊块
' 更新新位置
特殊块组 [-临时数据].置所在列 (取所在列 () + 1)

' 移动选择框
如果真 (选择框对象.取所在列 () = 取所在列 () 选择框对象.取所在行 () = 取所在行 () - 1 选择框对象.取状态 () = 2)
选择框对象.置所在列 (选择框对象.取所在列 () + 1)
选择框对象.置横坐标 (地图.取单元格横坐标 (选择框对象.取所在列 ()))
' 打开消块判断
移动中 = 真


' 移动电梯
地图数组 [取所在行 ()] [取所在列 () + 1] = 地图数组 [取所在行 ()] [取所在列 ()]
地图数组 [取所在行 ()] [取所在列 ()] = 0
置所在列 (取所在列 () + 1)
累计移动长度 = 0

' 右边有块
' 换个方向
移动速度 = -移动速度


回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:29 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
电梯_垂直类, 特殊块类, , 实现了对水平移动电梯的抽象,块类型为-3   
变量名类 型数组备 注
动作索引组整数型1 
移动速度整数型每次移动的距离,单位为块高
累计移动长度整数型记录当前某方向的累计激动长度
计数器整数型  

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
动作索引组 [1] = 1
移动速度 = 1
累计移动长度 = 0
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
置数据
参数名类 型参考可空数组备 注
_横坐标整数型   
_纵坐标整数型   
_所在行整数型   
_所在列整数型   
初始化数据 (图片号_电梯, _横坐标, _纵坐标, _所在行, _所在列, 动作索引组, -3)
子程序名返回值类型公开备 注
更新状态
变量名类 型静态数组备 注
临时行整数型  
临时数据整数型  
循环变量整数型  
上面块数据整数型  
计数器 = 计数器 + 1
如果真 (计数器 % 10 ≠ 0)
返回 ()

如果 (移动速度 < 0)
' 向上
如果 (取所在行 () > 1 地图数组 [取所在行 () - 1] [取所在列 ()] = 0)
' 上边没块的情况
累计移动长度 = 累计移动长度 + 移动速度
如果真 (累计移动长度 ÷ #图块高度 < 0)
' 移动电梯
地图数组 [取所在行 () - 1] [取所在列 ()] = 地图数组 [取所在行 ()] [取所在列 ()]
地图数组 [取所在行 ()] [取所在列 ()] = 0
置所在行 (取所在行 () - 1)
累计移动长度 = 0

' 上边有块的情况
' 判断顶层是否有空
临时行 = 取所在行 () - 1
如果真 (临时行 < 1)
移动速度 = -移动速度
判断循环首 (临时行 > 0)
临时数据 = 地图数组 [临时行] [取所在列 ()]
判断 (临时数据 > 0)
' 普通块,进入下一次循环判断
临时行 = 临时行 - 1
到循环尾 ()
判断 (临时数据 = 0)
' 有空
' 带块上移
累计移动长度 = 累计移动长度 + 移动速度
如果真 (累计移动长度 ÷ #图块高度 < 0)
变量循环首 (临时行, 取所在行 () - 1, 1, 循环变量)
地图数组 [循环变量] [取所在列 ()] = 地图数组 [循环变量 + 1] [取所在列 ()]
地图数组 [循环变量 + 1] [取所在列 ()] = 0
如果真 (选择框对象.取所在行 () = 循环变量 选择框对象.取所在列 () = 取所在列 () 选择框对象.取状态 () = 2)
' 移动选择框
选择框对象.置所在行 (选择框对象.取所在行 () - 1)
选择框对象.置纵坐标 (地图.取单元格纵坐标 (选择框对象.取所在行 ()))

变量循环尾 ()
' 移动电梯
置所在行 (取所在行 () - 1)
移动中 = 真
累计移动长度 = 0
跳出循环 ()
判断 (特殊块组 [-临时数据].取块类型 () = -2)
' 是石头
如果 (临时行 > 1)
上面块数据 = 地图数组 [临时行 - 1] [取所在列 ()]
' 判断石头上面是否有块
如果 (上面块数据 ≠ 0)
' 有块则不动,改变移动方向
移动速度 = -移动速度
' 没有则块带石头上移
累计移动长度 = 累计移动长度 + 移动速度
如果真 (累计移动长度 ÷ #图块高度 < 0)
变量循环首 (临时行, 取所在行 (), 1, 循环变量)
' 调换数据
上面块数据 = 地图数组 [循环变量] [取所在列 ()]
地图数组 [循环变量 - 1] [取所在列 ()] = 上面块数据
地图数组 [循环变量] [取所在列 ()] = 0
如果真 (上面块数据 < 0)
' 更新特殊块位置
特殊块组 [-上面块数据].置所在行 (循环变量 - 1)

如果真 (选择框对象.取所在行 () = 循环变量 选择框对象.取所在列 () = 取所在列 () 选择框对象.取状态 () = 2)
' 移动选择框
选择框对象.置所在行 (选择框对象.取所在行 () - 1)
选择框对象.置纵坐标 (地图.取单元格纵坐标 (选择框对象.取所在行 ()))

变量循环尾 ()
累计移动长度 = 0


累计移动长度 = 累计移动长度 + 移动速度
跳出循环 ()
' 其他特殊块
移动速度 = -移动速度
累计移动长度 = 0
跳出循环 ()
临时行 = 临时行 - 1
判断循环尾 ()

如果真 (移动速度 > 0)
' 向下
如果 (取所在行 () < 取数组下标 (地图数组, 1) 地图数组 [取所在行 () + 1] [取所在列 ()] = 0)
' 下边没块的情况
累计移动长度 = 累计移动长度 + 移动速度
如果真 (累计移动长度 ÷ #图块高度 > 0)
地图数组 [取所在行 () + 1] [取所在列 ()] = 地图数组 [取所在行 ()] [取所在列 ()]
地图数组 [取所在行 ()] [取所在列 ()] = 0
置所在行 (取所在行 () + 1)
移动中 = 真
累计移动长度 = 0

' 有块
' 改变方向
移动速度 = -移动速度


回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:35 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
火焰类, 特殊块类, , 实现了对火焰的抽象,块类型为-6   
变量名类 型数组备 注
动作索引组整数型2 

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
动作索引组 [1] = 1
动作索引组 [2] = 2
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
置数据
参数名类 型参考可空数组备 注
_横坐标整数型   
_纵坐标整数型   
_所在行整数型   
_所在列整数型   
初始化数据 (图片号_火焰, _横坐标, _纵坐标, _所在行, _所在列, 动作索引组, -6)
子程序名返回值类型公开备 注
更新状态
变量名类 型静态数组备 注
临时数据整数型  
如果真 (取所在行 () > 1)
临时数据 = 地图数组 [取所在行 () - 1] [取所在列 ()]
如果真 (临时数据 ≠ 0)
如果 (临时数据 > 0)
' 普通块,游戏结束
游戏结束 = 真
地图数组 [取所在行 () - 1] [取所在列 ()] = 0
如果真 (特殊块组 [-临时数据].取块类型 () = -2)
' 石头
地图数组 [取所在行 () - 1] [取所在列 ()] = 0
特殊块组 [-临时数据].置可视 ()

' 暂停 ()
如果真 (选择框对象.取所在行 () = 取所在行 () - 1 选择框对象.取所在列 () = 取所在列 () 选择框对象.取状态 () = 2)
选择框对象.置状态 (1)


回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:41 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
墙类, 特殊块类, , 实现了墙的抽象   
变量名类 型数组备 注
动作索引组整数型1 

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
动作索引组 [1] = 1
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
置数据
参数名类 型参考可空数组备 注
_横坐标整数型   
_纵坐标整数型   
_所在行整数型   
_所在列整数型   
初始化数据 (图片号_墙, _横坐标, _纵坐标, _所在行, _所在列, 动作索引组, -1)
子程序名返回值类型公开备 注
更新状态

回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:48 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
选择框类  实现了选择框的抽象
变量名类 型数组备 注
横坐标整数型相对于对照物的横向坐标,相当于所在格的左上角横坐标
纵坐标整数型相对于对照物的纵向坐标,相当于所在格的左上角纵坐标
状态整数型当前的状态。1为正常,2为选中
所在行整数型在地图数组中的所在行
所在列整数型在地图数组中的所在列
横向偏移量整数型由于选择框的尺寸与块的尺寸不同,所以在画出时需要根据
纵向偏移量整数型偏移量计算实际画出的位置
实际画出横坐标整数型由横坐标和横向偏移量计算出的实际画出位置横向坐标
实际画出纵坐标整数型由纵坐标和纵向偏移量计算出的实际画出位置纵向坐标

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
横向偏移量 = 9
纵向偏移量 = 3
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
初始化数据
参数名类 型参考可空数组备 注
_横坐标整数型  
_纵坐标整数型  
_所在行整数型  
_所在列整数型  
如果真 (是否为空 (_横坐标))
横坐标 = _横坐标
实际画出横坐标 = 横坐标 - 横向偏移量
如果真 (是否为空 (_纵坐标))
纵坐标 = _纵坐标
实际画出纵坐标 = 纵坐标 - 纵向偏移量
如果真 (是否为空 (_所在行))
所在行 = _所在行
如果真 (是否为空 (_所在列))
所在列 = _所在列

子程序名返回值类型公开备 注
重画
参数名类 型参考可空数组备 注
绘画目标画板   
' 根据当前状态重画选择框
绘画目标.画图片 (图片号_选择框 [状态], 实际画出横坐标, 实际画出纵坐标, , , - #蓝色 )
子程序名返回值类型公开备 注
计算偏移值  
实际画出横坐标 = 横坐标 - 横向偏移量
实际画出纵坐标 = 纵坐标 - 纵向偏移量
子程序名返回值类型公开备 注
取状态整数型
返回 (状态)
子程序名返回值类型公开备 注
置状态
参数名类 型参考可空数组备 注
新状态整数型   
如果真 (状态 ≠ 新状态)
状态 = 新状态

子程序名返回值类型公开备 注
取所在列整数型
返回 (所在列)
子程序名返回值类型公开备 注
置所在列
参数名类 型参考可空数组备 注
新列号整数型   
所在列 = 新列号
子程序名返回值类型公开备 注
取所在行整数型
返回 (所在行)
子程序名返回值类型公开备 注
置所在行
参数名类 型参考可空数组备 注
新行号整数型   
所在行 = 新行号
子程序名返回值类型公开备 注
取横坐标整数型
返回 (横坐标)
子程序名返回值类型公开备 注
置横坐标
参数名类 型参考可空数组备 注
新横坐标整数型   
横坐标 = 新横坐标
计算偏移值 ()
子程序名返回值类型公开备 注
取纵坐标整数型
返回 (纵坐标)
子程序名返回值类型公开备 注
置纵坐标
参数名类 型参考可空数组备 注
新纵坐标整数型   
纵坐标 = 新纵坐标
计算偏移值 ()
子程序名返回值类型公开备 注
取实际画出横坐标整数型
返回 (实际画出横坐标)
子程序名返回值类型公开备 注
取实际画出纵坐标整数型
返回 (实际画出纵坐标)
回复

使用道具 举报

3188

主题

7949

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19393
 楼主| 发表于 2017-6-6 09:00:56 | 显示全部楼层
  
窗口程序集名保 留  保 留备 注
精灵类  用于播放连续的画面,实现动画效果
变量名类 型数组备 注
图片号组整数型0所有可用的图片号组
横坐标整数型对应画出的横向位置
纵坐标整数型对应画出的纵向位置
动作索引组整数型0指定根据本数组在重画时画出图片的索引顺序
当前图片索引整数型当前画出的图片对应图片号组中的索引号
帧率整数型指定调用几次重画,切换到下一帧
计数器整数型  
停止逻辑型当前精灵是否已停止播放
循环次数整数型指定播放的次数,如为-1则循环播放

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
当前图片索引 = 1
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
重画
参数名类 型参考可空数组备 注
绘画目标画板   
绘画目标.画图片 (图片号组 [动作索引组 [当前图片索引]], 横坐标, 纵坐标, , , - #品红 )
如果真 (停止 = )
计数器 = 计数器 + 1
如果真 (计数器 % 帧率 = 0)
当前图片索引 = 当前图片索引 + 1
如果真 (当前图片索引 > 取数组成员数 (图片号组))
当前图片索引 = 1
如果真 (循环次数 > 0)
循环次数 = 循环次数 - 1
如果真 (循环次数 = 0)
停止 = 真




子程序名返回值类型公开备 注
初始化数据
参数名类 型参考可空数组备 注
_图片号组整数型  
_横坐标整数型   
_纵坐标整数型   
_起始图片索引整数型   
_结束图片索引整数型   
_动作索引组整数型  
_帧率整数型   
_循环次数整数型   
变量名类 型静态数组备 注
循环变量整数型  
横坐标 = _横坐标
纵坐标 = _纵坐标
动作索引组 = _动作索引组
帧率 = _帧率
循环次数 = _循环次数
重定义数组 (图片号组, 假, _结束图片索引 - _起始图片索引 + 1)
计次循环首 (取数组成员数 (图片号组), 循环变量)
图片号组 [循环变量] = _图片号组 [_起始图片索引 + 循环变量 - 1]
计次循环尾 ()
子程序名返回值类型公开备 注
取横坐标整数型
返回 (横坐标)
子程序名返回值类型公开备 注
置横坐标
参数名类 型参考可空数组备 注
新横坐标整数型   
横坐标 = 新横坐标
子程序名返回值类型公开备 注
取纵坐标整数型
返回 (纵坐标)
子程序名返回值类型公开备 注
置纵坐标
参数名类 型参考可空数组备 注
新纵坐标整数型   
纵坐标 = 新纵坐标
子程序名返回值类型公开备 注
是否已停止逻辑型
返回 (停止)
子程序名返回值类型公开备 注
置停止
参数名类 型参考可空数组备 注
新状态逻辑型   
停止 = 新状态
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|易源码论坛 ( 123456  

GMT+8, 2018-1-20 01:39 , Processed in 0.215628 second(s), 11 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表