lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6549|回复: 3

使用lufylegend快速开发打包ios,apk游戏,及解决音效的问题

[复制链接]

3

主题

0

好友

59

积分

士兵

Rank: 1

发表于 2016-1-14 18:10:03 |显示全部楼层
lufylegend引擎也研究了一段时间了.做小游戏,就是一个字,快!
给大家介绍一种打包的思路.游戏逻辑不说了,就拿lufy大神的GEMGEM为例
首先下载工具 apiclould  我用的是sublime 插件
下载好后,在自己的电脑里任意位置建一个文件夹比如mytest,然后拖进sumlime
在sumlime里面选中文件夹,右键新建apicloud项目 -> 空白应用 ,在下方输入文件名,比如mytest
1.png

会出现如下目录结构
3.png

点击html->main.html
然后在右边的界面右键
4.png

点击open containing folder... 把里面的main.html删除,用记事本新建复制粘贴下方代码,保存为frame3.html,

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
    <title>空白</title>
</head>
<body>
</body>
</html>
同样的方法,frame4.html frame5.html

在html目录新建一个bs文件夹,
将GEMGEM里的文件
2.png

复制进去,同时把lufylegend.js也复制过去 把index.html 里面
删除      <script type="text/javascript" src="../load_lufylegend.js"></script>

改为        <script type="text/javascript" src="lufylegend-1.10.0.js"></script>

html目录如下
6.png


回到sublime ,你的目录结构应该是这样的

7.png


点击最下方的index.html

把原来的代码删除改为

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
    <title>空白</title>
    <link rel="stylesheet" type="text/css" href="./css/api.css"/>
    <link rel="stylesheet" type="text/css" href="./css/style.css"/>
</head>
<body>
</body>
</html>
<script type="text/javascript" src="script/api.js"></script>
<script type="text/javascript">
    apiready = function () {
        // my_showasgmo();
        openMyFrame();
    }
    function openMyFrame(){
        api.openFrameGroup ({
                name: 'group1',
                background: '#fff',
                scrollEnabled: false,
                rect: {
                     x: 0,
                     y: 0,
                     w: 'auto',
                     h: 'auto'
                },
                index: 1,
                frames: [
                {
                    name: 'frame2',
                    url: './html/frame3.html',
                    bounces: false,
                    bgColor: 'rgba(0,0,0,0)',
                    vScrollBarEnabled: false,
                    hScrollBarEnabled: false,
                    pageBounce:false
                }
                ,
                {
                    name: 'frame1',
                    url: './html/bs/index.html',
                    bounces: false,
                    bgColor: 'rgba(0,0,0,0)',
                    vScrollBarEnabled: false,
                    hScrollBarEnabled: false,
                    pageBounce:false                    
                },
                {
                    name: 'frame3',
                    url: './html/frame4.html',
                    bounces: false,
                    bgColor: 'rgba(0,0,0,0)',
                    vScrollBarEnabled: false,
                    hScrollBarEnabled: false,
                    pageBounce:false
                },
                {
                    name: 'frame4',
                    url: './html/frame5.html',
                    bounces: false,
                    bgColor: 'rgba(0,0,0,0)',
                    vScrollBarEnabled: false,
                    hScrollBarEnabled: false,
                    pageBounce:false
                }               
                ]
            }, function( ret, err ){
                if( ret ){
                     //alert( JSON.stringify( ret ) );
                }else{
                     //alert( JSON.stringify( err ) );
                }
            });
    }
</script>
保存后 右键 mytest 压缩widget包
打开apicloud 控制台,没有帐号先注册一个
进入后 点击  创建应用 -> 上传刚刚的 压缩包,就可以打包成 apk 或者 ios
不过还是会有些问题,就是 测试版很正常,但是,正是版会卡在load...



5.png
回复

使用道具 举报

3

主题

0

好友

59

积分

士兵

Rank: 1

发表于 2016-1-14 18:10:04 |显示全部楼层
这是为什么呢?
有兴趣的朋友可以 LLoader 添加显示 path 看一下,正式包会先执行函数,后加载才结束,所以进步了函数
解决办法
把main.js里的
{path:"./js/share.js",type:"js"},
{path:"./js/Social.js",type:"js"},
{path:"./js/GameRanking.js",type:"js"},
{path:"./js/GameLogo.js",type:"js"},
{path:"./js/GameClear.js",type:"js"},
{path:"./js/Gem.js",type:"js"},
{path:"./js/Stage.js",type:"js"},
{path:"./js/Clock.js",type:"js"},
{path:"./js/Point.js",type:"js"},
{path:"./js/GetPoint.js",type:"js"},
{path:"./js/Bullet.js",type:"js"},
{path:"./js/Event.js",type:"js"},
{path:"./js/function.js",type:"js"},
{path:"./js/GameBody.js",type:"js"},

删除
然后重写 bs 文件夹里的index.html

<!DOCTYPE html>
<html lang="en">
        <head>
        <meta charset="utf-8" />
        <title>GemGem</title>
        <meta content="lufylegend.js,html5,game" name="description" />
        <meta content="lufylegend.js,html5,game" name="keywords" />
        <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
        <script type="text/javascript" src="../../script/api.js"></script>
<script type="text/javascript" src="load_lufylegend.js"></script>
<script type="text/javascript" src="./js/share.js"></script>
<script type="text/javascript" src="./js/Social.js"></script>
<script type="text/javascript" src="./js/GameRanking.js"></script>
<script type="text/javascript" src="./js/GameLogo.js"></script>
<script type="text/javascript" src="./js/GameClear.js"></script>
<script type="text/javascript" src="./js/Gem.js"></script>
<script type="text/javascript" src="./js/Stage.js"></script>
<script type="text/javascript" src="./js/Clock.js"></script>
<script type="text/javascript" src="./js/Point.js"></script>
<script type="text/javascript" src="./js/GetPoint.js"></script>
<script type="text/javascript" src="./js/Bullet.js"></script>
<script type="text/javascript" src="./js/Event.js"></script>
<script type="text/javascript" src="./js/function.js"></script>
<script type="text/javascript" src="./js/GameBody.js"></script>
<script type="text/javascript" src="./js/Main.js"></script>
        </head>
        <body style="margin:0px 0px 0px 0px;">
                        <div id="legend"></div>
        </body>
</html>
<script type="text/javascript">
apiready = function () {
        LInit(10,"legend",480,800,main,LEvent.INIT);
        }
</script>
保存,重新上传打包
不管是 ios apk 全都搞定.

不过就是没有音乐
用lufylegend的音乐没有效果
我们可以用 apicloud的代替

代码

api.startPlay({
    path: 'widget://res/1.mp3'
},function( ret, err ){
    if( ret ){
        // alert( JSON.stringify( ret ) );
    }else{
        // alert( JSON.stringify( err ) );
    }
});
找个mp3放入 res 中,加入上面代码到 GameLogo 或者 main 里面
打开游戏,有音乐了 如果要循环 可以
function my_play(){
api.startPlay({
    path: 'widget://res/1.mp3'
},function( ret, err ){
    if( ret ){
         //alert( JSON.stringify( ret ) );
              my_play();
    }else{
//         alert( JSON.stringify( err ) );
    }
});
}
到这儿好象已经好了,可是如果要加入音效,就会发现不行了
apicloud的音乐播放,一个页面只能执行一个音乐播放
开始我们建了一个frame组
现在作用来了
//在当前window中找到
//名为frmName的frame,并在该frame中执行jsfun脚本
var jsfun = 'my_play();';
api.execScript({
    frameName: 'frmName',
    script: jsfun
});
这样一来,我们背景音乐和音效的问题也算是解决了,重新打包,传到自己的android ios上享受一下吧!
回复

使用道具 举报

36

主题

8

好友

9139

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

发表于 2016-1-14 22:05:23 |显示全部楼层
jinpual 发表于 2016-1-14 18:10
这是为什么呢?
有兴趣的朋友可以 LLoader 添加显示 path 看一下,正式包会先执行函数,后加载才结束,所以进步 ...

可能是apicloud 的问题吧
我一般不用任何工具,都是自己打包,无论安卓还是iPhone,LLoader都没有出现过问题
不回答与技术和引擎不相关的问题
回复

使用道具 举报

3

主题

0

好友

59

积分

士兵

Rank: 1

发表于 2016-1-15 09:57:07 |显示全部楼层
lufy 发表于 2016-1-14 22:05
可能是apicloud 的问题吧
我一般不用任何工具,都是自己打包,无论安卓还是iPhone,LLoader都没有出现过 ...

是的,是工具的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2022-5-21 01:31 , Processed in 0.055161 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部