查看: 5266|回复: 3

[原创发布] RPGMV 安卓端竖屏打包功能

[复制链接]
梦石
0
星屑
3074
在线时间
685 小时
注册时间
2018-6-1
回帖
253
发表于 2019-4-25 18:01:35 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 q1456503215 于 2019-4-26 23:13 编辑

此功能需要Android studio 技术性问题自行解决 一般直接编译就可以过

下载工程 游戏复制到assets 然后编译
【说明】
MV自带的 插件 Community_Basic 这个文件需要修改代码 配合这个工程使用
/*:
* @plugindesc Plugin used to set basic parameters.
* @author RM CoreScript team
*
* @help This plugin does not provide plugin commands.
*
* @param cacheLimit
* @desc For setting the upper limit of image memory cache. (MPix)
* @default 10
*
* @param screenWidth
* @desc For setting the screen width.
* @default 816
*
* @param screenHeight
* @desc For setting the screen height.
* @default 624
*
* @param changeWindowWidthTo
* @desc If set, change window width to this value
*
* @param changeWindowHeightTo
* @desc If set, change window height to this value
*
* @param renderingMode
* @desc Rendering mode (canvas/webgl/auto)
* @default auto
*
* @param alwaysDash
* @desc To set initial value as to whether the player always dashes. (on/off)
* @default off
*/

/*:ja
* @plugindesc 基本的なパラメーターを設定するプラグインです。
* @author RM CoreScript team
*
* @help このプラグインにはプラグインコマンドはありません。
*
* @param cacheLimit
* @desc 画像のメモリへのキャッシュの上限値 (MPix)
* @default 10
*
* @param screenWidth
* @desc 画面サイズの幅
* @default 816
*
* @param screenHeight
* @desc 画面サイズの高さ
* @default 624
*
* @param changeWindowWidthTo
* @desc 値が設定された場合、ウインドウの幅を指定した値に変更
*
* @param changeWindowHeightTo
* @desc 値が設定された場合、ウインドウの高さを指定した値に変更
*
* @param renderingMode
* @desc レンダリングモード (canvas/webgl/auto)
* @default auto
*
* @param alwaysDash
* @desc プレイヤーが常時ダッシュするかどうかの初期値 (on/off)
* @default off
*/

(function() {
    function toNumber(str, def) {
        return isNaN(str) ? def : +(str || def);
    }
   // var w = 816;
        //var h = 624;
        var w = (window.game.获取宽度() / 2) + (window.game.获取宽度() / 10);
        var h = (window.game.获取高度() / 2) + (window.game.获取高度() / 10);
    var parameters = PluginManager.parameters('Community_Basic');
    var cacheLimit = toNumber(parameters['cacheLimit'], 10);
    //var screenWidth = toNumber(parameters['screenWidth'], 816);
    //var screenHeight = toNumber(parameters['screenHeight'], 624);
        var screenWidth = toNumber(Math.round(w), 720);
        var screenHeight = toNumber(Math.round(h) , 1280);
    var renderingMode = parameters['renderingMode'].toLowerCase();
    var alwaysDash = parameters['alwaysDash'].toLowerCase() === 'on';
    var windowWidthTo = toNumber(parameters['changeWindowWidthTo'], 0);
    var windowHeightTo = toNumber(parameters['changeWindowHeightTo'], 0);

    var windowWidth;
    var windowHeight;

    if(windowWidthTo){
        windowWidth = windowWidthTo;
    }else if(screenWidth !== SceneManager._screenWidth){
        windowWidth = screenWidth;
    }

    if(windowHeightTo){
        windowHeight = windowHeightTo;
    }else if(screenHeight !== SceneManager._screenHeight){
        windowHeight = screenHeight;
    }


    ImageCache.limit = cacheLimit * 1000 * 1000;
    SceneManager._screenWidth = screenWidth;
    SceneManager._screenHeight = screenHeight;
    SceneManager._boxWidth = screenWidth;
    SceneManager._boxHeight = screenHeight;

    SceneManager.preferableRendererType = function() {
        if (Utils.isOptionValid('canvas')) {
            return 'canvas';
        } else if (Utils.isOptionValid('webgl')) {
            return 'webgl';
        } else if (renderingMode === 'canvas') {
            return 'canvas';
        } else if (renderingMode === 'webgl') {
            return 'webgl';
        } else {
            return 'auto';
        }
    };

    var _ConfigManager_applyData = ConfigManager.applyData;
    ConfigManager.applyData = function(config) {
        _ConfigManager_applyData.apply(this, arguments);
        if (config['alwaysDash'] === undefined) {
            this.alwaysDash = alwaysDash;
        }
    };


    var _SceneManager_initNwjs = SceneManager.initNwjs;
    SceneManager.initNwjs = function() {
        _SceneManager_initNwjs.apply(this, arguments);

        if (Utils.isNwjs() && windowWidth && windowHeight) {
            var dw = windowWidth - window.innerWidth;
            var dh = windowHeight - window.innerHeight;
            window.moveBy(-dw / 2, -dh / 2);
            window.resizeBy(dw, dh);
        }
    };
})();

复制上述代码 替换掉 Community_Basic.js 所有内容
高度还是有一点点的黑边的 这个没解决 其他的没啥问题
由于手机本身分辨率太高 原始分辨率的话人物会变小 游戏会卡顿
我设置成 宽高 / 2

链接: https://pan.baidu.com/s/1yysN03Hm5nlVLFyjzc48DQ 提取码: tepc 复制这段内容后打开百度网盘手机App,操作更方便哦

顺便分享下竖屏的游戏 小智冒险之旅
链接: https://pan.baidu.com/s/1YipKHkSav2FdPqQRn3sU_g 提取码: z9s1 复制这段内容后打开百度网盘手机App,操作更方便哦
QQ图片20190425210225.jpg

评分

参与人数 1赞 +1 收起 理由
白嫩白嫩的 + 1 群主威武!!!

查看全部评分

梦石
0
星屑
3074
在线时间
685 小时
注册时间
2018-6-1
回帖
253
 楼主| 发表于 2019-4-26 19:42:23 | 显示全部楼层
疏忽一个问题 会切换到横屏
在 setContentView(R.layout.activity_main); 前面添加下面的代码 就可以固定竖屏了
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏
回复

使用道具 举报

梦石
0
星屑
1366
在线时间
177 小时
注册时间
2017-6-28
回帖
21
发表于 2019-10-2 20:43:09 | 显示全部楼层
q1456503215 发表于 2019-4-26 19:42
疏忽一个问题 会切换到横屏
在 setContentView(R.layout.activity_main); 前面添加下面的代码 就可以固定竖 ...

請問setContentView(R.layout.activity_main); 在哪裡找到?
回复

使用道具 举报

梦石
0
星屑
1554
在线时间
523 小时
注册时间
2015-8-23
回帖
83
发表于 2025-12-6 13:46:10 | 显示全部楼层
链接失效了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部