请选择 进入手机版 | 继续访问电脑版

默认
回复 0
  • TA的每日心情

    2021-4-26 10:13
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    91

    主题

    130

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    27456

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    地图类画布版本封装[复制链接]
    发表于 2020-2-23 23:18:10 | 显示全部楼层 |阅读模式
    该类为无限地砖地图,该地图如果正常按照传奇移动速度,可能你得跑几千年才可以跑完。。。。

    这属于无限距离地图写法,仅作参考。
      
    窗口程序集名保 留  保 留备 注
    Class_Dmap   
    变量名类 型数组备 注
    DateTYPE_Map地图属性
    纹理指针整数型  

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

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

    子程序名返回值类型公开备 注
    Open
    Date.贴图纵数 = 1000000
    Date.贴图横数 = 1000000
    Date.贴图宽度 = 156
    Date.贴图高度 = 104
    ' //根据碎图信息算出地图像素宽高
    Date.地图宽度 = Date.贴图横数 × Date.贴图宽度
    Date.地图高度 = Date.贴图纵数 × Date.贴图高度
    ' //计算出地图坐标格子
    Date.坐标x = Date.地图宽度 ÷ 步伐.横向坐标
    Date.坐标y = Date.地图高度 ÷ 步伐.纵向坐标
    纹理指针 = 纹理_文件 (取运行目录 ()“/1.png”)
    调试输出 (“格子总数”, Date.坐标x, Date.坐标y)
    子程序名返回值类型公开备 注
    Move类型_点位返回的是 画面偏移
    参数名类 型参考可空数组备 注
    视野坐标x类型_点位   这里是像素级别 并非格子坐标
    画面偏移_x = 辅助_取画面偏移 (视野坐标x, 屏幕大小, 辅助_点位 (Date.地图宽度, Date.地图高度), )  ' //取出画面碎图画布的偏移
    ' //
    画面偏移 = 画面偏移_x  ' //两个全局变量
    返回 (画面偏移)
    子程序名返回值类型公开备 注
    Draw
    变量名类 型静态数组备 注
    整数型  
    整数型  
    i整数型  
    p整数型  
    X_整数型  
    y_整数型  
    行 = 视野坐标.纵向坐标 ÷ Date.贴图高度 - 屏幕大小.纵向坐标 ÷ Date.贴图高度  ' //计算出人物像素位Y位置所站在的贴图行上 从上往下数
    ' -------------------------------------------------
    计次循环首 (屏幕大小.纵向坐标 ÷ Date.贴图高度 × 2, i)  ' 遍历屏幕贴图两倍 其实不用那么大,但是图个方便,防止人物靠边缘
    行 = 行 + 1  ' 从纵向0开始递增 要渲染这张图的 行号
    ' ----------------------------------------------
    列 = 视野坐标.横向坐标 ÷ Date.贴图宽度 - 屏幕大小.横向坐标 ÷ Date.贴图宽度  ' //计算出人物像素位X位置所站在的贴图列上 从左往右数
    ' -----------------------------------------------
    计次循环首 (屏幕大小.横向坐标 ÷ Date.贴图宽度 × 2, p)  ' //同上 这里是列
    列 = 列 + 1  ' 从左上0开始递增 要渲染这张图的 列号
    ' -------------------------------------------
    ' 调试输出 (“渲染图号”, 行, 列)  '
    ' //这里是每次一屏幕两倍大小要渲染的图片行列图序号
    渲染_渲染矩形纹理 (纹理指针, Date.贴图宽度, Date.贴图高度, Date.贴图宽度, Date.贴图高度, 2, -1, 0.9999, 列 × Date.贴图宽度 + 画面偏移.横向坐标, 行 × Date.贴图高度 + 画面偏移.纵向坐标, , , , , , , , )
    ' //计算坐标
    计次循环尾 ()
    计次循环尾 ()


    i支持库列表   支持库注释   
    spec特殊功能支持库
    回复

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|手机版|小黑屋|55IDE.Com

    GMT+8, 2023-5-30 13:37 , Processed in 0.180508 second(s), 39 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    返回顶部