请问MV有没有能自定义碰撞体积的插件
rpgmakermv吧
全部回复
仅看楼主
level 3
洎冀 楼主
现在图块的碰撞体积默认是一个方形,有没有能配合点位移动系统自定义碰撞体积的插件,实现沿着斜向的墙走或者触碰不规则物体边缘呀
2025年03月29日 05点03分 1
level 9
是行走图碰撞还是图片碰撞啊,又或者是战斗图的碰撞?
[星星月亮]
RPG Maker 官方 DLC |Gotcha Gotcha 游戏
rpgmakerofficial.com/product/makerofficialdlc/en/
行走图的碰撞的话,让浏览器把上面这个网页翻译成中文,点击资源类型,然后点击插件,就能找到下面这个差劲了。
Rosedale Collision Altering 插件
Rosedale Collision Altering Plugin
记得让浏览器显示原文,然后复制英文的插件名去steam搜索,因为这里是全球一个价,而中国大陆在steam是中价区还是低价区,还能时不时的等到打折。
搜索的时候记得把——依语言缩小范围——这里的语言,或者是其他的限定条件都给取消掉打勾,记得注意英文名的间隔,steam搜索是有问题的。
[星星月亮]
非常好的脚本调用手册 - RPG Maker MV 讨论区 - Project1
rpg.blue/forum.php?mod=viewthread&tid=405671
如果是图片碰撞的话,上面这个帖子有大量的脚本,比如下面这些。
图片坐标x,
$gameScreen.picture(id)._x
图片坐标y
$gameScreen.picture(id)._y
图片宽度倍率
$gameScreen.picture(id)._scaleX
图片高度倍率
$gameScreen.picture(id)._scaleY
[星星月亮]
好像可以通过获取图片的左上角位置,然后加上图片的宽度和图片的高度(缩放率这种东西就还是不要搞了,太麻烦了,要缩放直接到修图软件那里去缩放好了),这样就获得了图片的位置了。
然后就检测两个图片的范围有没有重合了。
这样好像是可行的,又好像很麻烦。
我一下子想不明白应该怎么写脚本,不知道有没有大佬可以写出来让大家照抄。
下面这个是我用来测试鼠标点击图片的截图。
这个截图的Picture是Picture.png图片,写后缀的话会报错。
$游戏屏幕。显示图片(图片ID、名称、原点、x、y、缩放x、缩放y、不透明度、混合模式)
$gameScreen.showPicture(pictureId, name, origin, x, y,scaleX, scaleY, opacity, blendMode)
上面这个脚本在上面的脚本合集那里也能找到。
为了测试,图片的坐标设置在左上角的0,0这个位置,两个350分别是图片的宽和高,
直接在img\pictures文件夹找到文件后,右键、属性详细信息那里可以看到。
[星星月亮]
想要战斗图的碰撞的话,好像没有这个需求吧,说不定会有这种插件,谁知道呢?
B站、各个交流论坛和plugin.fungamemake.com这个网站都有大量的插件。
RPGMAKER MV中后,敌群如何调整敌人图层前后_rpgmakermv吧_百度贴吧
https://tieba.baidu.com/p/9517259405?fid=20322270&pid=151720732008#151720732008
2025年03月29日 15点03分 2
level 9
可以看到Actor1_1有点眼熟,这个是MZ版的默认素材。
$gameScreen.showPicture("1","Picture",0,0,0,100,100,255,0)
而脚本框里面的上面这行好像是不起作用的,是我前段时间在测试的时候乱写的,应该是当时脑子乱乱的,随便复制了脚本放在这里就忘记删了。
真正起作用的是脚本框里面的那些代码,是那些代码设置的点击范围就是显示图片这个事件指令的设置是同一个位置。
我是发了2楼的时候才发现有点不对劲的。
[星星月亮]
由于Actor1_1是MZ版默认的素材,而我MV版的RPG Maker MV\NewData\img这个路径没有pictures文件夹,我不确定时不时被我给移动到MZ版这里来了。
所以,我不确定MV版自带的图片素材有没有Actor1_1这个,MZ版可以直接把下面这段抄到事件页的脚本框那里,让事件页并行执行就能点击图片了。
MV版的话,到工程文件夹的img\pictures文件夹找一下,找到一个大概在330乘以350图片,复制这个图片名来替换掉下面这个脚本的Actor1_1就可以了。
[汗]
//测试鼠标点击图片
$gameScreen.showPicture("1","Actor1_1",0,0,0,100,100,255,0);
x=TouchInput.x; y=TouchInput.y;
if(x>=0 && x<=330){
if(y >= 0 && y <= 350){
if(TouchInput.isPressed()){$gameMessage.add("你叫我干什么呢?") }}}
2025年03月29日 16点03分 3
level 9
虽然我之前就想过要不要找到检测两张图片碰撞的方法,但是觉得只是想了一想,
在现在准备制作的游戏中好像不需要用到,所以就瞎混瞎混,懒得去试着做了。
现在今天好像是搞出来了,简单测试了一下,好像是可以。
[星星月亮]
虽然你这个帖子说的应该是地图上行走图的碰撞,但是因为这个帖子我才停止玩游戏,静下心来慢慢搞的。
所以就发在这里吧,我觉得简短的代码、功能单一的代码都属于技术交流而不是技术专利,所以用得到的话就直接复制过去吧,我自己也是这样干的,看见这样的公开的、简短的、功能单一的代码,都是直接复制粘贴的。
我还发过一些其他的脚本,不管是从别人那里复制过来的,还是自己测试出来的,都一样。
[星星月亮]
只是,MZ版的脚本框可以上下拉伸,而MV版超过12行的代码就会放不进去。
可以把代码复制给AI,让它把多行的代码变成不超过12行的代码,就是在第一行代码的行尾加上;这个符号,
就可以把第二行的代码跟在第一行的后面了。
反正MV版的脚本框是可以横向拉伸的。
[星星月亮]
//测试两张图片碰撞
x1=$gameScreen.picture(1)._x
y1=$gameScreen.picture(1)._y
x2=$gameScreen.picture(2)._x
y2=$gameScreen.picture(2)._y
//上面这四行是获得图1和图2的左上角坐标像素点。
k1=330
g1=350
k2=330
g2=350
//上面这四行是手动设置图1和图2的宽和高,在网页那里获得图片的宽和高,好像是通过HTML来获得的。。。不知道是不是可以让JavaScript本身来获得图片的宽高。。。所以,还是手动设置吧,而宽330高350好像是rpgmakerMZ半身像的默认大小。
//tu2k是图2宽
tu2k = new Array();
for(let i=x2;i<=x2+k2;i++){
tu2k.splice(0/*在1号位置(从0开始算起)*/,0/*移除0个元素*/,i/*在这里拼接i元素*/);
tu2k.sort((a, b) => a - b)
}
//tu2g是图2高
tu2g = new Array();
for(let i=y2;i<=y2+g2;i++){
tu2g.splice(0/*在1号位置(从0开始算起)*/,0/*移除0个元素*/,i/*在这里拼接i元素*/);
tu2g.sort((a, b) => a - b)
}
//在上面,通过for循环让图2的X坐标和图2的宽度获得了一个叫做图2宽的数组。。。通过for循环让图2的Y坐标和图2的高度获得了一个叫做图2高的数组。。。然后在下面使用for循环让图2宽和图2高数组里面的每一个元素检查一下是不是在图1的那个范围那里,只要有一个图2宽和图2高的元素在那个范围,那就是两张图片重合了。。。就跟我在2、3楼说的检测鼠标是不是在图片的那个范围那里是一样的。
for(j=tu2k[0];j<=tu2k[0]+tu2k.length;j++){
if(j>=x1 && j<=x1+k1){
for(l=tu2g[0];l<=tu2g[0]+tu2g.length;l++){
if(l>=y1 && l<=y1+g1){
$gameMessage.add("你碰到我了")
}
}
}
}
[星星月亮]
测试了一下,好像是可以的,上面这一段放在一个事件页的脚本框那里,需要并行执行。
下面这三个事件指令放在另一个事件页那里,需要并行执行。
[星星月亮]
◆显示图片:#1, Actor1_1, 左上 (400,300), (100%,100%), 255, 正常
◆显示图片:#2, Actor1_2, 左上 (1000,200), (100%,100%), 255, 正常
◆移动图片:#2, Linear, 左上 (600,200), (100%,100%), 255, 正常, 120帧 (等待)
2025年03月30日 15点03分 4
这个脚本好像还可以再优化一下的。。就是自动检测图片的宽高。。还有就是在检测图1和图2是否有部分重叠这里,如果引入图3、图4,然后检测这几张图片互相之间有没有部分重合,这样的代码好像就不行了。。。如果是高手写插件的话,好像是可以互相检测的,而这种只能手动设置的单向检测是低效的。
2025年03月30日 16点03分
level 9
因为在这里写了点击图片和图片碰撞的方法,想着要不要顺便在Project1也发一个帖子,
于是就在那里搜索了——碰撞——,发现有大把关于碰撞的帖子。
下面这几个好像就是你说的关于——点位移动系统自定义碰撞体积——斜向的墙或者触碰不规则物体边缘——
[星星月亮]
像素移動.事件和玩家碰撞 - RPG Maker MZ 讨论区
rpg.blue/thread-483226-1-1.html
检测事件与事件碰撞或玩家与事件碰撞的插件 - RPG Maker MV 讨论区
rpg.blue/thread-478795-1-1.html
MV有哪个插件可以实现斜向碰撞面? - RPG Maker MV 讨论区
rpg.blue/thread-400451-1-1.html
关于事件的碰撞体积设置 - RPG Maker VX Ace 讨论区
rpg.blue/thread-369474-1-1.html
2025年03月30日 16点03分 5
我的天哪太感谢了,之前以为没收到回复于是手动优化了地图,我这就去研究一下,太感谢了!
2025年06月12日 12点06分
1