【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.pswp.cn/bicheng/21494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21494.shtml
英文地址,請注明出處:http://en.pswp.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…

代碼隨想錄算法訓練營Day55 | 583. 兩個字符串的刪除操作 72. 編輯距離 編輯距離總結篇

代碼隨想錄算法訓練營Day55 | 583. 兩個字符串的刪除操作 72. 編輯距離 編輯距離總結篇 LeetCode 583. 兩個字符串的刪除操作 題目鏈接&#xff1a;LeetCode 583. 兩個字符串的刪除操作 思路&#xff1a; 分別刪除 class Solution { public:int minDistance(string word1, …

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…

【MySQL】探索 MySQL 中的 NVL:使用 IFNULL 和 COALESCE 實現

緣分讓我們相遇亂世以外 命運卻要我們危難中相愛 也許未來遙遠在光年之外 我愿守候未知里為你等待 我沒想到為了你我能瘋狂到 山崩海嘯沒有你根本不想逃 我的大腦為了你已經瘋狂到 脈搏心跳沒有你根本不重要 &#x1f3b5; 鄧紫棋《光年之外》 什么是 NVL…

PyTorch使用tensorboard的SummaryWriter報錯

PyTorch使用tensorboard可以顯示網絡運行情況,但偶爾使用SummaryWriter時遇到Segmentation fault錯誤。 利用python3的faulthandler,可定位到出錯的代碼行,具體操作有兩種方式如下: (1) 在代碼中寫入faulthandler import faulthandler # 在import之后直接添加以下啟用代碼…

探索數據結構:便捷的雙向鏈表

&#x1f511;&#x1f511;博客主頁&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列專欄&#xff1a;漸入佳境之數據結構與算法 歡迎來到泊舟小課堂 &#x1f618;博客制作不易歡迎各位&#x1f44d;點贊?收藏?關注 ?? 前言 前面我們學習了單鏈表&#xff0c;它解…

k8s常用命令(持續更新中)

1. 常用命令 # 查看命名空間下的所有pod kubectl get pod -n 命名空間 # 查看某命名空間下某個pod的日志 kubectl logs -f -n 命名空間 pod名# 查看某命名空間下某pod的詳細信息 kubectl describe pod pod名 -n 命名空間# 查看所有命名空間下pod kubectl pods --all-namespac…

等保測評核心對象概覽及實施要點

等保測評的對象主要包括以下幾個方面&#xff1a; 1. 信息系統&#xff1a;由計算機硬件、網絡和通信設備、計算機軟件、信息資源、信息用戶和規章制度組成的以處理信息流為目的的人機一體化系統。常見的信息系統包括辦公自動化系統(OA)、客戶關系管理系統、進銷存管理系統等。…

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…

一篇文章掌握Java的80%:面向對象與并發編程

Java作為一種廣泛使用的計算機編程語言&#xff0c;其強大之處在于其面向對象的特性和對并發編程的良好支持。作為一名程序員&#xff0c;我深知掌握Java的面向對象概念、集合框架、多線程與并發編程&#xff0c;以及JVM基礎對于編寫高效、可維護的代碼至關重要。本文將引導你快…

操作字符串獲取文件名字(包含類型)

記錄一種操作字符串獲取文件名字的操作方式&#xff0c;方便后期的使用。示例&#xff1a; 輸入&#xff1a;"D:/code/Test/Test.txt" 輸出&#xff1a;"Test.txt" 設計思路&#xff1a; 首先查找路徑中最后一個”/“&#xff0c;然后再通過字符串截取的…

湖南源點調研 為什么中小企業產品上市前一定要做市場調研?

本文由湖南長沙&#xff08;產品前測&#xff09;源點調研咨詢編輯發布 可能有很多企業主會表示&#xff0c;市場調研&#xff0c;產品調研&#xff0c;不都是大公司、大品牌、上市公司才會有的流程嗎&#xff0c;像我們這種小企業、小品牌、小廠家沒有必要去那么做&#xff0…

Python文本分詞工具庫-jieba

內容目錄 一、分詞二、設置分詞三、詞性信息四、關鍵詞提取 jieba庫是一個針對中文文本的分詞工具庫&#xff0c;廣泛應用于自然語言處理&#xff08;NLP&#xff09;領域的中文文本預處理階段。 主要功能: 中文分詞&#xff1a;能夠將連續的中文文本切割成有意義的詞語序列&a…

變壓器中性點接地電阻柜的出廠標準是什么

變壓器中性點接地電阻柜的出廠標準是什么&#xff1f; 現代電氣配電系統中&#xff0c;接地電阻是保障人身安全的非常重要的設施。在高壓電氣設備中&#xff0c;中性點接地電阻柜的作用是限制設備中的過電流和短路故障所產生的電流&#xff0c;以保障人身安全。變壓器中性點接…