【RPG Maker MV 仿新仙剑 战斗场景UI (九)】

RPG Maker MV 仿新仙剑 战斗场景UI 九

  • 前言
  • 角色战斗精灵
    • 精灵图设置
      • 攻击
    • 战斗背景图

前言

前段天研究并完成了主角人物行走图部分的开发,完成了对应的8方向行走,及精灵的展示。现在开始重新回到战斗场景的开发中,回顾下,已完成功能:

  • 战斗菜单
  • 一级战斗菜单
  • 二级战斗菜单
  • 角色状态显示
  • 物品及法术窗口
  • 进入状态及装备场景

未完成的功能:

  • 角色战斗精灵
  • 投掷窗口
  • 合击、防御、围攻
  • 角色站位
  • 战斗动画(法术及各操作动画)
  • 经验及物品的消息显示
  • 战斗背景图
  • 敌我选中
  • 伤害显示
    现在发现还有这么多的功能还未完成,真是给程序员丢脸!!!给RPGMakerMV这个软件的使用人丢脸!!!

角色战斗精灵

今天开始进行角色战斗精灵的开发,有预感这又是一次艰难的旅程。。。

精灵图设置

在这里插入图片描述
通过这个精灵图的设置来控制包括攻击、防御、投掷、等人物精灵的状态的情况,其中没有合击,没有合击的原因是,由于合击是多个人物的操作,不方便放进去进行处理,因此仿照仙剑2的方式来处理,直接置空然后释放技能即可。当然由于还没有做到那里,因此现在只能算是口嗨!

//更新图片
Sprite_Actor.prototype.updateBitmap = function() {
    Sprite_Battler.prototype.updateBitmap.call(this);
    var name = this._actor.battlerName();
    if (this._battlerName !== name) {
        this._battlerName = name;
        this._mainSprite.bitmap = ImageManager.loadSvActor(name);
    }
};
//更新战斗帧
Sprite_Actor.prototype.updateFrame = function() {
    Sprite_Battler.prototype.updateFrame.call(this);
    var bitmap = this._mainSprite.bitmap;
    if (bitmap) {
        var name=this._actor.battlerName();
        var motionIndex=this._motion?this._motion[name].index:0;
        this._motionIndexCount = motionIndex.length;
        var pattern = this._pattern < this._motionIndexCount ? this._pattern : 0;
        var cw = bitmap.width;
        var ch = bitmap.height / 12;
        var cx = 0;
        var cy = motionIndex[pattern];
        this._mainSprite.setFrame(cx * cw, cy * ch, cw, ch);
    }
};

对应更新角色战斗的图片及战斗序列帧。

攻击

Game_Actor.prototype.performMissile = function() {
    var weapons = this.weapons();//获取角色装备的武器列表
    var wtypeId = weapons[0] ? weapons[0].wtypeId : 0;//从第一个武器中获取武器类型ID
    var attackMotion = $dataSystem.attackMotions[wtypeId];
    if (attackMotion) {
        if (attackMotion.type === 0) {
            this.requestMotion('thrust');
        } else if (attackMotion.type === 1) {
            this.requestMotion('swing');
        } else if (attackMotion.type === 2) {
            this.requestMotion('missile');
        }
        this.startWeaponAnimation(attackMotion.weaponImageId);
    }
};

Game_Actor.prototype.performAttack = function() {
this.requestMotion(‘attack’);
};

现在攻击的角色对象方法中不再有一大堆的操作,就单纯的只有一条就是设置请求运动中攻击动画。
那原来的一大堆的代码是什么呢?
就在这上面投掷的代码中,由于投掷还没有做对应的功能和操作因此可以看到里面的攻击的源码。
这段源码中第一行是获取的角色武器列表,第二行是从武器列表中获取获取武器对应的类型id,由于列表是数组因此需要获取里面的第一个元素,虽然里面也没有其他的元素就是了!
第三行获取攻击的动作,根据武器类型id获取对应的动作编号,这部分是写死在system的json文件中的,由于我没有想要修改的意向,因此不对其进行操作。后面就是根据类型的值选择是空手,武器挥舞,或投掷了,最后一行是对应的调用使用武器的代码,由于仙剑的精灵自带武器,或直接空手,因此我也不需要动用其他的操作。
在这里插入图片描述
从这可以看角色进行了相应的战斗动作,由于没有进行合理的位移因此没有到正确的位置进行攻击。

战斗背景图

简单处理战斗背景的话可以在RPGMakerMV中直接在对应地图上的编辑中指定战斗的背景图片。
具体步骤如下:

  1. 在编辑器窗口中左下角处的找到并点击对应地图,右键菜单找到第一个编辑选项。
    在这里插入图片描述
  2. 在弹出的地图属性中窗口中,左边的基本设置栏中找到指定战斗背景图选项,并勾选上,这样就可以在下面的下拉列表中选择对应的战斗背景图片了。
    这里面可以一次性进行两个战斗背景的设置,这里不再展示如何选中。
    在这里插入图片描述
    但很快就发现设置的战斗背景图和原版游戏有区别,通过详细的对比后发现图片区域下移了一些,检查源码是战斗精灵集中背景精灵使用了平铺精灵的问题,后直接改成了普通精灵后完成效果。
    RMMV 仿仙剑的效果:
    在这里插入图片描述
    原版仙剑的效果:
    在这里插入图片描述
    去掉UI的遮挡和人物的站位问题后,可以看出是一致的。当然后面尝试了大招的缩放效果,可惜没有实现出来,后期得好好的研究下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673421.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

植物大战僵尸杂交版(最新版)

杂交版1.0文件链接 链接&#xff1a;https://pan.baidu.com/s/1Ew6iTg0_d_Ut8N9_18KGLw 提取码&#xff1a;yspa 杂交版2.0文件链接 链接:https://pan.baidu.com/s/1tuchowb4C_oNT6EpqSvr_w?pwdy2fz 提取码:y2fz

如何解决游戏行业DDOS攻击问题

随着网络游戏行业的迅速发展&#xff0c;网络游戏问题也不可忽视&#xff0c;特别是目前网络攻击频发&#xff0c;DDoS攻击的简单化以及普及化&#xff0c;对游戏来说存在非常大的安全威胁。 随着受攻击对象的范围在不断地拓展&#xff0c;网络游戏这种这种新型并且有着丰厚利…

罗德里格斯旋转公式证明-简洁

罗德里格斯旋转公式证明。 设旋转向量为 ( n , θ ) (n, \theta) (n,θ)&#xff0c;设其对应的旋转矩阵为 R R R&#xff0c; 如何证明&#xff1f; R c o s θ I n ∧ s i n θ ( 1 − c o s θ ) n n T Rcos\theta I n^{\wedge}sin\theta(1-cos\theta)nn^{T} RcosθI…

HTML5常用标签表格

04-08、表格标签table 概述 表格&#xff1a;是一种行和列组合而成的单元格。一般应用于后台网页设计管理数据使用。 表格的架构部分&#xff1a; tabletable head 表格头 theadtable body - 表格体 tbodytable foot -表格的页脚 tfoot 表格的基本组成部分&#xff1a; t…

minos 1.2 内存虚拟化——guest

首发公号&#xff1a;Rand_cs 该项目来自乐敏大佬&#xff1a;https://github.com/minosproject/minos 项目来自乐敏大佬&#xff1a;https://github.com/minosproject/minos 本文继续讲述 minos 中的内存虚拟化中关于 guest 的部分&#xff0c;主要弄清楚一个问题&#xff0c…

LNMP网络架构

操作准备&#xff1a;准备三台虚拟机 安装 MySQL 服务 &#xff08;1&#xff09;准备好mysql目录上传软件压缩包并解压 cd /opt mkdir mysql tar xf mysql-boost-5.7.44.tar.gz &#xff08;2&#xff09;安装mysql环境依赖包 yum -y install ncurses ncurses-devel bison…

fpga入门 串口定时1秒发送1字节

一、 程序说明 FPGA通过串口定时发送数据&#xff0c;每秒发送1字节&#xff0c;数据不断自增 参考小梅哥教程 二、 uart_tx.v timescale 1ns / 1psmodule uart_tx(input wire sclk,input wire rst_n,output reg uart_tx);parameter …

基本算法——位运算

a^b 原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目描述 运行代码 #include<iostream> using namespace std; long long a,b,c,t1; int main() {cin>>a>>b>>c;for(;b;b/2){if(b&1)tt*a%c;aa*a%c;}cout<<t%c; } 代码思路…

Unity MiniCPM-V 让引擎拥有视觉

Unity MiniCPM-V 让引擎拥有视觉 前言项目Python环境布置Unity场景布置代码编写添加并设置脚本总结 鸣谢AI提示 前言 新发布的MiniCPM-V&#xff0c;忍不住玩一下&#xff0c;可以让之前制作的语音助手拥有一定的视觉能力&#xff08;不是OpenCV不行&#xff0c;而是AI更加符合…

项目中MySQL数据库设计(尚庭公寓)

数据库设计 1 数据库设计理论 1.1 数据库模型 数据库设计中最常采用的模型为实体&#xff08;Entity&#xff09;关系&#xff08;Relationship&#xff09;模型&#xff0c;简称ER模型。其核心思想是将现实世界中的复杂数据表示为一组实体&#xff0c;并描述这些实体之间的…

minos 2.5 中断虚拟化——vGIC

首发公号&#xff1a;Rand_cs 该项目来自乐敏大佬&#xff1a;https://github.com/minosproject/minos 这一节开始讲述真正的中断虚拟化&#xff0c;首先来看硬件方面的虚拟化。前文 minos 2.3 中断虚拟化——GICv2 管理 主要讲述 GICv2 的 Distributor 和 CPU Interface&…

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:3D扫描仪 实时创建 VR 内容

虽然 VR 技术彻底改变了娱乐、医疗、建筑、教育和产品设计等各个日常生活领域&#xff0c;但创建 VR 内容仍然是一项不易突破的挑战。 英伟达在旧金山举行的 Jetson TX2发布会上&#xff0c;展示了Jetson TX2如何能够加快 AI 计算、图形和计算机视觉的运行速度&#xff0c;并且…

【一小时学会Charles抓包详细教程】Charles 抓包相关设置 (7)

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 Charles 抓包相…

数据库学习总结

Mysql学习总结 汇总数据 聚集函数&#xff1a; 函数 说明 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 例&#xff1a; AVG函数&#xff1a; select avg(grade) from topic; COUNT函…

WiFi蓝牙模块促进传统零售数字化转型:智能零售体验再升级

随着科技的不断发展&#xff0c;数字化转型已经成为了各行各业的必然趋势。在传统零售业中&#xff0c;WiFi蓝牙模块的应用正逐渐推动着行业的数字化转型&#xff0c;为消费者带来更加智能化、便捷化的零售体验。本文MesoonRF美迅物联网将从以下几个方面阐述WiFi蓝牙模块在传统…

稍微学学react

文章开始前&#xff0c;先划划水~ 今日份开心&#xff1a; 今天看之前发布的按钮npm包下载量有162次&#xff0c;早知道好好做了 今日份不开心&#xff1a; 爬岗位看到一个整体都挺满意的岗位&#xff0c;公司位置和发展大方向都好喜欢&#xff01;&#xff01;&#xff01;…

机器学习学习(2)

基于数据流图的编程范式:声明式编程(Declarative Programming )、命令式编程(Imperative Programming ); 声明式编程(Declarative Programming ) 代表性框架:TensorFlow, CNTK, Caffe2 特点:用户只需要表达模型结构和需要执行的任务,无需关注底层的执行流程,框…

【UE+GIS】UE5GIS CAD或shp构建3D地形

贴合地形的矢量图形实现方法 一、灰度图的制作和拉伸换算1、基于高程点集实现2、基于等高线实现3、拉伸计算 二、生成地形模型的实现方案1、3Dmax导入灰度图2、使用ArcMap/Arcpro/FME等GIS数据处理工具3、UE导入灰度图 三、地形上叠加地形渲染效果的实现方案1、贴花2、数据渲染…

【transformers】pytorch基础

传送门&#xff1a;https://transformers.run/c2/2021-12-14-transformers-note-3/ pytorch基础知识 tensor &#xff1a; 张量。 需要知道的内容&#xff1a; 张量构建张量计算自动微分形状调整广播机制索引与切片升降维度 Tensor 张量&#xff1a;理解成高纬度的向量就完…

【最新鸿蒙应用开发】——什么是状态管理?

状态管理 在声明式UI编程框架中&#xff0c;UI是程序状态的运行结果&#xff0c;用户构建了一个UI模型&#xff0c;其中应用的运行时的状态是参数。当参数改变时&#xff0c;UI作为返回结果&#xff0c;也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染&#xf…