查看: 9749|回复: 12

[原创发布] 关于碰撞的脚本

[复制链接]
梦石
0
星屑
7735
在线时间
1227 小时
注册时间
2008-12-14
回帖
504
发表于 2019-1-28 11:20:03 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 if216 于 2019-1-28 18:40 编辑

找了半天才找到。。。记录备份在此

//判断角色和角色是否碰撞
Game_CharacterBase.prototype.isCollidedWithCharacters = function(x, y) {
     return this.isCollidedWithEvents(x, y) || this.isCollidedWithVehicles(x, y);
};

//判断角色和事件是否碰撞
Game_CharacterBase.prototype.isCollidedWithEvents = function(x, y) {
      var events = $gameMap.eventsXyNt(x, y);
      return events.some(function(event) {
....
  };

//判断事件和事件是否碰撞
Game_Event.prototype.isCollidedWithEvents = function(x, y) {

//判断某一图块是否可通行
Game_CharacterBase.prototype.isMapPassable = function(x, y, d) {
    var x2 = $gameMap.roundXWithDirection(x, d);
    var y2 = $gameMap.roundYWithDirection(y, d);
    var d2 = this.reverseDir(d);
    return $gameMap.isPassable(x, y, d) && $gameMap.isPassable(x2, y2, d2);
};



跟角色有关的,用$gamePlayer直接调用。如 $gamePlayer.isCollidedWithEvents(x,y)

跟事件有关的要先得到事件,用事件调用。
如:$gameMap.event(eventID).isCollidedWithEvents(x,y)
或:$gameMap.eventIdXy(x, y).isCollidedWithEvents(x,y)

还不会用的话。。。看图
2.png
1.jpg
3.png
4.png

评分

参与人数 3赞 +3 收起 理由
黑舞嗜 + 1 精品文章
康姆图帕帕 + 1 塞糖
白嫩白嫩的 + 1 精品文章

查看全部评分

需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
梦石
0
星屑
3922
在线时间
1198 小时
注册时间
2016-8-9
回帖
2355

开拓者

发表于 2019-1-28 14:54:19 | 显示全部楼层
哇 这个太棒了,可以写个npc大乱斗的场景了
酸酸甜甜就④哇噢
回复

使用道具 举报

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
回帖
651
发表于 2019-1-28 14:56:33 | 显示全部楼层
那么问题来了,怎么用呢,比如事件与事件碰撞
roguelike求生RPG研发中....
回复

使用道具 举报

梦石
0
星屑
7735
在线时间
1227 小时
注册时间
2008-12-14
回帖
504
 楼主| 发表于 2019-1-28 14:59:18 | 显示全部楼层
黑舞嗜 发表于 2019-1-28 14:56
那么问题来了,怎么用呢,比如事件与事件碰撞

你需要先看这个:
https://rpg.blue/thread-405671-1-1.html

点评

OK 感谢~~~  发表于 2019-1-28 15:28
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复

使用道具 举报

梦石
0
星屑
7735
在线时间
1227 小时
注册时间
2008-12-14
回帖
504
 楼主| 发表于 2019-1-28 15:02:46 | 显示全部楼层
跟角色有关的,用$gamePlayer直接调用。如 $gamePlayer.isCollidedWithEvents(x,y)

跟事件有关的要先得到事件,用事件调用。
如:$gameMap.event(eventID).isCollidedWithEvents(x,y)
或:$gameMap.eventIdXy(x, y).isCollidedWithEvents(x,y)

点评

$gameMap.eventIdXy(x, y).isCollidedWithEvents(x,y)这段脚本如何理解,eventIdXy指的是哪个事件的xy?  发表于 2020-4-14 17:11
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复

使用道具 举报

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
回帖
651
发表于 2019-1-28 15:48:31 | 显示全部楼层
恕我愚钝....即使取得了事件,这个条件分歧也还是不会用额..里面就只有x和y,难道不应该是填两个事件的ID么,这个没有例子真看不懂...
roguelike求生RPG研发中....
回复

使用道具 举报

梦石
0
星屑
7735
在线时间
1227 小时
注册时间
2008-12-14
回帖
504
 楼主| 发表于 2019-1-28 18:42:35 | 显示全部楼层
黑舞嗜 发表于 2019-1-28 15:48
恕我愚钝....即使取得了事件,这个条件分歧也还是不会用额..里面就只有x和y,难道不应该是填两个事件的ID么 ...

看图吧,范例是不可能放了。我本身不会这样做。纯粹演示。
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 1 0

使用道具 举报

梦石
0
星屑
5816
在线时间
971 小时
注册时间
2015-2-6
回帖
123

开拓者

发表于 2019-1-29 21:15:06 | 显示全部楼层
我找到一个插件,应该能帮助你的工作
https://forums.rpgmakerweb.com/i ... on-detection.58568/
此书生之言,可言而不可用也 ↑-_-||

仓管610早晚班,没多余精力做别的了 →_→
回复 1 0

使用道具 举报

梦石
0
星屑
1864
在线时间
255 小时
注册时间
2018-7-5
回帖
62
发表于 2019-2-1 20:24:32 | 显示全部楼层
用在射击类ARPG上估计能省好几页事件和独立开关
回复

使用道具 举报

梦石
0
星屑
25355
在线时间
1136 小时
注册时间
2019-3-5
回帖
1303
发表于 2020-4-14 13:20:58 | 显示全部楼层
本质还是判定坐标。不过倒是省了几个变量。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部