【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;//从第一个武器中获取武器类型IDvar 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的遮挡和人物的站位问题后,可以看出是一致的。当然后面尝试了大招的缩放效果,可惜没有实现出来,后期得好好的研究下。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何手动批准内核扩展 Tuxera NTFS for mac内核扩展需要批准 内核扩展怎么打开

在了解如何手动批准内核扩展之前&#xff0c;我们应该先了解什么叫做内核扩展。内核扩展又被称为KEXT&#xff0c;通过它可以实现macOS系统与软件组件之间的交互&#xff0c;例如磁盘管理、任务管理和内存管理等等。 kext 是内核扩展&#xff08;Kernel Extension&#xff09;…

【漏洞复现】海康威视综合安防管理平台 orgManage/v1/orgs/download 任意文件读取漏洞复现

0x01 产品简介 海康威视综合安防管理平台是一套“集成化”、“智能化”的平台,通过接入视频监控、一卡通、停车场、报警检测等系统的设备。海康威视集成化综合管理软件平台,可以对接入的视频监控点集中管理,实现统一部署、统一配置、统一管理和统一调度。 0x02 漏洞概述 海康…

C语言:学生成绩管理系统(含源代码)

一.功能 二.源代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NUM 100 typedef struct {char no[30];char name[10];char sex[10];char phone[20];float cyuyan;float computer;float datastruct; } *student, student1;typ…

渗透测试报告生成工具

目录 1.前言 1.1 渗透测试报告是什么? 1.2 渗透测试报告的编写需要考虑以下几点&#xff1a; 1.3 一份优秀的渗透测试报告应该具备以下特点&#xff1a; 1.4 在编写渗透测试报告之前&#xff0c;需要进行一些准备工作&#xff1a; 1.5 渗透测试报告一般包括以下部分&…

作为表达式调用时,无法解析类修饰器的签名。vue3+ts+vite,使用装饰器时报错

作为表达式调用时&#xff0c;无法解析类修饰器的签名。 The runtime will invoke the decorator with 2 arguments, but the decorator expects 1.ts(1238) 页面也无法打开 解决方案&#xff1a; {"extends": "vue/tsconfig/tsconfig.dom.json","in…

SEW交频器 MDX61801110-5A3-4-0T可议价

SEW交频器 MDX61801110-5A3-4-0T可议价 SEW交频器 MDX61801110-5A3-4-0T可议价 SEW交频器 MDX61801110-5A3-4-0T可议价 SEW交频器 MDX61801110-5A3-4-0T参数表 SEW交频器 MDX61801110-5A3-4-0T中文说明书 SEW交频器 MDX61B01110-5A3-4-0T 规格:MOVIDRIVE MDX61B0110-5A3…

探索数据结构:便捷的双向链表

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;渐入佳境之数据结构与算法 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ​​ 前言 前面我们学习了单链表&#xff0c;它解…

ICLR24大模型提示(3/11) | PromptAgent:利用语言模型进行战略规划,实现专家级提示优化

【摘要】高效的、针对特定任务的提示通常由专家精心设计&#xff0c;以整合详细的说明和领域见解&#xff0c;这些见解基于对大型语言模型 (LLM) 的本能和目标任务的复杂性的深刻理解。然而&#xff0c;自动生成这种专家级提示仍然难以实现。现有的提示优化方法往往忽视领域知识…

20240603每日AI------------项目引入Spring Cloud Alibaba AI (二)

项目源码解析 前端代码&#xff1a; <div class"container"><h1>Spring Cloud Alibaba AI Example</h1><form id"form"><label for"message">User Message&#xff1a;</label><input type"text&q…

大模型PEFT(一)之推理实践学习记录

1. 简介 多种模型: LLaMA、Mistral、Mixtral-MoE、Qwen、Yi、Gemmha、Baichuan、ChatGLM、Phi等等。集成方法:(增量)预训练、指令监督微调、奖励模型训练、PPO训练和DPO训练。多种精度:32比特全参数微调、16比特冻结微调、16比特LORA微调和基于AQLM/AWQ/GPTQ/LLM.int8 的2/4/8…

操作字符串获取文件名字(包含类型)

记录一种操作字符串获取文件名字的操作方式&#xff0c;方便后期的使用。示例&#xff1a; 输入&#xff1a;"D:/code/Test/Test.txt" 输出&#xff1a;"Test.txt" 设计思路&#xff1a; 首先查找路径中最后一个”/“&#xff0c;然后再通过字符串截取的…

湖南源点调研 为什么中小企业产品上市前一定要做市场调研?

本文由湖南长沙&#xff08;产品前测&#xff09;源点调研咨询编辑发布 可能有很多企业主会表示&#xff0c;市场调研&#xff0c;产品调研&#xff0c;不都是大公司、大品牌、上市公司才会有的流程吗&#xff0c;像我们这种小企业、小品牌、小厂家没有必要去那么做&#xff0…

开源VS闭源:大模型发展路径之争,你站哪一派?

文章目录 引言一、数据隐私1.1开源大模型的数据隐私1.2 闭源大模型的数据隐私1.3 综合考量 二、商业应用2.1 开源大模型的商业应用2.2 闭源大模型的商业应用2.3 商业应用的综合考量 三、社区参与3.1 开源大模型的社区参与3.2 闭源大模型的社区参与3.3 综合考量 结论 引言 在人…

解析“分层引流”在颅内感染治疗中的价值意义

临床中&#xff0c;化脓性颅内感染的治疗一直是界内关注的重点。近年来&#xff0c;得益于医疗技术的持续革新与提升&#xff0c;颅内感染的治疗方法也获得了不断的更新与优化。在此背景下&#xff0c;北京精诚博爱医院所倡导的“分层引流”理念&#xff0c;作为一种新兴的治疗…

什么牌子的开放式耳机质量好?2024超强实力派品牌推荐!

耳机对于一个音乐人有重要这个不必多说&#xff0c;我朋友是个音乐编辑&#xff0c;他经常需要长时间佩戴耳机进行音频编辑和混音工作。在尝试过多款开放式耳机后&#xff0c;都没找到合适的。今天&#xff0c;我将从专业角度为大家带来几款热门开放式耳机的测评报告&#xff0…

第二证券炒股知识:股票内盘外盘代表什么意思?

股票内盘是主动性卖盘&#xff0c;表明以买入价成交的股数&#xff0c;持股的投资者主动以等于或是低于买一、买二、买三、买四、买五的价格卖出手中持有的股份&#xff0c;买入成交数量核算参加内盘。 股票外盘是主动性买盘&#xff0c;表明以卖出价成交的股数&#xff0c;场…

跟着大佬学RE(一)

学了一个 map&#xff08;&#xff09;函数的使用 import base64rawData "e3nifIH9b_CndH" target list(map(ord, rawData)) # map 函数将 rawData 中的每个字符传递给 ord 函数。ord 函数返回给定字符的 Unicode 码点 print(target) # 打印 map 对象的内存地址&…

电脑中病毒了怎么办?7招教你保护电脑安全!

“不知道怎么回事&#xff0c;我的电脑莫名其妙就中病毒了&#xff0c;实在不知道应该怎么操作了&#xff0c;希望大家可以帮我&#xff01;” 在数字化时代的浪潮中&#xff0c;电脑已成为我们生活与工作中不可或缺的一部分。然而&#xff0c;就像任何事物都有其阴暗面一样&am…

ip地址快速切换软件有哪些好处

ip地址快速切换软件有哪些好处&#xff1f;IP地址快速切换软件具有诸多显著的好处&#xff0c;以下是对其主要优势的详细阐述&#xff1a; 首先&#xff0c;IP地址快速切换软件极大地提升了网络活动的灵活性和便捷性。对于需要经常切换网络环境或进行多账号管理的用户而言&…

AI大模型在穿戴设备健康中的心率深度融合与案例分析

文章目录 1. 架构设计2. 应用场景3. 实现步骤3.1 步骤1&#xff1a;数据预处理3.2 步骤2&#xff1a;边缘计算初步分析3.3 步骤3&#xff1a;数据上传到云端3.4 步骤4&#xff1a;云端复杂分析3.5 步骤5&#xff1a;深度学习模型训练与部署 4. 云端API设计4.1 安装Flask4.2 API…