|
分享源码
界面截图: |
- |
是否带模块: |
- |
备注说明: |
- |
尽情下载
.版本 2
.支持库 EdirectX
.支持库 wmp9
.程序集 窗口程序集1
.程序集变量 主屏幕, 屏幕
.程序集变量 缓冲页面, 页面
.程序集变量 主页面, 页面
.程序集变量 数据页面, 页面, , "0"
.程序集变量 游戏进行中, 逻辑型
.程序集变量 Unit, 单位, , "200"
.程序集变量 生命, 整数型
.程序集变量 StartPoint, 整数型, , "7"
.程序集变量 Key, 整数型, , "7"
.程序集变量 Keyed, 逻辑型, , "7"
.程序集变量 Hit, 整数型
.程序集变量 统计数据, 统计数据
.程序集变量 音符队列, 队列, , "0"
.程序集变量 游戏循环数, 整数型
.程序集变量 队列位置, 整数型
.程序集变量 暂停, 逻辑型
.程序集变量 当前MP3, 文本型
.程序集变量 Free, 逻辑型
.程序集变量 Wave, WAVE声音
.子程序 __启动窗口_创建完毕
_启动窗口.可视 = 真
置随机数种子 ()
.如果 (DirexcX初始化 ())
.否则
信息框 (“DirectX初始化失败”, 16, “错误”)
返回 ()
.如果结束
游戏速度 = 5
音符数量 = 8
DirexcX初始化 ()
.子程序 游戏主循环
.判断循环首 (游戏进行中)
_启动窗口.标题 = “劲乐团 Playing(” + 当前MP3 + “)”
.如果真 (游戏循环数 > 100 且 取文本左边 (播放器.状态, 4) ≠ “正在” 且 取单位数 () = 0)
游戏进行中 = 假
开始游戏.标题 = “开始游戏”
_启动窗口.标题 = “过关”
设置难度.禁止 = 假
暂停游戏.禁止 = 真
.如果真结束
.如果真 (取反 (暂停) 且 取反 (Free))
游戏处理 ()
游戏渲染 ()
.如果真结束
延时 (20)
处理事件 ()
游戏循环数 = 游戏循环数 + 1
.判断循环尾 ()
.子程序 游戏处理
.局部变量 单位号, 整数型
.局部变量 随机数, 整数型
.如果真 (取文本左边 (播放器.状态, 4) = “正在”)
.如果真 (音符队列 [队列位置].出现时间 = 游戏循环数)
单位号 = 取未使用单位 ()
随机数 = 音符队列 [队列位置].值
' 随机数 = 取随机数 (1, 7)
Unit [单位号].是否已经使用 = 真
Unit [单位号].类型 = 1
Unit [单位号].坐标.x = StartPoint [随机数]
Unit [单位号].坐标.y = 0
Unit [单位号].移动速度 = 游戏速度
Unit [单位号].消灭键 = Key [随机数]
.判断开始 (随机数 = 1 或 随机数 = 3 或 随机数 = 5 或 随机数 = 7)
Unit [单位号].使用页面 = 2
.默认
.判断结束
.判断开始 (随机数 = 2 或 随机数 = 6)
Unit [单位号].使用页面 = 4
.默认
.判断结束
.判断开始 (随机数 = 4)
Unit [单位号].使用页面 = 3
.默认
.判断结束
队列位置 = 队列位置 + 1
.如果真结束
.如果真结束
单位移动 ()
.子程序 游戏渲染
.局部变量 j, 整数型
.局部变量 生命文本, 文本型
.局部变量 页面大小, 整数型
缓冲页面.填充页面 (0)
' 画单位
.判断开始 (Keyed [1])
数据页面 [5].块复制 (缓冲页面, StartPoint [1], 120, )
.默认
.判断结束
.判断开始 (Keyed [7])
数据页面 [5].块复制 (缓冲页面, StartPoint [7], 120, )
.默认
.判断结束
.判断开始 (Keyed [2])
数据页面 [6].块复制 (缓冲页面, StartPoint [2], 120, )
.默认
.判断结束
.判断开始 (Keyed [6])
数据页面 [6].块复制 (缓冲页面, StartPoint [6], 120, )
.默认
.判断结束
.判断开始 (Keyed [3])
数据页面 [5].块复制 (缓冲页面, StartPoint [3], 120, )
.默认
.判断结束
.判断开始 (Keyed [5])
数据页面 [5].块复制 (缓冲页面, StartPoint [5], 120, )
.默认
.判断结束
.判断开始 (Keyed [4])
数据页面 [7].块复制 (缓冲页面, StartPoint [4], 120, )
.默认
.判断结束
.计次循环首 (200, j)
.如果真 (Unit [j].是否已经使用)
.判断开始 (Unit [j].类型 = 1)
数据页面 [Unit [j].使用页面].透空块复制 (缓冲页面, Unit [j].坐标.x, Unit [j].坐标.y, )
.默认
.判断结束
.判断开始 (Unit [j].类型 = 2)
数据页面 [Unit [j].变量 [1]].透空块复制 (缓冲页面, Unit [j].坐标.x, Unit [j].坐标.y, )
Unit [j].变量 [2] = Unit [j].变量 [2] - 1
.如果真 (Unit [j].变量 [2] = 0)
Unit [j].变量 [2] = 5
Unit [j].变量 [1] = Unit [j].变量 [1] + 1
.如果真 (Unit [j].变量 [1] > 13)
销毁单位 (j)
.如果真结束
.如果真结束
.默认
.判断结束
.如果真结束
.计次循环尾 ()
缓冲页面.填充矩形 (0, 0, 生命 × 0.75, 10, #灰绿)
' 缓冲页面.写文字 (10, 465, #白色, 生命文本)
' 画键盘
.如果真 (Hit > 1)
缓冲页面.写文字 (60, 150, 取随机数 (25000, 65535), “Combo ” + 到文本 (Hit))
.如果真结束
数据页面 [1].块复制 (缓冲页面, 0, 427, )
.如果真 (取反 (游戏进行中))
缓冲页面.写文字 (45, 200, #嫩黄, “G A M E O V E R”)
缓冲页面.写文字 (45, 215, #嫩黄, “最终得分:” + 到文本 (统计数据.得分))
缓冲页面.写文字 (45, 230, #嫩黄, “击中:” + 到文本 (统计数据.击中))
缓冲页面.写文字 (45, 245, #嫩黄, “击空:” + 到文本 (统计数据.击空))
缓冲页面.写文字 (45, 260, #嫩黄, “MISS:” + 到文本 (统计数据.Miss))
缓冲页面.写文字 (45, 275, #嫩黄, “Max Hit:” + 到文本 (统计数据.最大连击))
.如果真结束
缓冲页面.块复制 (主页面, 0, 0, )
主屏幕.交换页面 (假, 真, 假)
.子程序 游戏设置
游戏速度 = 到数值 (窗口1.编辑框1.内容)
音符数量 = 到数值 (窗口1.编辑框2.内容)
.子程序 单位移动
.局部变量 j, 整数型
.计次循环首 (200, j)
.如果真 (Unit [j].是否已经使用 且 Unit [j].类型 = 1)
.如果 (Unit [j].坐标.y > 430)
销毁单位 (j)
生命 = 生命 - 1
Hit = 0
统计数据.Miss = 统计数据.Miss + 1
.如果真 (生命 = 0)
设置难度.禁止 = 假
暂停游戏.禁止 = 真
游戏进行中 = 假
开始游戏.标题 = “开始游戏”
跳出循环 ()
.如果真结束
.否则
Unit [j].坐标.y = Unit [j].坐标.y + Unit [j].移动速度
.如果结束
.如果真结束
.计次循环尾 ()
.子程序 取未使用单位, 整数型
.局部变量 j, 整数型
.计次循环首 (200, j)
.如果真 (取反 (Unit [j].是否已经使用))
返回 (j)
.如果真结束
.计次循环尾 ()
返回 (0)
.子程序 销毁单位
.参数 单位号, 整数型
.局部变量 j, 整数型
Unit [单位号].坐标.x = 0
Unit [单位号].坐标.y = 0
Unit [单位号].使用页面 = 0
Unit [单位号].是否已经使用 = 假
Unit [单位号].消灭键 = 0
Unit [单位号].类型 = 0
.计次循环首 (10, j)
Unit [单位号].变量 [j] = 0
.计次循环尾 ()
.子程序 __启动窗口_按下某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.局部变量 j, 整数型
.局部变量 j1, 整数型
.局部变量 单位号, 整数型
.计次循环首 (7, j)
.如果真 (键代码 = Key [j])
Wave.播放 (1)
.计次循环首 (200, j1)
.如果真 (Unit [201 - j1].消灭键 = 键代码 且 Unit [201 - j1].坐标.y > 365 且 Keyed [j] = 假)
' 暂停 ()
Hit = Hit + 1
.如果真 (Hit > 统计数据.最大连击)
统计数据.最大连击 = Hit
.如果真结束
统计数据.得分 = 统计数据.得分 + Hit × 10
统计数据.击中 = 统计数据.击中 + 1
单位号 = 取未使用单位 ()
Unit [单位号].是否已经使用 = 真
Unit [单位号].类型 = 2
Unit [单位号].坐标.x = Unit [201 - j1].坐标.x
Unit [单位号].坐标.y = 395
Unit [单位号].移动速度 = 0
Unit [单位号].消灭键 = 0
Unit [单位号].变量 [1] = 8
Unit [单位号].变量 [2] = 5
销毁单位 (201 - j1)
Keyed [j] = 真
返回 ()
.如果真结束
.计次循环尾 ()
Keyed [j] = 真
统计数据.击空 = 统计数据.击空 + 1
.如果真结束
.计次循环尾 ()
.子程序 载入MP3, 逻辑型
.局部变量 Data, 字节集
.局部变量 j, 整数型
.局部变量 temp, 队列
.局部变量 t, 整数型
通用对话框1.文件名 = “”
通用对话框1.打开 ()
.如果真 (通用对话框1.文件名 = “”)
返回 (假)
.如果真结束
_启动窗口.标题 = “Loading . . .”
清除数组 (音符队列)
Data = 读入文件 (通用对话框1.文件名)
.计次循环首 (取字节集长度 (Data), j)
.如果真 (到数值 (Data [j]) < 音符数量 且 到数值 (Data [j]) > 0)
t = Data [j] % 7
.如果真 (t = 0)
t = 7
.如果真结束
temp.值 = t
temp.出现时间 = j
输出调试文本 (temp.出现时间)
加入成员 (音符队列, temp)
.如果真结束
.计次循环尾 ()
' 输出调试文本 (取数组成员数 (音符队列))
当前MP3 = 通用对话框1.文件名
返回 (真)
.子程序 游戏初始化
.局部变量 j, 整数型
游戏进行中 = 真
.计次循环首 (200, j)
销毁单位 (j)
.计次循环尾 ()
StartPoint [1] = 1
StartPoint [2] = 30
StartPoint [3] = 52
StartPoint [4] = 82
StartPoint [5] = 112
StartPoint [6] = 140
StartPoint [7] = 162
Key [1] = #S键
Key [2] = #D键
Key [3] = #F键
Key [4] = #空格键
Key [5] = #J键
Key [6] = #K键
Key [7] = #L键
统计数据.得分 = 0
统计数据.击中 = 0
统计数据.击空 = 0
统计数据.最大连击 = 0
生命 = 100
队列位置 = 1
游戏循环数 = 0
暂停 = 假
暂停游戏.标题 = “暂停游戏”
播放器.地址 = 当前MP3
游戏主循环 ()
.子程序 DirexcX初始化, 逻辑型
.局部变量 临时页面, 页面
.局部变量 资源列表, 文本型, , "0"
.局部变量 j, 整数型
.局部变量 CDHwnd, 声音
.如果 (主屏幕.创建窗口模式 (_启动窗口.取窗口句柄 (), 192, 480))
主屏幕.淡入到黑色 (10)
主屏幕.交换页面 (假, 真, 假)
主页面 = 主屏幕.取后台页面 ()
缓冲页面.建空页面 (主屏幕, 192, 480, )
资源列表 = 分割文本 (到文本 (读入文件 (“resfile.txt”)), #换行符, )
.计次循环首 (取数组成员数 (资源列表), j)
临时页面.建位图页面 (主屏幕, 资源列表 [j], )
临时页面.置关键色 (0)
加入成员 (数据页面, 临时页面)
.计次循环尾 ()
CDHwnd.初始化 (_启动窗口.取窗口句柄 (), )
输出调试文本 (Wave.载入Wave文件 (CDHwnd, “Sound.wav”, ))
.否则
返回 (假)
.如果结束
返回 (真)
.子程序 __启动窗口_放开某键, 逻辑型
.参数 键代码, 整数型
.参数 功能键状态, 整数型
.局部变量 j, 整数型
.计次循环首 (7, j)
.如果真 (键代码 = Key [j])
Keyed [j] = 假
.如果真结束
.计次循环尾 ()
.子程序 __启动窗口_失去焦点
.局部变量 j, 整数型
Free = 真
.计次循环首 (7, j)
Keyed [j] = 假
.计次循环尾 ()
.子程序 取单位数, 整数型
.局部变量 j, 整数型
.局部变量 a, 整数型
.计次循环首 (200, j)
.如果真 (Unit [j].是否已经使用)
a = a + 1
.如果真结束
.计次循环尾 ()
返回 (a)
.子程序 _开始游戏_被选择
.如果真 (游戏进行中)
开始游戏.标题 = “开始游戏”
当前MP3 = “”
播放器.地址 = “”
游戏进行中 = 假
设置难度.禁止 = 假
暂停游戏.禁止 = 真
返回 ()
.如果真结束
.如果真 (载入MP3 ())
开始游戏.标题 = “结束游戏”
设置难度.禁止 = 真
暂停游戏.禁止 = 假
游戏初始化 ()
.如果真结束
.子程序 _暂停游戏_被选择
.如果 (暂停)
暂停 = 假
暂停游戏.标题 = “暂停游戏”
.否则
暂停 = 真
暂停游戏.标题 = “继续游戏”
.如果结束
.子程序 _退出_被选择
结束 ()
.子程序 _设置难度_被选择
.如果真 (游戏进行中)
信息框 (“现在不能设置难度”, 64, “劲乐”)
返回 ()
.如果真结束
载入 (窗口1, , 真)
.子程序 _载入MP3_被选择
.如果真 (取反 (载入MP3 ()))
.如果真结束
.子程序 __启动窗口_获得焦点
Free = 假
|
-
-
劲乐.e
38.64 KB, 下载次数: 113, 下载积分: 精币 -2 枚
|