This commit is contained in:
ckcz123 2018-01-17 20:26:08 +08:00
parent ee880b7cda
commit 8fe7dd3848
4 changed files with 95 additions and 8 deletions

View File

@ -48,6 +48,7 @@ function core() {
this.platform = { this.platform = {
'isOnline': true, // 是否http 'isOnline': true, // 是否http
'isPC': true, // 是否是PC 'isPC': true, // 是否是PC
'isAndroid': false, // 是否是Android
'isIOS': false, // 是否是iOS 'isIOS': false, // 是否是iOS
'isWeChat': false, // 是否是微信 'isWeChat': false, // 是否是微信
'isQQ': false, // 是否是QQ '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) { ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"].forEach(function (t) {
if (navigator.userAgent.indexOf(t)>=0) { if (navigator.userAgent.indexOf(t)>=0) {
if (t=='iPhone' || t=='iPad' || t=='iPod') core.platform.isIOS = true; if (t=='iPhone' || t=='iPad' || t=='iPod') core.platform.isIOS = true;
if (t=='Android') core.platform.isAndroid=true;
core.platform.isPC=false; core.platform.isPC=false;
} }
}); });
@ -549,6 +551,19 @@ core.prototype.startGame = function (hard, callback) {
core.setHeroMoveTriggerInterval(); core.setHeroMoveTriggerInterval();
if (core.isset(callback)) callback(); 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.prototype.moveOneStep = function() {
core.status.hero.steps++;
// 中毒状态 // 中毒状态
if (core.hasFlag('poison')) { if (core.hasFlag('poison')) {
core.status.hero.hp -= core.values.poisonDamage; core.status.hero.hp -= core.values.poisonDamage;

View File

@ -32,7 +32,8 @@ data.prototype.init = function() {
"poison": false, // 毒 "poison": false, // 毒
"weak": false, // 衰 "weak": false, // 衰
"curse": false, // 咒 "curse": false, // 咒
} },
"steps": 0, // 行走步数统计
}, },
"startText": [ // 游戏开始前剧情。如果无剧情直接留一个空数组即可。 "startText": [ // 游戏开始前剧情。如果无剧情直接留一个空数组即可。
"Hi欢迎来到 HTML5 魔塔样板!\n\n本样板由艾之葵制作可以让你在不会写任何代码\n的情况下也能做出属于自己的H5魔塔", "Hi欢迎来到 HTML5 魔塔样板!\n\n本样板由艾之葵制作可以让你在不会写任何代码\n的情况下也能做出属于自己的H5魔塔",

View File

@ -122,7 +122,7 @@ events.prototype.win = function(reason) {
core.drawText([ core.drawText([
"\t[恭喜通关]你的分数是${status:hp}。" "\t[恭喜通关]你的分数是${status:hp}。"
], function () { ], function () {
core.events.gameOver(replaying); core.events.gameOver(true, replaying);
}) })
}); });
} }
@ -137,18 +137,49 @@ events.prototype.lose = function(reason) {
core.drawText([ core.drawText([
"\t[结局1]你死了。\n如题。" "\t[结局1]你死了。\n如题。"
], function () { ], function () {
core.events.gameOver(replaying); core.events.gameOver(false, replaying);
}); });
}) })
} }
////// 游戏结束 ////// ////// 游戏结束 //////
events.prototype.gameOver = function (fromReplay) { events.prototype.gameOver = function (success, fromReplay) {
// 上传成绩 // 上传成绩
var confirmUpload = function () { 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(); core.restart();
return;
} }
@ -1459,7 +1490,7 @@ events.prototype.keyUpSwitchs = function (keycode) {
events.prototype.clickSettings = function (x,y) { events.prototype.clickSettings = function (x,y) {
if (x<5 || x>7) return; if (x<5 || x>7) return;
var choices = [ var choices = [
"系统设置", "快捷商店", "同步存档", "重新开始", "操作帮助", "关于本塔", "返回游戏" "系统设置", "快捷商店", "同步存档", "重新开始", "数据统计", "操作帮助", "关于本塔", "返回游戏"
]; ];
var topIndex = 6 - parseInt((choices.length - 1) / 2); var topIndex = 6 - parseInt((choices.length - 1) / 2);
if (y>=topIndex && y<topIndex+choices.length) { if (y>=topIndex && y<topIndex+choices.length) {
@ -1489,12 +1520,51 @@ events.prototype.clickSettings = function (x,y) {
}); });
break; break;
case 4: 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; break;
case 5: case 5:
core.ui.drawAbout(); core.ui.drawHelp();
break; break;
case 6: case 6:
core.ui.drawAbout();
break;
case 7:
core.ui.closePanel(); core.ui.closePanel();
break; break;
} }

View File

@ -335,7 +335,7 @@ ui.prototype.drawSettings = function () {
core.status.event.id = 'settings'; core.status.event.id = 'settings';
this.drawChoices(null, [ this.drawChoices(null, [
"系统设置", "快捷商店", "同步存档", "重新开始", "操作帮助", "关于本塔", "返回游戏" "系统设置", "快捷商店", "同步存档", "重新开始", "数据统计", "操作帮助", "关于本塔", "返回游戏"
]); ]);
} }