导入 CreateThread 支持库 "kernel32.dll",6;
导入 GetExitCodeThread 支持库 "kernel32.dll",2;
导入 TerminateThread 支持库 "Kernel32.dll",2;
导入 GetCurrentThreadId 支持库 "Kernel32.dll",0;

小程序 线程_启动(整数 指针,整数 参数,整数 线程句柄)

整数 结果
结果=CreateThread(0,0,指针,参数,0,@线程句柄)
返回(结果)

结束;

小程序 线程_销毁(整数 线程句柄)

整数 lpExitCode
GetExitCodeThread(线程句柄,lpExitCode)
返回(TerminateThread(线程句柄,lpExitCode))

结束;

小程序 线程_取自线程句柄

返回(GetCurrentThreadId())

结束;
//1 end

整数 设备,白刷,黄刷,黄笔,绿刷,绿笔,红笔,红刷,蓝笔,蓝刷,关卡,关数,按下,编辑,上格,网格,格子,格数,步数,失败;
程序段 窗体消息(窗口,消息,参数,数据)

判断(消息)为 窗口关闭{停止(0)}
为 单击左键{左键点击(参数)}
为 鼠标移动{如果(按下)左键事件(1,数据)}
为 按下左键{按下=1;左键事件(2,数据)}
为 释放左键{按下=0;左键事件(3,数据)}
否则 处理窗口(窗口,消息,参数,数据)

结束
/*编辑关卡用鼠标一笔画出轨迹路径
然后点击添加关卡即可保存
从红色起点按住鼠标左键直到绿点处
一笔画出连线,中途必须经过所有黄点
经过空白区域或未到终点松开鼠标就算失败
挑战成功后进入下一关,点击编辑关卡增加多关*/
绘制区类 绘区;
程序段 窗体启动
设备=取设备(窗体)
白刷=创建画刷($FFFFFF)
黄刷=创建画刷($FFFF)
黄笔=创建画笔(0,1,$FFC0)
红刷=创建画刷($FF)
红笔=创建画笔(0,1,$FF)
绿刷=创建画刷($FF00)
绿笔=创建画笔(0,1,$228B2)
蓝刷=创建画刷($FF3000)
蓝笔=创建画笔(0,2,$FF0000)
网格=任务分配(4800)格子=?
读取关卡;
结束
程序段 左键事件(模式,数据)
整数 左=(数据 & $FFFF) >>6,上=数据>>22,值=左+上*8;
如果(失败>0)返回;左=格子(值)如果(模式=1 而且 左>1){
如果(编辑=0 而且 左=4 而且 上格<>值)失败++;返回;}上格=值;
如果(编辑=0){如果(模式=1 而且 左=0){按下=0;失败++;返回;}
如果(模式=2 而且 左<>2){按下=0;失败++;返回;}
如果(模式=3){如果(左=3)左=-1;否则{失败++;返回;}}
步数++;模式=4}格子(值)=模式;重绘圆球(值,模式)
如果(左<0 而且 步数=格数){步数=0;关卡++;格子+64;重绘图像(1)}
结束
程序段 重绘图像(模式)

整数 位置=2,画笔=0
选择对象(设备,白刷)
选择对象(设备,蓝笔)
画方块(设备,0,0,528,570)
循环(9){
移到(设备,位置,2,0)
画线(设备,位置,512)
移到(设备,2,位置,0)
画线(设备,512,位置)
位置+64;}如果(模式=0)返回;
位置=0;格数=?;
循环{画笔=格子(位置)
如果(画笔){重绘圆球(位置,画笔)格数++}
位置++}(位置=64)显示关数(6)

结束
程序段 重绘圆球(位置,画笔)

整数 上=位置/8 <<6+4,左=% <<6+4;
判断(画笔)为 1{选择对象(设备,黄刷)选择对象(设备,黄笔)}
为 2{选择对象(设备,绿刷)选择对象(设备,绿笔)}
为 3{选择对象(设备,红刷)选择对象(设备,红笔)}
否则{选择对象(设备,蓝刷)选择对象(设备,蓝笔)}
画椭圆(设备,左,上,左+60,上+60)

结束
程序段 编辑模式菜单_点击

整数 选中=0;编辑=!编辑;
如果(编辑)选中+8;
菜单复选(菜单,1001,选中)关卡=关数;
如果(关数)格子=网格+关数<<6
内存清零(格子,64)重绘图像(0)显示关数(0)

结束
程序段 重新开始菜单_点击

步数=0;失败=?;读取关卡;

结束
程序段 添加关卡菜单_点击

如果(编辑=0)返回;编辑=0
菜单复选(菜单,1001,0)
关数++;显示关数(6)写入关卡

结束
程序段 显示关数(位置)

文本 内容[32];
组合式(内容,"编辑:第%d关,总关数:%d",关卡+1,关数)
位置+内容;窗体~位置;

结束
程序段 读取关卡

整数 文件,内容,长度
文件=开文件("关卡.dat",0)
如果(文件>0)
{
    长度=文件大小(文件,0)
    读文件(文件,网格,长度)
    关文件(文件)关数=长度>>6
重绘图像(1)}否则 编辑模式菜单_点击

结束
程序段 写入关卡

整数 文件,内容,长度=关数<<6
文件=建文件("关卡.dat",0)
如果(文件>0)
{
    写文件(文件,网格,长度)
    关文件(文件)
}

结束


费先生
1 声望0 粉丝