Project1

标题: analog move在远景地图斜向行走事件抖动的问题 [打印本页]

作者: doranikofu    时间: 2016-1-31 14:54
标题: analog move在远景地图斜向行走事件抖动的问题
http://forums.rpgmakerweb.com/in ... og-move/&page=1
sanshiro的analog move
目前移动插件感觉就这个手感最好了,不管是键盘鼠标还是移动设备触屏的手感都不错
可是发现一个比较抽的bug,就是如果用远景地图的话(文件名前面加!,类似以前的双远景那种远景图跟着地图滚动的)
移动的时候八向行走的时候事件会严重的会抖动
视频示意如下:
http://www.tudou.com/programs/view/2xvSOTxQOGA/
四向走的时候感觉抖动不明显,斜向走的时候可以看到其他事件有严重的抖动(地图的名称是事件做的)
这个问题同样在远景地图的npc上出现

试了下如果不用远景地图没有这个问题(普通远景,文件名不加!,远景不和地图一起滚动)

作者似乎联系不上了,不知道有木有小伙伴对这个插件比较懂的有啥参考意见
作者: doranikofu    时间: 2016-1-31 15:13
刚才用了一个纯色白底的远景地图
然后就看不出来抖了
看来不是事件在抖而是远景图滚动的时候在抖。。。
看默认的js,远景的滚动是跟着地图走的

rpg_object.js
JAVASCRIPT 代码复制
  1. Game_Map.prototype.setDisplayPos = function(x, y) {
  2.     if (this.isLoopHorizontal()) {
  3.         this._displayX = x.mod(this.width());
  4.         this._parallaxX = x;
  5.     } else {
  6.         var endX = this.width() - this.screenTileX();
  7.         this._displayX = endX < 0 ? endX / 2 : x.clamp(0, endX);
  8.         this._parallaxX = this._displayX;
  9.     }
  10.     if (this.isLoopVertical()) {
  11.         this._displayY = y.mod(this.height());
  12.         this._parallaxY = y;
  13.     } else {
  14.         var endY = this.height() - this.screenTileY();
  15.         this._displayY = endY < 0 ? endY / 2 : y.clamp(0, endY);
  16.         this._parallaxY = this._displayY;
  17.     }
  18. };


不知道是哪个地方抽了,analog move里面地图没有抖,远景图倒是抖了。搜了下也没看到parallax的相关代码
作者: zx2kk    时间: 2019-4-12 12:32
正好也遇到了这个过期问题,来回答一下,希望斑竹高抬贵手
拜托了一下懂的人,把这段加到插件后面就行了

JAVASCRIPT 代码复制
  1. Spriteset_Map.prototype.updateTilemap = function() {
  2.     //图块地图 原点 x = 游戏地图 显示x() * 游戏地图 图块宽()
  3.     this._tilemap.origin.x = $gameMap.displayX() * $gameMap.tileWidth();
  4.     //图块地图 原点 y = 游戏地图 显示y() * 游戏地图 图块高()
  5.     this._tilemap.origin.y = $gameMap.displayY() * $gameMap.tileHeight();
  6.  
  7.     this._tilemap.origin.x = Math.round(this._tilemap.origin.x)
  8.     this._tilemap.origin.y = Math.round(this._tilemap.origin.y)
  9. };


测试了一下远景图滚动也没问题,如果要用无限图层插件的话还是会抖,不过我用的UIDS里面有个loop功能,设置成跟地图一样大小后再写上【"loop": true,】就没问题了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1