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

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

  • 状态及装备场景
  • 代码
  • 效果

状态及装备场景

本计划在战斗场景中直接制作的,但考虑到在战斗场景中加入太多的窗口这不太合适,操作也繁琐,因此直接使用其他场景。

代码

Pal_Window_EquipStatus.prototype.drawNewParam = function(paramId) {
	this.drawText(this._tempActor.param(paramId), 500, 14+32*this._actorState.indexOf(paramId), 110, 'left');
};
al_Window_EquipStatus.prototype.drawCurrentParam = function(paramId) {
	this.drawText(this._actor.param(paramId), 400, 14+32*this._actorState.indexOf(paramId), 110, 'left');
};

这里由于之前测试通过,因此去掉绘制数值上的**+9999**。

Pal_Scene_Battle.prototype.commandStates = function() {
	SceneManager.push(Scene_Status);
};
Pal_Scene_Battle.prototype.commandEquip = function() {
	SceneManager.push(Pal_Scene_Equip);
};

直接前往这两个场景,显示数据信息。

为了保证场景之间跳转后之前的操作保留(看上去),因此在对应场景中添加如下代码:

Scene_Status.prototype.popScene = function() {
	switch(SceneManager._stack[1].name){
		case "Scene_Menu":
		break;
		case "Pal_Scene_Battle":
		SceneManager.scene_windows.command1_active=false;
		SceneManager.scene_windows.command2_active=true;
		SceneManager.scene_windows.command3_active=false;
		SceneManager.scene_windows.command1_index=3;
		SceneManager.scene_windows.command2_index=4;
		SceneManager.scene_windows.command3_index=-1;
		break;
		default:
		break;
	}
	 Scene_ItemBase.prototype.popScene.call(this);
};
Pal_Scene_Equip.prototype.popScene = function() {
	switch(SceneManager._stack[1].name){
		case "Scene_Menu":
		SceneManager.scene_windows.command1_active=false;
		SceneManager.scene_windows.command2_active=true;
		SceneManager.scene_windows.command3_active=false;
		SceneManager.scene_windows.command1_index=2;
		SceneManager.scene_windows.command2_index=1;
		SceneManager.scene_windows.command3_index=-1;
		break;
		case "Pal_Scene_Battle":
		SceneManager.scene_windows.command1_active=false;
		SceneManager.scene_windows.command2_active=false;
		SceneManager.scene_windows.command3_active=true;
		SceneManager.scene_windows.command1_index=3;
		SceneManager.scene_windows.command2_index=0;
		SceneManager.scene_windows.command3_index=2;
		break;
		default:
		break;
	}
	 Scene_ItemBase.prototype.popScene.call(this);
};

这是在场景管理器中设置跳转后的操作信息,涉及到返回的场景有战斗场景主菜单场景

Pal_Scene_Battle.prototype.initWindons = function() {
    if(!SceneManager.scene_windows.command1_active){
		if(!SceneManager.scene_windows.command2_active){
			if(SceneManager.scene_windows.command3_active){
				this._actorCommandWindow._index=SceneManager.scene_windows.command1_index;
				this.commandOther();
				this._otherCommandWindow._index=SceneManager.scene_windows.command2_index;
				this.commandOperateItem();
				this._itemCommandWindow._index=SceneManager.scene_windows.command3_index;
				this._actorCommandWindow.deactivate();
				this._otherCommandWindow.deactivate();
				SceneManager.initScene_windows()
			}
		}else{//从状态场景返回战斗场景
			this._actorCommandWindow._index=SceneManager.scene_windows.command1_index;
			this.commandOther();
			this._otherCommandWindow._index=SceneManager.scene_windows.command2_index;
			this._actorCommandWindow.deactivate();
			SceneManager.initScene_windows();
		}
	}
};
/** 
 * 开始队伍命令选择
 */
Pal_Scene_Battle.prototype.startPartyCommandSelection = function() {
    this._statusWindow.deselect();
    this._statusWindow.open();
	this.refreshStatus();
    this._actorCommandWindow.close();
	this.selectNextCommand();
	this.initWindons();
};

然后再对应的场景使用即可,不过现在发现问题还挺多的,比如会有明显的UI跳动痕迹,显示不自然等,后续慢慢优化吧!
主菜单场景的就不发出来了,那个写出来比战斗的场景简单太多了!

效果

这效果其实还挺有喜剧效果的。
在这里插入图片描述
将窗口打开的速度降低的最低后,可以看到最先出现的就是状态的显示。
在这里插入图片描述
正常来说应该先显示人物的战斗指令的,但看来没有先显示,同时额外战斗的指令窗口打开的也很有喜感,是在慢慢的不断拉开的效果,同时默认可以看到就在道具这个选项上,但这是从状态返回的啊;所有全部展开后,才跳到状态选项,所有会有UI跳动的情况。
在这里插入图片描述
这里可以看到额外物品的指令窗口是同步打开的,这里看着非常明显,但战斗的指令窗口却得等到这两个窗口全部展开后才能显示,之后就是指令下标的跳转,及UI的变动。
不知道大家有什么好的优化手段,可以提出来,学习学习大家的先进经验!!!

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

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

相关文章

ChatGPT、千问、讯飞星火等在工作中提高效率

提升代码效率 通义灵码 适配性 100多种主流语言(C/C、Java、Python、Go、JavaScript、TypeScript等语言表现更为出色)支持常用 IDE(VS Code、IntelliJ IDEA、GoLand、PyCharm、WebStorm、CLion、PhpStorm、Android Studio、Xcode、iCoding…

Python 使用 PyQt5 设计一个查询IP对话框程序

当前环境:Win10 x64 Python 3.8.10 PyQt5.15.2 PyQt-tools5.15.9.33 1 打开 designer.exe ,新建一个 Dialog without Buttons , 设计窗体。 C:\Python\Python38-32\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 2 使用命令转换为 py C:\Python\Pyth…

Spring Security之基于HttpRequest配置权限

前言 今天我们重点聊聊授权方式的另外一种:基于HttpServletRequest配置权限 基于HttpServletRequest配置权限 一个典型的配置demo http.authorizeHttpRequests(requestMatcherRegstry -> // /admin/** 需要有AMIND角色requestMatcherRegstry.requestMatcher…

StarRocks学习笔记

介绍场景建表明细模型聚合模型更新模型主键模型 介绍 StarRocks是一款经过业界检验、现代化,面向多种数据分析场景的、兼容MySQL协议的、高性能分布式关系型分析数据库。 StarRocks充分吸收关系型 OLAP 数据库和分布式存储系统在大数据时代的优秀研究成果&#xff…

LeetCode 热题 100 | 堆(三)

目录 1 队列 - v2.0 2 295. 数据流的中位数 2.1 解题思路 2.2 举例说明 2.3 维持队列 2.4 求中位数 2.5 完整代码 菜鸟做题&#xff0c;语言是 C 1 队列 - v2.0 排序规则果然和名字是反过来的&#xff1a; // 大根堆 priority_queue<int, vector<int>…

干货 | 2024 年 Elasticsearch 常见面试题集锦

当涉及到 Elasticsearch 开发者的面试时&#xff0c;问题通常会更专注于软件开发生命周期内与 Elasticsearch 集成的具体技术细节和实际应用场景。 以下是一些Elasticsearch开发相关的面试题目&#xff0c;题目来自死磕 Elasticsearch 知识星球。 1、Elasticsearch数据建模相关…

【MySQL系列】Public Key Retrieval is not allowed

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

人事管理系统设计与实现|jsp+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW调试部署环境&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java…

【科学计算与数学建模】logistic回归预测二分类

任务描述相关知识 数据集以及任务介绍 任务数据集数据属性信息提供的特征属性格式提交的数据格式实现方法—Logistic Regression 加载数据数据标准化逻辑回归模型验证集的使用&#xff08;Validation set&#xff09;训练过程画图函数测试数据的使用预测二分类编程要求测试说明…

ConcurrentHashMap源码分析

文章目录 ConcurrentHashMap源码分析jdk1.7版本重要成员变量put方法源码分析 jdk1.8版本重要成员变量put方法源码分析 ConcurrentHashMap源码分析 在集合类中HashMap是比较常用的集合对象&#xff0c;但是HashMap是线程不安全的。为了保证数据的安全性我们可以使用Hashtable&a…

【LLM】LongRoPE:LLM上下文窗口扩展方法及非官方实现

前言 目前&#xff0c;大多数LLMs的上下文窗口限制在4k个标记左右&#xff0c;这意味着模型在处理超过这个长度的文本时性能会下降。这种限制对于需要大量上下文信息的场景&#xff0c;虽然可以通过在更长的文本上进行微调来将预训练LLM的上下文窗口扩展上下文窗口&#xff0c…

【鸿蒙系统】 ---OpenHarmony加快本地编译(二)

&#x1f48c; 所属专栏&#xff1a;【鸿蒙系统】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢…

SpringBoot3集成PostgreSQL

标签&#xff1a;PostgreSQL.Druid.Mybatis.Plus&#xff1b; 一、简介 PostgreSQL是一个功能强大的开源数据库系统&#xff0c;具有可靠性、稳定性、数据一致性等特点&#xff0c;且可以运行在所有主流操作系统上&#xff0c;包括Linux、Unix、Windows等。 通过官方文档可以…

MySQL:表的操作

文章目录 创建表查看表结构修改表删除表 前面对于库的操作有了认识后&#xff0c;下面进行表的操作 创建表 以下图为例 创建表其实和定义结构体有点类似&#xff0c;总的来说就是先定义列名&#xff0c;然后后面跟着是列的数据类型&#xff0c;之后在定义结束后可以带上对应的…

校园圈子系统--自带校园跑腿功能,校园交友,校园陪玩,校园交友墙,地图找伴,二手市场等功能。源码交付,支持二开!APP小程序H5等移动端都有。

一、需求分析 在搭建校园论坛平台之前&#xff0c;我们需要进行详细的需求分析。这包括以下几个方面&#xff1a; 1.用户需求 我们需要了解目标用户群体的需求和喜好&#xff0c;包括学生的年龄层次、兴趣爱好、关注话题等。通过调查问卷、访谈等方式收集用户需求&#xff0c;为…

数学算法(算法竞赛、蓝桥杯)--最大公约数,欧几里得算法

1、B站视频链接&#xff1a;G05 最大公约数 欧几里得算法_哔哩哔哩_bilibili 题目链接&#xff1a;[NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 #include <bits/stdc.h> using namespace std; typedef long long LL; LL x,y,ans;LL gcd(LL a,LL b){return b0?…

包叔推荐12代i3-独显组装电脑主机配置清单

去年Intel第十代i5-依然是主流热选机型。 今年&#xff0c;随着i3-的价格优势越来越大&#xff0c;已经成功取代了i5-。 今天包叔推荐几套12代i3-独立显卡组装电脑主机配置。 列表&#xff1a;一组核心显示配置&#xff0c;其余三组均为独立显示配置。 适合主机预算在2000元至3…

JDK下载配置

一、JDK的作用 Java开发环境&#xff1a;JDK提供了完整的Java开发环境&#xff0c;包含编译器&#xff08;javac&#xff09;、解释器&#xff08;java&#xff09;、打包工具&#xff08;jar&#xff09;、文档生成工具&#xff08;javadoc&#xff09;等一系列工具&#xff0…

【高并发服务器 01】—— 基础知识回顾

接下来四周时间&#xff0c;我将会做一个高并发服务器相关的项目。 前置知识&#xff1a;操作系统系统编程、网络编程、基础的数据结构、C语言。 开发环境&#xff1a;VMware虚拟机&#xff1a;Ubuntu 20.04.6 LTS、vscode 今天先回顾一些基础知识。 1.文件与IO 标准IO&#…

软件测试教程 性能测试概论

文章目录 1. 性能测试实施的流程1.1 常见的性能问题1.2 性能测试是什么&#xff1f;1.3 性能测试和功能测试之间的区别1.4 什么样的系统/软件表现属于性能好&#xff0c;什么样的软件性能表现属于性能不好1.5 为什么要进行性能测试1.6 性能测试实施的流程1.7 常见的性能指标以及…