好的,所以我和我的伙伴正在创建一个游戏和一个网站,他正在开发游戏,而我正在开发网站。游戏是使用 ImpactJS 引擎构建的,一切正常,但我们遇到的问题是我们应该如何保存高分。目前我们建立了一个网站,您可以在其中登录然后玩,我们的想法是在您完成关卡(或当您死亡时)后获得分数,然后将该分数与当前用户一起发送到数据库那是登录的。我们得到了可以做到这一点的函数,但问题是我们不知道应该如何将分数从 javascript 文件发送到实际数据库。
所以这就是现在的情况:首先我们实际上在 main.js 中获得了 highscore 函数
主.js
draw: function() {
this.parent();
this.background.draw(0,0);
var x = ig.system.width/2;
var y = ig.system.height/2 - 20;
this.gameOver.draw(x - (this.gameOver.width * .5), y - 30);
var score = (this.stats.kills * 100) - (this.stats.deaths * 50);
this.instructText.draw('Total Kills: '+this.stats.kills, x, y+30,
ig.Font.ALIGN.CENTER);
this.instructText.draw('Total Deaths: '+this.stats.deaths, x, y+40,
ig.Font.ALIGN.CENTER);
this.instructText.draw('Score: '+score, x, y+50, ig.Font.ALIGN.CENTER);
this.instructText.draw('Press Spacebar To Continue.', x, ig.system.height -
10, ig.Font.ALIGN.CENTER);
}
我们知道它是我们必须插入数据库的 + 分数。
然后我们得到了 DB 类,这就是将数据插入数据库(顺便说一下,我正在工作面向对象,因为这是一个学校项目,我们必须这样做)
数据库文件
public function insert($table, $fields = array()) {
$keys = array_keys($fields);
$values = '';
$x = 1;
foreach($fields as $field) {
$values .= '?';
if($x < count($fields)) {
$values .= ', ';
}
$x++;
}
$sql = "INSERT INTO {$table} (`" . implode('`,`', $keys) . "`) VALUES ({$values})";
if(!$this->query($sql, $fields)->error()) {
return true;
}
return false;
}
最后我们得到了高分类:
高分.php
public function create($fields = array()) {
if(!$this->_db->insert('highscores', $fields)) {
throw new Exception('There was a problem saving your score. Sorry!');
}
}
是的,所以基本上我们不知道我们应该如何从外部 javascript 文件中获取 +score,并将其发送到 php...我们确实做了一些研究,发现也许我们应该为此使用 Ajax?无论如何,任何人都可以伸出援助之手吗?