Project1

标题: RPGMV 安卓端竖屏打包功能 [打印本页]

作者: q1456503215    时间: 2019-4-25 18:01
标题: RPGMV 安卓端竖屏打包功能
本帖最后由 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 (668.03 KB, 下载次数: 35)

QQ图片20190425210225.jpg

作者: q1456503215    时间: 2019-4-26 19:42
疏忽一个问题 会切换到横屏
在 setContentView(R.layout.activity_main); 前面添加下面的代码 就可以固定竖屏了
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏
作者: loveings    时间: 2019-10-2 20:43
q1456503215 发表于 2019-4-26 19:42
疏忽一个问题 会切换到横屏
在 setContentView(R.layout.activity_main); 前面添加下面的代码 就可以固定竖 ...

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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1