Commit 4dc8288e authored by huoshizhe's avatar huoshizhe

feat

parent cb558fa3
/node_modules
/publish
/publish/form /publish/form
/form/publish/*.zip /form/publish/*.zip
/publish/play /publish/play
/publish/node_modules
/publish/publish/play
/publish/publish/form
/publish/publish/android
/publish/publish/web_desktop
/publish/publish/ios
/publish/publish/*.zip
/publish/publish/config.json
/publish/publish/Release*
/node_modules /node_modules
/play/build_android /build_android
/play/build_ios /build_ios
/play/build_web_desktop /build_web_desktop
\ No newline at end of file
#/////////////////////////////////////////////////////////////////////////////
# Fireball Projects
#/////////////////////////////////////////////////////////////////////////////
/library/
/temp/
/local/
/build/
#/////////////////////////////////////////////////////////////////////////////
# npm files
#/////////////////////////////////////////////////////////////////////////////
npm-debug.log
node_modules/
#/////////////////////////////////////////////////////////////////////////////
# Logs and databases
#/////////////////////////////////////////////////////////////////////////////
*.log
*.sql
*.sqlite
#/////////////////////////////////////////////////////////////////////////////
# files for debugger
#/////////////////////////////////////////////////////////////////////////////
*.sln
*.csproj
*.pidb
*.unityproj
*.suo
#/////////////////////////////////////////////////////////////////////////////
# OS generated files
#/////////////////////////////////////////////////////////////////////////////
.DS_Store
ehthumbs.db
Thumbs.db
#/////////////////////////////////////////////////////////////////////////////
# WebStorm files
#/////////////////////////////////////////////////////////////////////////////
.idea/
#//////////////////////////
# VS Code files
#//////////////////////////
.vscode/
# cocos-generator
cocos creator技术框架下的H5互动模板框架脚手架,基于cocos creator实现快速开发基于绘玩云的H5互动课件。
# 使用简介
## 前期准备
* git下载 https://git-scm.com/downloads
* nodejs下载 https://nodejs.org/zh-cn/download/
* 谷歌浏览器下载 https://www.google.cn/chrome/
都下载最新版就行,然后默认安装就可以
## 生成项目
* 登录绘玩云课件开发平台:http://staging-teach.ireadabc.com/
* 点击“登录账号,查看我的课件”
* 输入测试的用户名/密码:developers/12345678
* 在右上角“个人中心”的下拉菜单里,点击“我的模板” 菜单,然后点击“新建模板”, 填写必要的信息,在“技术选型”一项上选择“Cocos”
* 点击“确定”后,列表页就会出现一个新生成的模板项目
* 在项目的卡片下找到“开发”按钮,则会弹出相对应的git地址
## 获取并启动项目
```
// xxx 是上面项目对应的Git地址
git clone xxx
cd 项目名称/
npm install
// 打开Cocos Creator, 点击项目(Project)=> 添加(Add) 在打开的对话框里面选择进入clone下来的项目,选择play文件夹,然后打开
// 进行常规的Cocos开发
```
## 本地调试
### 普通模板
* 找到 Cocos Creator 的安装目录下 Creator/2.4.5/CocosCreator.app/Contents/Resources/static/preview-templates/index.jade 文件
* 在引入JS的位置添加如下代码:
```
script(type='text/javascript' charset='utf-8' src='//staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air.js')
```
* 打开浏览器:http://staging-teach.ireadabc.com/template_ci/debug
* 点击右上角齿轮,选择技术选型、调试模式选择“普通”
### 互动模板
* 找到 Cocos Creator 的安装目录下 Creator/2.4.5/CocosCreator.app/Contents/Resources/static/preview-templates/index.jade 文件
* 在引入JS的位置添加如下代码:
```
script(type='text/javascript' charset='utf-8' src='//staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air_online_open.js')
```
* 打开浏览器:http://staging-teach.ireadabc.com/template_ci/debug
* 点击右上角齿轮,选择技术选型、调试模式选择“互动”
* 左侧老师、右侧学生
\ No newline at end of file
import express from "express"; const express = require('express');
import os from "os"; const os = require('os');
import readline from "readline"; const readline = require('readline');
import { build } from "./buildCocos.js"; const { build, buildAndroid, buildIos } = require('./buildCocos');
const networkInfo = os.networkInterfaces(); const networkInfo = os.networkInterfaces();
...@@ -18,7 +18,8 @@ for (const infos of Object.values(networkInfo)) { ...@@ -18,7 +18,8 @@ for (const infos of Object.values(networkInfo)) {
var app = express(); var app = express();
app.use('/publish', express.static('publish')); app.use('/dist', express.static('dist'));
app.use('/form', express.static('form'));
app.get('/', function (req, res) { app.get('/', function (req, res) {
res.send('Hello World'); res.send('Hello World');
...@@ -30,6 +31,13 @@ var server = app.listen(8081, function () { ...@@ -30,6 +31,13 @@ var server = app.listen(8081, function () {
port = server.address().port port = server.address().port
console.log("测试服务已启动:%s:%s", host, port) console.log("测试服务已启动:%s:%s", host, port)
console.log("如果已经build可访问如下地址");
console.log("http://%s:%s/dist/play/index.html", host, port)
console.log("http://%s:%s/dist/play/index.html", "localhost", port)
console.log('-----------------');
console.log(" 输入 build 构建安卓脚本");
console.log(" 输入 build ios 构建IOS脚本");
console.log('-----------------');
}) })
...@@ -39,11 +47,9 @@ const rl = readline.createInterface({ ...@@ -39,11 +47,9 @@ const rl = readline.createInterface({
}) })
rl.on('line', async (str) => { rl.on('line', async (str) => {
if (str.trim() == 'build') { if (str.trim() == 'build') {
await build(); await buildAndroid();
console.log("测试服务已启动:%s:%s", host, port) } else if (str.trim() == 'build ios') {
console.log('输入 build 构建。') await buildIos();
} else {
console.log("测试服务已启动:%s:%s", host, port)
console.log('输入 build 构建。')
} }
console.log("服务器:%s:%s", host, port)
}) })
const {build} = require('./buildCocos');
build();
\ No newline at end of file
This diff is collapsed.
import fs from 'fs'; const fs = require('fs');
const removeDir = async function (src) {
export function fix2(num) { const exists = await fs.existsSync(src);
if (num >= 10) {
return '' + num;
} else {
return '0' + num;
}
}
export async function copyDir(src, dst) {
const exists = await fs.existsSync(dst);
if (!exists) { if (!exists) {
await fs.mkdirSync(dst); return;
} }
//读取目录 //读取目录
const st = await fs.statSync(src);
const paths = await fs.readdirSync(src); const paths = await fs.readdirSync(src);
for (let i = 0; i < paths.length; i++) { for (let i = 0; i < paths.length; i++) {
let path = paths[i]; let path = paths[i];
const newSrc = `${src}/${path}`; const newSrc = `${src}/${path}`;
const newDst = `${dst}/${path}`;
const st = await fs.statSync(newSrc); const st = await fs.statSync(newSrc);
if (st.isFile()) { if (st.isFile()) {
console.log('copy: ' + newDst); console.log('remove: ' + newSrc);
const data = await fs.readFileSync(newSrc); await fs.unlinkSync(newSrc);
await fs.writeFileSync(newDst, data);
} else if (st.isDirectory()) { } else if (st.isDirectory()) {
await copyDir(newSrc, newDst); await removeDir(newSrc);
} }
} }
await fs.rmdirSync(src);
} }
export async function removeDir(src) { const copyDir = async function (src, dst) {
const exists = await fs.existsSync(src); const exists = await fs.existsSync(dst);
if (!exists) { if (!exists) {
return; await fs.mkdirSync(dst);
} }
//读取目录 //读取目录
const st = await fs.statSync(src);
const paths = await fs.readdirSync(src); const paths = await fs.readdirSync(src);
for (let i = 0; i < paths.length; i++) { for (let i = 0; i < paths.length; i++) {
let path = paths[i]; let path = paths[i];
const newSrc = `${src}/${path}`; const newSrc = `${src}/${path}`;
const newDst = `${dst}/${path}`;
const st = await fs.statSync(newSrc); const st = await fs.statSync(newSrc);
if (st.isFile()) { if (st.isFile()) {
console.log('remove: ' + newSrc); console.log('copy: ' + newDst);
await fs.unlinkSync(newSrc); const data = await fs.readFileSync(newSrc);
await fs.writeFileSync(newDst, data);
} else if (st.isDirectory()) { } else if (st.isDirectory()) {
await removeDir(newSrc); await copyDir(newSrc, newDst);
} }
} }
await fs.rmdirSync(src); };
} module.exports = {
\ No newline at end of file fix2: function (num) {
if (num >= 10) {
return '' + num;
} else {
return '0' + num;
}
},
copyDir: copyDir,
removeDir: removeDir,
};
{
"name": "publish",
"version": "1.0.0",
"description": "",
"main": "build.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "sh ./publish/build.sh",
"win": "cd publish && build.cmd"
},
"author": "",
"type": "module",
"license": "ISC",
"dependencies": {
"compressing": "^1.5.0"
}
}
#/////////////////////////////////////////////////////////////////////////////
# Fireball Projects
#/////////////////////////////////////////////////////////////////////////////
/library/
/temp/
/local/
/build/
#/////////////////////////////////////////////////////////////////////////////
# npm files
#/////////////////////////////////////////////////////////////////////////////
npm-debug.log
node_modules/
#/////////////////////////////////////////////////////////////////////////////
# Logs and databases
#/////////////////////////////////////////////////////////////////////////////
*.log
*.sql
*.sqlite
#/////////////////////////////////////////////////////////////////////////////
# files for debugger
#/////////////////////////////////////////////////////////////////////////////
*.sln
*.csproj
*.pidb
*.unityproj
*.suo
#/////////////////////////////////////////////////////////////////////////////
# OS generated files
#/////////////////////////////////////////////////////////////////////////////
.DS_Store
ehthumbs.db
Thumbs.db
#/////////////////////////////////////////////////////////////////////////////
# WebStorm files
#/////////////////////////////////////////////////////////////////////////////
.idea/
#//////////////////////////
# VS Code files
#//////////////////////////
.vscode/
No preview for this file type
import { build } from "./buildCocos.js";
await build();
\ No newline at end of file
{
"platform": "web-desktop",
"debug": true
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Cocos Creator | hello_world</title>
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="full-screen" content="yes"/>
<meta name="screen-orientation" content="portrait"/>
<meta name="x5-fullscreen" content="true"/>
<meta name="360-fullscreen" content="true"/>
<meta name="renderer" content="webkit"/>
<meta name="force-rendering" content="webkit"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<link rel="stylesheet" type="text/css" href="style-desktop.css"/>
<link rel="icon" href="favicon.ico"/>
</head>
<body>
<!-- <h1 class="header">hello_world</h1> -->
<!-- <div id="GameDiv" style="width:1280px; height: 720px;"> -->
<canvas id="GameCanvas" width="100%" height="100%"></canvas>
<div id="splash">
<div class="progress-bar stripes">
<span style="width: 0%"></span>
</div>
</div>
<!-- </div> -->
<!-- <p class="footer">Made with <a href="https://www.cocos.com/products#CocosCreator" title="cocos creator">Cocos Creator</a></p> -->
<script src="src/settings.js" charset="utf-8"></script>
<script src="main.js" charset="utf-8"></script>
<script type="text/javascript" src="//staging-teach.cdn.ireadabc.com/h5template/h5-static-lib/js/air.js"></script>
<script type="text/javascript">
(function () {
// open web debugger console
if (typeof VConsole !== 'undefined') {
window.vConsole = new VConsole();
}
var debug = window._CCSettings.debug;
var splash = document.getElementById('splash');
splash.style.display = 'block';
function loadScript (moduleName, cb) {
function scriptLoaded () {
document.body.removeChild(domScript);
domScript.removeEventListener('load', scriptLoaded, false);
cb && cb();
};
var domScript = document.createElement('script');
domScript.async = true;
domScript.src = moduleName;
domScript.addEventListener('load', scriptLoaded, false);
document.body.appendChild(domScript);
}
loadScript(debug ? 'cocos2d-js.js' : 'cocos2d-js-min.js', function () {
if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) {
loadScript(debug ? 'physics.js' : 'physics-min.js', window.boot);
}
else {
window.boot();
}
});
})();
</script>
</body>
</html>
This diff is collapsed.
{
"name": "publish",
"version": "1.0.0",
"description": "",
"main": "build.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "node build.js",
"start": "node app.js"
},
"type": "module",
"author": "",
"license": "ISC",
"dependencies": {
"child_process": "^1.0.2",
"compressing": "^1.5.1",
"express": "^4.17.1",
"js-base64": "^3.7.2",
"uuid": "^8.3.2"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment