广场
工具/教程/素材
超评测活动结果
第29届极短篇游戏制作比赛
优秀游戏推荐
非官方运行时(20250730)
登录
RPGMaker工具集[20250416]
基础教程
授权素材推广
优秀原创游戏区
精品推荐贴
【RGD】DirectX驱动的RMVA
RGSS3 - runtime by Lanza
【RGM】RGModern - RMXP新runtime
【URGE】兼容 XP/VX/Ace 三系通用跨平台游戏引擎
Project1
»
广场
›
技术讨论
›
RPG Maker MV 讨论区
›
救命,背包里面按下键不能移动下去
返回列表
发新帖
查看:
2039
|
回复:
2
[有事请教]
救命,背包里面按下键不能移动下去
[复制链接]
蜜橘团子
蜜橘团子
当前离线
赞
5
VIP
好人卡
积分
3
经验
最后登录
2023-9-24
在线时间
169 小时
写轮眼
梦石
0
星屑
338
在线时间
169 小时
注册时间
2022-7-14
回帖
83
发消息
发表于 2023-1-24 10:57:18
|
显示全部楼层
|
阅读模式
悬赏
66
星屑
已解决
本帖最后由 蜜橘团子 于 2023-1-24 11:10 编辑
是这样的,这个应该是一个默认机制,假设你背包看不见的地方只有一个物品,你在另外一边按就下不去,
虽然这可能有什么科学道理,但是我想玩家不论在背包左边还是右边,只要下面有东西就能按下去,无论如何按下键都会有反馈
这只是一个更方便大家理解的示范图,战斗游戏可能无所谓,但如果我们拥有一个小背包的解谜游戏,就会出现很大的问题了
总有玩家在另一边按不下去,他们就会以为下面没有东西了,就会卡关了
因为他们不天天吃药,不开药店,他们可能有一把彩虹钥匙或是一封公主的信件在背包底部,如果玩家没按下去,就找不到了
有些玩家是不够灵活或是懒惰的,如果背包行数很小,物品很少的情况,他不会首先条件反射到,“诶,我右边的背包按键下不去,应该移动到左边的背包再按下键试试看”
这是很怪异的,也不可以不应该去期盼的
(因为这是一个没有全屏背包的情况,全屏背包就相当于在机场飙车,小背包相当于在小饭店的地下车库飙车,那种车库视野很小,很挤,天花板很低,很不开朗
玩家如果在地下车库的背包就不会喜欢左右乱动了,这是一个长久形成的背包氛围,所以导致玩家在另一边的背包按不下去可能就退出了)
我不想玩家花精力在解谜上和记忆东西上,结果我还在他的小背包里下了套,让他们有概率找不到,垫底的一个物品
这样是很让玩家伤心的,愤怒的,我也不可以期待玩家在认真解谜的过程中,还要记住他们获得的那么多物品的名字什么的
作为制作者的我,都已经遇见背包按不下去,我以为又出bug没添加或删除了物品的情况!
更何况数量更多的玩家呢,因为不是所有的玩家,都很聪明勇敢自信敏捷的,他们绝对有一部分在小背包的情况会按不下去就以为没东西了
救命啊!请大家帮帮我!,我想背包在下得去的情况,玩家怎么样按下键,都可以下得去!
因为真的可以下得去,本来就可以下得去嘛!下面本来就有一个东西,怎么办啊!
有没有改善这个情况的插件或是改游戏本身的背包逻辑呢...谢谢!
最佳答案
天一教主
查看完整内容
重写道具列表的向下按键的函数逻辑,Window_ItemList替换成Window_Selectable,可以让基于Window_Selectable的窗口都适用这个规则
回复
使用道具
举报
提升卡
沉默号角
喧嚣号角
变色卡
升龙剑
天一教主
天一教主
当前离线
赞
7
VIP
好人卡
积分
8
经验
最后登录
2026-5-26
在线时间
56 小时
写轮眼
梦石
0
星屑
782
在线时间
56 小时
注册时间
2017-8-8
回帖
30
发消息
发表于 2023-1-24 10:57:19
|
显示全部楼层
Window_ItemList.prototype.cursorDown = function(wrap) {
var index = this.index();
var maxItems = this.maxItems();
var maxCols = this.maxCols();
//最大行 下标
var maxRows = this.maxRows() - 1;
var nowCol = index % maxCols;
var nowRow = Math.floor(index / maxCols);
if (index < maxItems - maxCols || (wrap && maxCols === 1)) {
this.select((index + maxCols) % maxItems);
} else if (maxItems % maxCols > 0 && nowRow !== maxRows) {
//存在不是整行都有Item并且当前行不是最大行下标的,选取最大行第一个。例如2列道具 最后一行只有1个道具。
this.select(maxCols * maxRows);
// this.select(maxItems); //直接选取最后一个
} else if (nowRow === maxRows) {
//当前行是最大行 会跳至第一行的当前列
this.select(nowCol);
}
};
复制代码
重写道具列表的向下按键的函数逻辑,Window_ItemList替换成Window_Selectable,可以让基于Window_Selectable的窗口都适用这个规则
点评
nhycs01
这一段代码需要改哪个js文件呢?我也遇到这个问题,但是不知道怎么表述,楼主帮我说了。
发表于 2023-1-25 10:40
评分
参与人数
1
赞
+1
收起
理由
蜜橘团子
+ 1
诶嘿嘿嘿我很喜欢
查看全部评分
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册会员
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
Archiver
|
手机版
|
小黑屋
|
Project1游戏制作
Powered by
Discuz!
X5.0
© 2001-2026
Discuz! Team
.
在本版发帖
返回顶部
快速回复
返回顶部
返回列表