个人记录保存
Project1论坛 小圈子 人才 不得学习技术
搜集了一些常用功能 以后不用翻源代码
Game_Event 逻辑功能在这里
Sprite_Character 图形显示在这里
判断是什么角色
javascript
if (this._character instanceof Game_Event) {
// 地图事件
} else if (this._character instanceof Game_Player) {
// 玩家
} else if (this._character instanceof Game_Follower) {
// 随从
}
地图角色事件获取
javascript
$gameMap.event(5) //获取事件
$gamePlayer //获取玩家
$gamePlayer.followers().follower(0) //获取随从
this.character() //当前事件 事件页内
$gameMap.character(id) // 通用(0=玩家,1~=事件)
遍历地图上所有的事件拿到事件本身 做自己想做的事情
javascript
$gameMap.events().forEach(event => {
// event = 当前循环到的 每一个事件
});
让地图上所有事件暂停不动弹 可以执行自己的代码功能然后在恢复所有事件运行
javascript
//强制静止
$gameMap.events().forEach(ev => (ev._oldMoveType = ev._moveType, ev._moveType = 0));
javascript
//恢复正常
$gameMap.events().forEach(ev => ev._oldMoveType && (ev._moveType = ev._oldMoveType, delete ev._oldMoveType));
让某个id的事件静止不动
javascript
//事件会转向角色
$gameMap.event(5).lock();
//解除
$gameMap.event(5).unlock();
// 暂停 不转向
const ev = $gameMap.event(5);
ev._oldMoveType = ev._moveType;
ev._moveType = 0;
// 恢复
const ev = $gameMap.event(5);
if (ev._oldMoveType !== undefined) {
ev._moveType = ev._oldMoveType;
delete ev._oldMoveType;
}
判断地图某个事件是否存在
javascript
//遍历所有事件
const hasEnemy = $gameMap.events().some(e=>e.event().name === "牛头军" && !e._erased);
if(hasEnemy ){
//存在
}else{
//不存在
}
//具体某个id的事件 没消失还存在
$gameMap.event(5) && !$gameMap.event(5)._erased
让某个事件彻底消失
javascript
$gameMap.event(5).erase();
//恢复方法
$gameMap.event(5)._erased = false;
$gameMap.event(5).refresh();
移动某个事件 到指定位置
javascript
$gameMap.event(4).locate(6, 2);
事件存在并且没有运行的事件页
javascript
$gameMap.event(5) && $gameMap.event(5)._pageIndex < 0
让具体的某个事件播放动画
javascript
$gameTemp.requestAnimation([$gameMap.event(5)], 1);
为事件添加自定义属性变量 逻辑数据
javascript
const _Game_Event_initialize = Game_Event.prototype.initialize;
Game_Event.prototype.initialize = function(mapId, eventId) {
_Game_Event_initialize.call(this, mapId, eventId);
this._new_index = 0; //自定义的变量 后续可以获取到 自行操作
};
事件的图像
javascript
const _Sprite_Character_prototype_initialize = Sprite_Character.prototype.initialize;
Sprite_Character.prototype.initialize = function(character) {
_Sprite_Character_prototype_initialize.call(this, character);
//character就是逻辑对象 Game_Event.prototype.initialize 定义的变量可以直接获取
character._new_index = 1; 改编自定义值
};
持续更新中。。。。。。