使用lufylegend快速开发打包ios,apk游戏,及解决音效的问题
lufylegend引擎也研究了一段时间了.做小游戏,就是一个字,快!给大家介绍一种打包的思路.游戏逻辑不说了,就拿lufy大神的GEMGEM为例
首先下载工具 apiclould 我用的是sublime 插件
下载好后,在自己的电脑里任意位置建一个文件夹比如mytest,然后拖进sumlime
在sumlime里面选中文件夹,右键新建apicloud项目 -> 空白应用 ,在下方输入文件名,比如mytest
会出现如下目录结构
点击html->main.html
然后在右边的界面右键
点击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里的文件
复制进去,同时把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目录如下
回到sublime ,你的目录结构应该是这样的
点击最下方的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...
这是为什么呢?
有兴趣的朋友可以 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上享受一下吧!
jinpual 发表于 2016-1-14 18:10 static/image/common/back.gif
这是为什么呢?
有兴趣的朋友可以 LLoader 添加显示 path 看一下,正式包会先执行函数,后加载才结束,所以进步 ...
可能是apicloud 的问题吧
我一般不用任何工具,都是自己打包,无论安卓还是iPhone,LLoader都没有出现过问题 lufy 发表于 2016-1-14 22:05 static/image/common/back.gif
可能是apicloud 的问题吧
我一般不用任何工具,都是自己打包,无论安卓还是iPhone,LLoader都没有出现过 ...
是的,是工具的问题
页:
[1]