仿新仙剑存档菜单

  • 遇到的坑
    • 坑一 图片保存
    • 坑二 图片绘制
    • 坑三 多图绘制

遇到的坑

新仙剑中存档和读档可以看做是同一个菜单中的不同操作,共计100个存档方便玩家使用。
每个存档可分解为两种显示:一种是无存档信息的,只用显示底图和序号即可;一种是有存档信息的,会变换底图,并且绘制出人物所在场景地图,地图名称,队伍中人物头像,第一个人物的等级,队伍所拥有的金钱和游戏时间这些信息。
而在JS代码中处理这些有时并不简单。

坑一 图片保存

众所周知RPGMakerMV是一个使用HTML5和JavaScript为开发及运行平台的,这就意味着对应游戏是运行在这上面的。
在开发中遇到的第一个坑就是图片的保存,在原始的js和html中正常是可以存储图片的,从网页中右键保存即可,一般这图片是从img标签中得到的,在h5中canvas里面有一个图片转换base64的方法(网上浏览了很久,才找到),这个方法对我来说就可以使用,因为RMMV中Bitmap中是没有对应方法的,因此只能用原生方式。
但Bitmap中截取出来的图片由于存储数据的问题及优先修改大小的问题,因此需要调整图片的大小,但使用后发现Bitmap的方法调整后,图片变成黑片了,不知道为什么canvas的宽高被变更后会变成这样。得另外想办法了!最后一整折腾后才想到可以放进另一个Bitmap对象中处理。

var mapBitmap   = new Bitmap(80,60);mapBitmap.blt(SceneManager.backgroundBitmap(),0,0,640,480,0,0,80,60);info.mapSprite  =mapBitmap.canvas.toDataURL();

这边先创建了一个固定宽高的位图对象,然后通过blt方法将截图对象放入进去,设定其在内容为空的对象中的宽高即可,然后在新的对象中的canvas中使用图片转base64的方法,这样需要的图片截取出来存储为字符串了。

坑二 图片绘制

这个坑是对应的,可以存储后,那自然得进行使用,进行绘制但如何加载呢?浏览器是可以直接加载base64的图片的,img标签也可以。通过不断地查找有用的信息和不断折腾后终于。

if (info.mapSprite) {var mapImg=Bitmap.load(info.mapSprite);if(!mapImg.isReady()){setTimeout(()=>{this.contents.blt(mapImg,0,0,80,60,x+37,y+14);},1);}else{this.contents.blt(mapImg,0,0,80,60,x+37,y+14);}}

Bitmap的加载方法正好可以使用,load方法中地址和base64都会被放入img对象中,在通过canvas的上下文对象进行加载进入canvas中,为什么不说是绘制呢,虽然是有绘制的方法,但总觉得不是那么简单的进行绘制。再确定位图对象是否绘制出来后,放入到指定的矩形框中。

坑三 多图绘制

需求是没有选中的绘制,选中的不绘制,使用了各种方法都不行,现在只能使用笨办法了!!!

this._windowCursorSprite.bitmap.clear();for (var i = 0; i < 100; i++) {if(i==this.index()){continue;}else{var rect = this.itemRectForText(i);//项目矩形文本this._windowCursorSprite.bitmap.blt(this.saveAndLoaded, 0, 0*96, 400, 96, rect.x, rect.y,400,95);}}

在光标更新中每次绘制时,清理掉之前的内容,然后在进行绘制,每次绘制99个内容,这样选中的就不会再绘制,未选中的就进行绘制了!

大家要是有好的方法也可以评论,探讨哦!

RPG Maker MV 踩坑七 仿新仙剑存档菜单相关推荐

  1. RPG Maker MV 踩坑一 新仙剑菜单

    RMMV中菜单UI修改出现的错误 RMMV--灵儿续传 鬼畜主菜单 多菜单选中问题 其他问题 学习的教程 最终结果 接下来的要踩的坑 RMMV--灵儿续传 本人计划进入游戏行业的萌新,以前玩过新仙剑- ...

  2. RPG Maker MV 踩坑二 新仙剑子菜单

    主菜单的鬼畜错误 主菜单遇到的问题 原始正常效果 显示的辅助菜单 鬼畜的二级菜单 错误代码部分 修改后的完整代码 最终结果 下一步 主菜单遇到的问题 大家好啊!本计划进行的主菜单人物菜单和金钱菜单的绘 ...

  3. RPG Maker MV 打包安卓和修改分辨率的方法

    最近要处理RPGMV游戏的安卓打包过程,发现打包完了在手机上运行,两边总有黑边,后来发现是分辨率有问题,需要修改. 具体打包方法见B站视频: https://www.bilibili.com/vide ...

  4. RPG Maker mv框架代码解析之窗口图片显示

    文章目录 1 窗口基类的图片描画接口 1.1 Face描画接口 1.2 Icon描画接口 2 描画自定义图片 1 窗口基类的图片描画接口 RPG Maker mv框架中的窗口基类(Window_Bas ...

  5. RPG Maker MV游戏解包

    该文章最新版本请前往:https://www.crowsong.xyz/127.html 前言 使用Petschko's RPG-Maker-MV File-Decrypter进行解包 使用Petsc ...

  6. 【RPG Maker MV】使用技巧1:用自己绘制的图片当做地图

    因为RPG Maker MV本身提供的地图素材可能无法满足需求,比如我想绘制一个大型的建筑物,图形如下: 这是,我们要怎么处理呢? 这时,我们可以用RPG Maker 提供的远景图来完成这一效果.具体 ...

  7. 【RPG Maker MV】RPG游戏《机器人养成记》制作笔记 - RPG Maker MV 界面介绍

    上一节,我们已经完成了软件的安装和项目的创建,并成功的运行了游戏. 这一节我们将介绍RGP Maker MV的界面元素和基本的使用方法,让大家对软件有个基本的了解. 我们先回到软件的主界面,界面分成工 ...

  8. 试图速成的RPG Maker MV 学习笔记(一)

    参考学习的是B站UP主硕明云书的教程:[MV❀RPG制作大师]萌新基础速成教学全集_哔哩哔哩_bilianwa 首先安装完RPG Maker MV,然后熟悉一下软件界面,各个图标和工具都有什么作用. ...

  9. 记一次完整的RPG Maker MV游戏逆向系列第四篇

    前言 阅读本篇前请先看之前的几篇分析噢,不然可能会缺失一些前置知识 这篇还是讲 RPG Maker MV 的游戏分析,主要是如何分析一种通过 GameusQuestSystems.js 的加密手段 工 ...

  10. RPG Maker mv框架代码解析之窗口文字显示

    目录 窗口文字显示 字体的颜色 通常色 系统色 危机色 死亡色 计量器背景色 血量计量器色1 血量计量器色2 魔法计量器色1 魔法计量器色2 魔法消耗色 力量上升色 力量下降色 技能值计量器色1 技能 ...

最新文章

  1. 读书笔记-内存初始化和清理
  2. linux配置tomcat内存配置文件,Linux与Windows下tomcat内存设置
  3. Android 自定义组件随着手指自动画圆
  4. 8086架构/流水线及其优化
  5. 中添加2000坐标系_ArcGIS API for JavaScript 4.16在三维场景中以天地图为底图加载2000坐标系的倾斜摄影数据...
  6. 计算机房用还原保护软件,“小哨兵”还原卡v9.1在机房的巧妙应用
  7. pyton人值得拥有
  8. 小米笔记本air13-3安装黑苹果macOS
  9. 抖音下载小助手GUI版
  10. DM6437 OSD调试记录
  11. Chrome扩展开发总结之浏览器书签获取
  12. 微信wifi认证的实现方式和功能——时讯wifi认证
  13. 我们向印度人学习什么?
  14. 在指定数据的前面加“0“
  15. 智能指纹门锁芯片方案技术开发
  16. android spinner,自定义字体大小颜色背景位置
  17. 固定电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)
  18. 英国w l 是什么码数_英国广播公司的完整形式是什么?
  19. OWASP 安全编码规范 快速参考指南
  20. 兄弟打印机Linux驱动安装与CUPS共享

热门文章

  1. Word分栏排版中的怪问题(转载)
  2. UVA110- Meta-Loopless Sorts(模拟全排列)
  3. 视频弹幕带时间同步demo
  4. 在授权的渗透测试中潜入法院被捕,被控告入室盗窃
  5. python 爬取名字分数
  6. TCP协议疑难杂症全景解析(转载)
  7. 由赋值中的“别名现象”引发的思考
  8. openGL与DirectX等的比较
  9. 全固态发射机——雷达基础知识
  10. Spring MVC 自定义 日期封装方法