设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 6711|回复: 7
打印 上一主题 下一主题

[已经解决] 怎么让角色停在那里不移动?

[复制链接]

Lv3.寻梦者

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
帖子
136
跳转到指定楼层
1
发表于 2016-1-30 22:43:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RT ,就是想要达到开启一个开关后可以让玩家停在原地不能动,就算按了方向键,鼠标点击也不动。怎么破~

Lv1.梦旅人

梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
帖子
416
2
发表于 2016-1-30 22:46:55 | 只看该作者
.在事件页里设置玩家的移动路线:等待
  点我进入    
       ↓      
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
帖子
136
3
 楼主| 发表于 2016-1-30 22:55:48 | 只看该作者
夏末渐离 发表于 2016-1-30 22:46
.在事件页里设置玩家的移动路线:等待

明白了,只要设置公共事件在开关开启时并行处理循环玩家的移动路线并等待,就可以使玩家固定在那里~
但是有没有插件类型的呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
4
发表于 2016-1-30 23:05:46 | 只看该作者

  1. //输入 移动
  2. Game_Player.prototype.moveByInput = function() {
  3.     //假设是 120号开关打开时才能移动
  4.     if (!this.isMoving() && this.canMove() &&  $gameSwitches.value(120) ) {
  5.         var direction = this.getInputDirection();
  6.         if (direction > 0) {
  7.             $gameTemp.clearDestination();
  8.         } else if ($gameTemp.isDestinationValid()){
  9.             var x = $gameTemp.destinationX();
  10.             var y = $gameTemp.destinationY();
  11.             direction = this.findDirectionTo(x, y);
  12.         }
  13.         if (direction > 0) {
  14.             this.executeMove(direction);
  15.         }
  16.     }
  17. };
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
帖子
416
5
发表于 2016-1-30 23:33:23 | 只看该作者
汪汪 发表于 2016-1-30 23:05
  1. var XM_160130_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     if ($gameSwitches.value(120))
  4.     {
  5.         return false;
  6.     }
  7.     XM_160130_canMove.call(this);
  8.     return true;
  9. };
复制代码

点评

......好吧.  发表于 2016-1-31 01:17
因为开关本来默认就是false的呀。你加在那儿且不是使moveByInput这个方法失效了?  发表于 2016-1-31 01:08
话说……楼下的话我的哪里有错误的说?  发表于 2016-1-31 00:35
  点我进入    
       ↓      
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
帖子
136
6
 楼主| 发表于 2016-1-31 00:00:42 | 只看该作者
汪汪 发表于 2016-1-30 23:05

为什么我开了120号开关可是人物还是不能移动?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
帖子
136
7
 楼主| 发表于 2016-1-31 00:06:49 | 只看该作者
夏末渐离 发表于 2016-1-30 23:33

目的达到了~而且换了开关号,测试多次也没有BUG~多谢啦
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
8
发表于 2016-1-31 01:10:37 | 只看该作者
黑or白 发表于 2016-1-31 00:06
目的达到了~而且换了开关号,测试多次也没有BUG~多谢啦 ...

好吧.上一个有的地方没有考虑.....
@夏末渐离 原来返回的结果需要继承的..
  1. var XM_160130_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     if ($gameSwitches.value(120))
  4.     {
  5.         return false;
  6.     }
  7.    
  8.     return XM_160130_canMove.call(this);
  9. };
复制代码
  1. var XM_160130_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     return !$gameSwitches.value(120) &&  XM_160130_canMove.call(this);
  4. };
复制代码

点评

于是晚安了  发表于 2016-1-31 01:31
call大概是使用原方法。但现方法不会直接返回原方法的返回值。以及……什么是五行缺水计划……  发表于 2016-1-31 01:26
我只记得call继承的是方法  发表于 2016-1-31 01:21
已加入五行缺水计划。  发表于 2016-1-31 01:20
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-23 15:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表