//地图.sec
小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
判断(消息)为 窗口关闭{停止(0)}
为 窗口重绘 重绘图像
为 释放左键 检测选中(数据 & $FFFF,数据>>16)
为 键盘按下,单击左键{左键点击(参数)}
否则{处理窗口(窗口,消息,参数,数据)}
结束;绘图启动类 绘图(版本=1)数据表 坐标{整形 左,顶,宽,高}
整数 设备,图层,图像,位图,令牌,兔子,彩蛋,背景,中线,平面;
整数 选中=-1,游戏,棍,家,左边,上边,计数
文件框类 文件框(长度=76,路长=64)文本 路径[64]="1.地图";
小程序 窗体启动
显隐窗口(窗体,窗口最大)
重置 坐标(500)文件框.扩展="地图";
文件框.路径=路径;中线=创建画笔(0,2,$CC00)
文件框.分类 = "地图文件'\0'*.地图'\0'";
设备=取设备(窗体)平面=桌面.高>>1
图层=创建设备(设备)选择对象(图层,中线)
位图=创建图像(设备,桌面.宽,桌面.高)
选择对象(图层,位图)选择对象(图层,固有对象(5))
绘图启动(@令牌,绘图,0)
文件取图("`图片\1.jpg",@背景)
文件取图("`图片\兔子.png",@兔子)
文件取图("`图片\彩蛋.png",@彩蛋)
文件取图("`图片\棍.png",@棍)
文件取图("`图片\家.png",@家)
设备取图(图层,@图像)中线=桌面.宽>>2
读取消息
结束;
小程序 左键点击(整数 编号)

判断(编号)
为 1001{路径=0;坐标.行数=?;改窗口字(窗体,"地图编辑")}
为 1002读取坐标
为 1003保存内容
为 1004保存文件
为 37,1005左右移动(-10)
为 38,1006上下移动(-10)
为 39,1007左右移动(10)
为 40,1008上下移动(10)
为 46,1009删除数据
为 1010添加数据(100,50,108,296)
为 1011添加数据(100,0,656,296)
为 1012添加数据(200,-120,105,106)
为 1013添加数据(350,-120,105,2666)
为 1014添加数据(500,-120,105,5226)
为 1015添加数据(650,-120,105,7786)
为 1016添加数据(800,-120,104,685)

结束;
小程序 左右移动(整数 值)

如果(选中=-1)
{左边+值;
如果(左边<0)左边=0;
}
否则{坐标(选中).左+值;
}

结束;
小程序 上下移动(整数 值)

如果(选中=-1)
{上边+值;
如果(上边<0)上边=0;
}
否则{坐标(选中).顶+值;
}

结束;
小程序 读取坐标
整数 文件,长度;
如果(文件选框(文件框)){
文件=开文件(路径,0);
长度=文件大小(文件,0)
读文件(文件,坐标.指针,长度)
坐标.行数=长度>>4
改窗口字(窗体,路径)
关文件(文件)}}

小程序 保存文件
如果(保存选框(文件框))保存内容}

小程序 保存内容
整数 文件,内容,长度;
文件=建文件(路径,0)
长度=坐标.行数<<4
写文件(文件,坐标.指针,长度)
改窗口字(窗体,路径)
关文件(文件)}
小程序 添加数据(整数 左,整数 上,整数 宽,整数 高)
选中=坐标.行数;坐标(?).左=左+左边;
.[2]=上;.[4]=宽;.[6]=高;坐标.行数++
结束;
小程序 删除数据

整数 长度,指针
如果(选中=-1 或者 坐标.行数=0)返回;
坐标.行数--;长度=坐标.行数-选中
如果(?>0)
{指针=@坐标(选中)
内存传送(指针,指针+8,长度*8)
}选中=-1

结束;
小程序 重绘图像
整数 左=0,上,数=计数 %10*105,宽度=桌面.宽+左边,高度=桌面.高+上边
绘图清色(图像,0)
循环
{上=0;

循环
{
    绘图整数(图像,背景,左-左边,上-上边)上+640
}(上>=高度)
左+960

}(左>=宽度)
区块整数(图像,兔子,120,平面-90,105,106,数,0,105,106,2,0,0,0)
计数++;如果(计数>桌面.宽)计数=0;显示数据
位图传输(设备,0,0,桌面.宽,桌面.高,图层,0,0,原图复制)
结束;
小程序 显示数据

整数 数=0,值,左,上,右,下

列举 坐标{

循环(数<坐标.行数)
{
    左=.左-左边;值=左+#[4]
    如果(值>0 而且 左<桌面.宽)
    {上=平面+.顶-上边;右=0;下=0;
    如果(选中=数)画方块(图层,左,上,值,上+#(6))
    判断(#(7))为 1{值=棍;如果(#[4]<120)右=656}
    为 2{值=家}否则{值=彩蛋;下=(计数 %10+#(7))/9*106;右=% *105}
        区块整数(图像,值,左,上,#[4],#(6),右,下,#[4],#(6),2,0,0,0)
    }数++;.++
}}

结束;
小程序 检测选中(整数 X,整数 Y)

整数 数=0,左,上,右,下;

列举 坐标{

循环(数<坐标.行数)
{左=.左-左边;上=平面+.顶-上边;
右=#[4]+左;下=#(6)+上;
如果(X>左 而且 X<右 而且 Y>上 而且 Y<下)
{
    选中=数;返回;
}数++;.++
}}选中=-1;

结束;

//兔子.sec
导入 组合格式 别名 wsprintfW 支持库 "user32.dll",-1;
导入 音乐播放 别名 mciSendStringA 支持库 "WINMM.dll",4
导入 声音播放 别名 PlaySound 支持库 "WINMM.dll",3
小程序 窗体消息(整数 窗口,整数 消息,整数 参数,整数 数据)
判断(消息)为 窗口关闭{停止(0)}
为 窗口重绘 重绘图像
为 按下左键 左键按下
为 释放左键 左键点击(数据 & $FFFF,数据>>16)
否则{处理窗口(窗口,消息,参数,数据)}
结束;绘图启动类 绘图(版本=1)数据表 坐标{整形 左,顶,宽,高}
整数 设备,图层,图像,令牌,兔子,彩蛋,背景(4),区一,区二,中线,平面,棍,家,跳起,计时,跳高;
整数 开始,音乐,开关=39,数字,分数,左边,上边,水平,垂直,高度,加速,当前,计数,关数=1
小程序 窗体启动
显隐窗口(窗体,窗口最大)
重置 坐标(500)
设备=取设备(窗体)
图层=创建设备(设备)
图像=创建图像(设备,桌面.宽,桌面.高)
选择对象(图层,图像)
绘图启动(@令牌,绘图,0)
平面=桌面.高>>1;中线=桌面.宽>>1
区一=创建椭圆(30,20,70,60)
区二=创建椭圆(中线-80,平面,中线+78,平面+68)
加载背景;背景=背景(1)
文件取图("`图片\开始.png",@开始)
文件取图("`图片\兔子.png",@兔子)
文件取图("`图片\彩蛋.png",@彩蛋)
文件取图("`图片\音乐.png",@音乐)
文件取图("`图片\数字.png",@数字)
文件取图("`图片\棍.png",@棍)
文件取图("`图片\家.png",@家)
设备取图(图层,@图像)
音乐播放("open 声音\音乐.mp3 alias 音乐",0,0,0)
音乐开关;读取消息
结束;
小程序 音乐开关

如果(开关)
{开关=0;
音乐播放("play 音乐 repeat",0,0,0)
}否则
{开关=39;
音乐播放("stop 音乐",0,0,0)
}

结束;
小程序 读取坐标
整数 文件,长度;文本 路径[16]
重新@
格式化(路径,"%d.地图",关数)
文件=开文件(路径,0);
如果(文件<=0 而且 关数>1){关数--;跳到 重新}
长度=关数 %3+1;背景=背景(长度)
长度=文件大小(文件,0)
读文件(文件,坐标.指针,长度)
坐标.行数=长度>>4
关文件(文件)}
小程序 左键按下

如果(左边>0 而且 跳起=0){跳起=106;加速=?}

结束;
小程序 左键点击(整数 左,整数 上)

如果(点在区内(区一,左,上))音乐开关
否则{如果(左边)加速=0;
否则{如果(点在区内(区二,左,上))开始游戏
}}

结束;
小程序 开始游戏
读取坐标;左边=5;垂直=平面;高度=?-80;当前=-1
声音播放("声音\开.wav",0,1)计时=0;水平=?;分数=?上边=?
结束;
小程序 加载背景

整数 数=0,指针=@背景;文本 路径[24]
循环
{指针+4;数++
    组合格式(路径,"`图片\%d.jpg",数)
    文件取图(路径,指针)
}(数=3)

结束;
小程序 重绘图像
整数 左=0,上,数=左边 %960>>1,宽=桌面.宽+数,高=桌面.高+上边
绘图清色(图像,0)
循环
{上=0;

循环
{
    绘图整数(图像,背景,左-数,上-上边)上+640
}(上>=高)
左+960

}(左>=宽)数=计数;如果(加速)左边+10;
图像区块(音乐,30,20,39,39,开关,0)
如果(左边=0)绘区整数(图像,开始,中线-80,平面,158,68)
否则{显示分数(关数,桌面.宽-100)如果(水平<中线)水平+5;如果(高度<垂直)高度+5
如果(跳起){数=数>>1;如果(跳起=106){高度-20;跳高++;}否则{高度+10;数+5;跳高--}
如果(跳高>10)跳起=212;如果(垂直-高度<10){高度=垂直;跳起=0;加速=?}}
如果(垂直=1500 而且 高度>平面){跳起=318;上边+10;数=1}左边+10;
如果(高度>桌面.高){左边=0;声音播放("声音\摔.wav",0,1)}
图像区块(兔子,水平-90,高度-90,105,106,数*105,跳起)
显示数据;显示分数(分数,中线)}计数++;如果(计数>9){计数=0;计时++}播放鸟叫;
位图传输(设备,0,0,桌面.宽,桌面.高,图层,0,0,原图复制)
结束;
小程序 图像区块(整数 图形,整数 左,整数 上,整数 宽,整数 高,整数 右,整数 下)
区块整数(图像,图形,左,上,宽,高,右,下,宽,高,2,0,0,0)}

小程序 显示数据

整数 数=0,值,左,上,右,下,区域

列举 坐标{

循环(数<坐标.行数)
{
    左=.左-左边;值=左+#[4]
    如果(值>0 而且 左<桌面.宽)
    {上=平面+.顶-上边;右=0;下=0;
    判断(#(7))为 1{计算落差(数,左,上,#[4])值=棍;如果(#[4]<120)右=656}
    为 2{值=家;如果(水平>左 而且 高度-220<上){
    声音播放("声音\虫.wav",0,1)左边=0;关数++}}
    否则{下=(计数+#(7))/9*106;右=% *105;
    如果(#(7)<40){区域=创建椭圆(左,上,值,上+#(6))
    如果(点在区内(区域,水平,高度-50)){.(7)=40;计数=0;分数++;声音播放("声音\碎.wav",0,1)}
    删除对象(区域)}值=彩蛋;如果(下>424).#0=左边- #4;}
    图像区块(值,左,上,#[4],#(6),右,下)
    }数++;.++
}}

结束;
小程序 计算落差(整数 编号,整数 左,整数 上,整数 宽)
整数 差,距

如果(当前=-1)
{差=上-高度;距=左-水平;
    如果(距<20 而且 差>0){垂直=上;当前=编号}
}如果(当前=编号)
{
    如果(左+宽<水平){垂直=1500;当前=-1}
}

结束;
小程序 播放鸟叫

文本 内容[16]如果(计时 %5=1)
{格式化(内容,"声音\鸟%d.wav",计时 % 8)
声音播放(内容,0,1)}

结束;
小程序 显示分数(整数 数值,整数 位置)

整数 左,上,值;文本 内容[16]
格式化(内容,"%d",数值)
循环数组(值<内容)
{
    值-48;上=值 /5*30;左=% *17;
    图像区块(数字,位置,20,17,30,左,上)
位置+18}

结束;


费先生
1 声望0 粉丝