【RPG Maker MV 仿新仙剑 角色更随者移动】

发布于:2024-05-21 ⋅ 阅读:(127) ⋅ 点赞:(0)

移动显示精灵

4方向

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

8方向

最开始的4方向算是完成了,从截图中可以看到更随者可以跟着领队进行前进,可谓是皆大欢喜的!
不过有好的就有不足的地方:
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
领队可以斜向行走,而跟随者却不行,这是为什么呢?(这里说明下:这个斜向行走是图片上展现的,而不是实际操作时不能8方向行走)
若是没有猜错,应该还有一个对应的类是处理更随者的精灵图片的,而现在我也将探索下这个及完成主角团的正常8方向行走!!!

修改更随者的移动操作

发现这个 Game_Followers 和 Game_Follower 类,这两个类都是操作跟随者的,但很明显一个是操作整体的,一个是里面单独的一个。前者是队伍的管理者,后者是具体的某个跟随角色。

源码展示

Game_Followers.prototype.updateMove = function() {
for (var i = this._data.length - 1; i >= 0; i–) {
var precedingCharacter = (i > 0 ? this._data[i - 1] : $gamePlayer);
this._data[i].chaseCharacter(precedingCharacter);
}
};

从这个方法中找到了具体的跟随者,并将其的角色对象传入到具体跟随者的方法中去。

Game_Follower.prototype.chaseCharacter = function(character) {
var sx = this.deltaXFrom(character.x);
var sy = this.deltaYFrom(character.y);
var d=-1;
if (sx !== 0 && sy !== 0) {
if(sx>0&&sy>0){
d=7;
}else if(sx<0&&sy<0){
d=3;
}else if(sx>0&&sy<0){
d=1;
}else if(sx<0&&sy>0){
d=9;
}
this.moveDiagonally(sx > 0 ? 4 : 6, sy > 0 ? 8 : 2,d);
} else if (sx !== 0) {
this.moveStraight(sx > 0 ? 4 : 6);
} else if (sy !== 0) {
this.moveStraight(sy > 0 ? 8 : 2);
}
this.setMoveSpeed($gamePlayer.realMoveSpeed());
};

在这里面获取了角色在地图上的坐标,并确定对应的方向,之后将方向对应到移动的方法中即可。这里面d为斜向的方向,它的值就是角色在斜向的行走图,这部分也是对应在源码中找到并添加的部分。
这样整个角色更随者移动就算是完成了!!!


网站公告

今日签到

点亮在社区的每一天
去签到