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

Project1

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

[交流讨论] [已解决]想问问大家事件菜单转不到其他界面的原因

[复制链接]

Lv1.梦旅人

梦石
0
星屑
26
在线时间
6 小时
注册时间
2025-5-10
帖子
2
跳转到指定楼层
1
发表于 19 小时前 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 YHHHHHHH 于 2025-5-13 17:42 编辑

   我尝试着跟着教程做了事件菜单,调出菜单和关闭菜单都很正常但进存档界面什么的就进不去了ORZ,
   求问下是怎么回事,是顺序之类的有问题还是脚本错了
   存档脚本底下的菜单图片的淡入也会正常显示但是脚本不生效ORZ

Lv3.寻梦者

梦石
0
星屑
3981
在线时间
167 小时
注册时间
2018-1-22
帖子
161
2
发表于 9 小时前 | 只看该作者
新场景用
SceneManager.push(Scene_Save);
自分自身の神様になること
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
370
在线时间
38 小时
注册时间
2025-2-15
帖子
25
3
发表于 5 小时前 | 只看该作者
Scene_Map.prototype.createMenuButton = function() {
    this._menuButton = new Sprite_Button("menu");
    this._menuButton.x = Graphics.boxWidth - this._menuButton.width - 4;
    this._menuButton.y = this.buttonY();
    this._menuButton.visible = false;
    this.addWindow(this._menuButton);
};
上面这段好像是点击菜单的函数,
Scene_Map.prototype.callMenu = function() {
SoundManager.playOk();
    SceneManager.push(Scene_Menu);
    Window_MenuCommand.initCommandPosition();
    $gameTemp.clearDestination();
    this._mapNameWindow.hide();
    this._waitCount = 2;
};
上面这段是检测到呼叫菜单就要执行什么指令的函数,
下面这段好像是呼叫菜单的函数,这几段都在rmmz_scenes.js这里。说不定可以使用这些函数来写。
Scene_Map.prototype.isMenuCalled = function() {
    return Input.isTriggered("menu") || TouchInput.isCancelled();
};
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
370
在线时间
38 小时
注册时间
2025-2-15
帖子
25
4
发表于 5 小时前 | 只看该作者
if(TouchInput.isPressed ()){}
if(Input.isTriggered("menu")){}
另外,我想问一下,上面第一行是检测到按下鼠标的脚本 if(TouchInput.isPressed ()){} 和 if(Input.isTriggered()){} 好像都一样 ,
第二行是检测到点击菜单的脚本,单独使用好像都没有问题,一旦让他们两个同时使用,好像就只有一个会起作用。
是不是因为刷新的原因,按下之后有一个响应到了立马就刷新数据了。
还是因为这两个都是检测鼠标左键的原因,检测到了一个就算是完了。

menuButtonX = Graphics.Width - 48 - 4;
menuButtonY = 4;
if(TouchInput.isPressed ()){
if(TouchInput.x>=menuButtonX && TouchInput.x<=menuButtonX+48 && TouchInput.y>=menuButtonY && TouchInput.y<=menuButtonY+48){
$gameMessage.add("点击到了菜单栏");
}else {
$gameMessage.add("没有点击到菜单栏");
}
}
虽然有上面这个变通的方法,但是菜单栏覆盖的范围有点偏差(有空的时候再试着调一调),就算是不偏差,我也想用直接到方法。
所以,有谁知道这个方法吗?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
370
在线时间
38 小时
注册时间
2025-2-15
帖子
25
5
发表于 4 小时前 | 只看该作者
搞错了,menuButtonX = Graphics.Width - 48 - 4; 的偏差太大了。
应该是 menuButtonX = Graphics.boxWidth  - 48 - 4;  这个,这个偏差小一点。 就是二楼第三行的这个,昨天测试到一半就忘记了。   
Graphics.boxWidth - this._menuButton.width - 4;   
分别是游戏窗口的宽,菜单栏的宽(在地图场景就是ButtonSet.png最右侧的那个图标,上下两个图标的高是96,一个图标的宽高自然就是48了),减4就是稍微留下一点空间,所以因此知道Y也是有一个4的空间的。

问题就是,Graphics.boxWidth 不完全等于显示的宽度,因为显示的宽度受到分辨率和地图宽度的影响,使用数据库、系统2、进阶设置的画面宽度、界面区域宽度会有一些偏差,使用$gameMap.width()*48也有一点的偏差,
使用screen.width偏差的好像就更多了。

说不定是需要一个数学运算吧,地图的宽度、地图横向的格子数量,分辨率,屏幕大小、游戏显示框的大小、游戏渲染画布的宽度这些东西的值不是同一个,这些东西可能还会相互影响。
比如我习惯地图的格子数量是宽40,高22。40乘以48=1920,22乘以48=1056,这个数字接近于1920*1080这个很常见的台式电脑分辨率,而我的电脑分辨率是2560*1440。
就是说,在全屏的时候虽然可以强制全屏,周围都没有黑边。
但是窗口最大化的时候,旁边是有一点黑边的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
26
在线时间
6 小时
注册时间
2025-5-10
帖子
2
6
 楼主| 发表于 2 小时前 | 只看该作者
!!!!可以了!!!!非常感谢大家!!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-5-13 20:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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