Upload
This commit is contained in:
parent
ee880b7cda
commit
8fe7dd3848
16
libs/core.js
16
libs/core.js
@ -48,6 +48,7 @@ function core() {
|
||||
this.platform = {
|
||||
'isOnline': true, // 是否http
|
||||
'isPC': true, // 是否是PC
|
||||
'isAndroid': false, // 是否是Android
|
||||
'isIOS': false, // 是否是iOS
|
||||
'isWeChat': false, // 是否是微信
|
||||
'isQQ': false, // 是否是QQ
|
||||
@ -182,6 +183,7 @@ core.prototype.init = function (dom, statusBar, canvas, images, pngs, bgms, soun
|
||||
["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"].forEach(function (t) {
|
||||
if (navigator.userAgent.indexOf(t)>=0) {
|
||||
if (t=='iPhone' || t=='iPad' || t=='iPod') core.platform.isIOS = true;
|
||||
if (t=='Android') core.platform.isAndroid=true;
|
||||
core.platform.isPC=false;
|
||||
}
|
||||
});
|
||||
@ -549,6 +551,19 @@ core.prototype.startGame = function (hard, callback) {
|
||||
core.setHeroMoveTriggerInterval();
|
||||
if (core.isset(callback)) callback();
|
||||
});
|
||||
|
||||
// Upload
|
||||
var formData = new FormData();
|
||||
formData.append('type', 'people');
|
||||
formData.append('name', core.firstData.name);
|
||||
formData.append('version', core.firstData.version);
|
||||
formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":"");
|
||||
formData.append('hard', hard);
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "/games/upload.php");
|
||||
xhr.send(formData);
|
||||
|
||||
}
|
||||
|
||||
////// 重新开始游戏;此函数将回到标题页面 //////
|
||||
@ -1682,6 +1697,7 @@ core.prototype.eventMoveHero = function(steps, time, callback) {
|
||||
|
||||
////// 每移动一格后执行的事件 //////
|
||||
core.prototype.moveOneStep = function() {
|
||||
core.status.hero.steps++;
|
||||
// 中毒状态
|
||||
if (core.hasFlag('poison')) {
|
||||
core.status.hero.hp -= core.values.poisonDamage;
|
||||
|
||||
@ -32,7 +32,8 @@ data.prototype.init = function() {
|
||||
"poison": false, // 毒
|
||||
"weak": false, // 衰
|
||||
"curse": false, // 咒
|
||||
}
|
||||
},
|
||||
"steps": 0, // 行走步数统计
|
||||
},
|
||||
"startText": [ // 游戏开始前剧情。如果无剧情直接留一个空数组即可。
|
||||
"Hi,欢迎来到 HTML5 魔塔样板!\n\n本样板由艾之葵制作,可以让你在不会写任何代码\n的情况下也能做出属于自己的H5魔塔!",
|
||||
|
||||
@ -122,7 +122,7 @@ events.prototype.win = function(reason) {
|
||||
core.drawText([
|
||||
"\t[恭喜通关]你的分数是${status:hp}。"
|
||||
], function () {
|
||||
core.events.gameOver(replaying);
|
||||
core.events.gameOver(true, replaying);
|
||||
})
|
||||
});
|
||||
}
|
||||
@ -137,18 +137,49 @@ events.prototype.lose = function(reason) {
|
||||
core.drawText([
|
||||
"\t[结局1]你死了。\n如题。"
|
||||
], function () {
|
||||
core.events.gameOver(replaying);
|
||||
core.events.gameOver(false, replaying);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
////// 游戏结束 //////
|
||||
events.prototype.gameOver = function (fromReplay) {
|
||||
events.prototype.gameOver = function (success, fromReplay) {
|
||||
|
||||
// 上传成绩
|
||||
var confirmUpload = function () {
|
||||
|
||||
if (!success) {
|
||||
core.restart();
|
||||
return;
|
||||
}
|
||||
|
||||
var username = prompt("恭喜通关!请输入你的ID:");
|
||||
if (username==null) username="";
|
||||
|
||||
// upload
|
||||
var formData = new FormData();
|
||||
formData.append('type', 'score');
|
||||
formData.append('name', core.firstData.name);
|
||||
formData.append('version', core.firstData.version);
|
||||
formData.append('platform', core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":"");
|
||||
formData.append('hard', core.status.hard);
|
||||
formData.append('username', username);
|
||||
formData.append('lv', core.status.hero.lv);
|
||||
formData.append('hp', core.status.hero.hp);
|
||||
formData.append('atk', core.status.hero.atk);
|
||||
formData.append('def', core.status.hero.def);
|
||||
formData.append('mdef', core.status.hero.mdef);
|
||||
formData.append('money', core.status.hero.money);
|
||||
formData.append('experience', core.status.hero.experience);
|
||||
formData.append('steps', core.status.hero.steps);
|
||||
formData.append('route', core.encodeRoute(core.status.route));
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "/games/upload.php");
|
||||
xhr.send(formData);
|
||||
|
||||
core.restart();
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
@ -1459,7 +1490,7 @@ events.prototype.keyUpSwitchs = function (keycode) {
|
||||
events.prototype.clickSettings = function (x,y) {
|
||||
if (x<5 || x>7) return;
|
||||
var choices = [
|
||||
"系统设置", "快捷商店", "同步存档", "重新开始", "操作帮助", "关于本塔", "返回游戏"
|
||||
"系统设置", "快捷商店", "同步存档", "重新开始", "数据统计", "操作帮助", "关于本塔", "返回游戏"
|
||||
];
|
||||
var topIndex = 6 - parseInt((choices.length - 1) / 2);
|
||||
if (y>=topIndex && y<topIndex+choices.length) {
|
||||
@ -1489,12 +1520,51 @@ events.prototype.clickSettings = function (x,y) {
|
||||
});
|
||||
break;
|
||||
case 4:
|
||||
core.ui.drawHelp();
|
||||
core.ui.drawWaiting("正在拉取统计信息,请稍后...");
|
||||
|
||||
var formData = new FormData();
|
||||
formData.append('type', 'getinfo');
|
||||
formData.append('name', core.firstData.name);
|
||||
formData.append('version', core.firstData.version);
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", "/games/upload.php");
|
||||
|
||||
xhr.onload = function(e) {
|
||||
if (xhr.status==200) {
|
||||
var response = JSON.parse(xhr.response);
|
||||
if (response.code<0) {
|
||||
core.drawText("出错啦!\n无法拉取统计信息。\n错误原因:"+response.msg);
|
||||
}
|
||||
else {
|
||||
var text="\t[本塔统计信息]";
|
||||
response.data.forEach(function (t) {
|
||||
if (t.hard!='') text+=t.hard+"难度:\n"
|
||||
text+="当前已有"+t.number+"人次游戏,"+t.number+"人次通关。\n";
|
||||
text+="当前MAX为"+t.max+",由"+t.username+"于"+core.formatDate(new Date(1000*t.timestamp))+"打出。\n\n";
|
||||
})
|
||||
core.drawText(text);
|
||||
}
|
||||
}
|
||||
else {
|
||||
core.drawText("出错啦!\n无法拉取统计信息。\n错误原因:HTTP "+xhr.status);
|
||||
}
|
||||
};
|
||||
xhr.ontimeout = function() {
|
||||
core.drawText("出错啦!\n无法拉取统计信息。\n错误原因:Timeout");
|
||||
}
|
||||
xhr.onerror = function() {
|
||||
core.drawText("出错啦!\n无法拉取统计信息。\n错误原因:XHR Error");
|
||||
}
|
||||
xhr.send(formData);
|
||||
break;
|
||||
case 5:
|
||||
core.ui.drawAbout();
|
||||
core.ui.drawHelp();
|
||||
break;
|
||||
case 6:
|
||||
core.ui.drawAbout();
|
||||
break;
|
||||
case 7:
|
||||
core.ui.closePanel();
|
||||
break;
|
||||
}
|
||||
|
||||
@ -335,7 +335,7 @@ ui.prototype.drawSettings = function () {
|
||||
core.status.event.id = 'settings';
|
||||
|
||||
this.drawChoices(null, [
|
||||
"系统设置", "快捷商店", "同步存档", "重新开始", "操作帮助", "关于本塔", "返回游戏"
|
||||
"系统设置", "快捷商店", "同步存档", "重新开始", "数据统计", "操作帮助", "关于本塔", "返回游戏"
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user