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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3074
在线时间
685 小时
注册时间
2018-6-1
帖子
272
跳转到指定楼层
1
发表于 2019-4-25 18:01:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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, 下载次数: 13)

QQ图片20190425210225.jpg

评分

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

查看全部评分

Lv3.寻梦者

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

使用道具 举报

Lv3.寻梦者

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

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 10:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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