查看: 317|回复: 2

[有事请教] 请问有没有可以修改游戏分辨率的插件或者小工具?

[复制链接]
梦石
0
星屑
44
在线时间
6 小时
注册时间
2026-8-22
回帖
1
发表于 2026-8-30 19:20:35 | 显示全部楼层 |阅读模式
悬赏22星屑未解决
rt,各位大佬,请问有没有可以修改游戏分辨率的插件或者小工具?想要缩小人物和图块的比例,在相同大小窗口内显示更多的地图,求求了!

梦石
0
星屑
1518
在线时间
167 小时
注册时间
2025-2-15
回帖
67
发表于 2026-9-1 19:28:07 | 显示全部楼层
1920*1080是电脑常见的分辨率,steam商店界面那里的截图好像也是这个分辨率。
然后可以在数据库、系统2、进阶设置这里设置成这个分辨率。
在地图编辑的宽高那里设置宽40高22就很接近这个分辨率,1920/48=40,1080/48=22.5。

另外,在rmmz_core.js这里的Tilemap.Layer.MAX_SIZE = 16000;好像就是8000个正方形分开的16000个三角形。
也就是说一张地图默认的最大是256*256,但是屏幕可以同时显示的图块层是8000个。
如果是在地图那里使用远景图或无限图层之类的,那就可以考虑119*67=7973这样的大小,因为(40*3)*(22.5*3)=8100稍微大了一点。

如果是在地图上画图块的话,考虑到一二三四的图层,可以考虑96*54这样的大小,因为1920/20=96,1080/20=54,96*54=5184,8000-5184=2816。
在周围画上大量的水面,在岛上画上大量的花草、平地,还有2816个图层可以用在树木、建筑那里。
80*45=3600这样的大小也挺合适的,因为1920/24=80,1080/24=45。
  1. //这里的宽高都是求整数,但是没必要强求整数的,没必要完全贴合的。
  2. for(y=1;y<=999;y++){
  3. if(((1920/1080)*y)*y < 8000){
  4.     x = (1920/1080)*y
  5.     if(Number.isInteger(x)){
  6.     console.log("宽等于" + x)
  7.     console.log("高等于" + y)
  8.     };
  9. };
  10. };
复制代码

然后就是在事件页或共通事件那里并行执行下面这两段。
◆如果:按键 [左] 被按下
  ◆注释:把下面这段代码放到这里的脚本框。
  ◆
:结束分支
  1. //更改游戏屏幕的宽度和高度。
  2. screenWidth = $gameMap.width()*$dataSystem.tileSize;
  3. screenHeight = $gameMap.height()*$dataSystem.tileSize;
  4. Graphics.resize(screenWidth, screenHeight);

  5. //窗口显示的宽度和高度
  6. Graphics.boxWidth = $gameMap.width()*$dataSystem.tileSize;
  7. Graphics.boxHeight = $gameMap.height()*$dataSystem.tileSize;

  8. //全屏的脚本
  9. Graphics._requestFullScreen();

  10. <p>//游戏屏幕的宽度和高度。。。我一开始是有写这两行的,后面发现好像不需要写。</p>
  11. <p>//Graphics.width = $gameMap.width()*$dataSystem.tileSize;</p>
  12. <p>//Graphics.height = $gameMap.height()*$dataSystem.tileSize;</p>//或许需要把Game_Map.prototype.canvasToMapX = function这段和Game_Map.prototype.canvasToMapY = function这段复制到这里,然后把里面的代码删掉

  13. //这两行是因为需要让程序再次加载画面,没有找到那些代码,就这样变通一下了。
  14. //把玩家位置重新定位,直接调用当前地图的ID、玩家的X、Y坐标位置、朝向、淡入淡出的黑、白、无分别对应0、1、2
  15. //场景移动到启动游戏时,玩家的初始位置那里
  16. $gamePlayer.reserveTransfer($gameMap._mapId, $gamePlayer.x, $gamePlayer.y,$gamePlayer._direction, 2);
  17. SceneManager.goto(Scene_Map);
复制代码

◆如果:按键 [右] 被按下
  ◆注释:把下面这段代码放到这里的脚本框。
  ◆
:结束分支
  1. //更改游戏屏幕的宽度和高度。
  2. screenWidth = 1920//$gameMap.width()*$dataSystem.tileSize;
  3. screenHeight = 1080//$gameMap.height()*$dataSystem.tileSize;
  4. Graphics.resize(screenWidth, screenHeight);

  5. //窗口显示的宽度和高度
  6. Graphics.boxWidth = 1920//$gameMap.width()*$dataSystem.tileSize;
  7. Graphics.boxHeight = 1080//$gameMap.height()*$dataSystem.tileSize;
复制代码


回复

使用道具 举报

梦石
0
星屑
1518
在线时间
167 小时
注册时间
2025-2-15
回帖
67
发表于 2026-9-1 20:11:27 | 显示全部楼层
本帖最后由 写给妖精的情诗 于 2026-9-1 23:09 编辑
  1. //每一个宽都有对应的高,不是整数就考虑一下四舍五入
  2. for(x=1;x<=999;x++){
  3. if(((1080/1920)*x)*x < 8000){
  4.     y = (1080/1920)*x
  5.     if(Number.isInteger(y)){
  6.     console.log()
  7.     console.log("X和Y都是整数")
  8.     console.log("宽等于" + x)
  9.     console.log("高等于" + y)
  10.     };
  11.     if( x >= 40 && !Number.isInteger(y)){
  12.     console.log()
  13.     console.log("宽等于" + x)
  14.     console.log("高等于" + y)
  15.     };
  16. };
  17. };
复制代码
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部