青瓷引擎

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  18 随笔 :: 0 文章 :: 103 评论 :: 43018 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

继上一次介绍了《神奇的六边形》的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏《跳跃的方块》的完整开发流程。

          (点击图片可进入游戏体验)

因内容太多,为方便大家阅读,所以分多次来讲解。

若要一次性查看所有文档,也可点击这里

 

接上回(《跳跃的方块》Part 5

(三)分数上传及排行榜查询

实现分数上传

创建一个名为updateScore.php的页面,用来处理分数上传功能。 代码如下:

复制代码
 1 <?php
 2 require_once("db.php");
 3 
 4 // 从请求中获取参数
 5 $rid = $_REQUEST["rid"];
 6 $token = $_REQUEST["token"];
 7 $score = $_REQUEST["score"];
 8 
 9 if (!isset($rid) || !isset($score)) {
10     die(json_encode(array(
11         "error" => "参数有误"
12     )));
13 }
14 // 这里可以使用token进行验证,是否允许调用存储数据库
15 // 这里不做实现
16 
17 // 提交分数
18 $mysqli = DB::getDB();
19 $update_sql = "update user_info set score = ?, update_time = ? where open_id = ? and score < ?";
20 $stmt = $mysqli->prepare($update_sql);
21 if (!$stmt) {
22     die(json_encode(array(
23         "error" => "数据库连接失败"
24     )));
25 }
26 
27 $stmt->bind_param("ddsd", $v_score, time(), $v_open_id, $v_score);
28 
29 $v_open_id = $rid;
30 $v_score = $score;
31 
32 $stmt->execute();
33 if ($stmt->errno) {
34     die(json_encode(array(
35         "error" => "更新分数失败,错误代码:".$stmt->errno
36     )));
37 }
38 $stmt->close();
39 die(json_encode(array(
40     "success" => "更新成功"
41 )));
42 ?>
复制代码

 

 

获取排行榜信息

创建一个名为getRank.php的页面,用来获取排行榜信息。 代码如下:

复制代码
 1 <?php
 2 
 3 // 查询排行榜
 4 require_once("db.php");
 5 
 6 // 从请求中获取参数
 7 $rid = $_REQUEST["rid"];
 8 $token = $_REQUEST["token"];
 9 
10 if (!isset($rid) || !isset($score)) {
11     die(json_encode(array(
12         "error" => "参数有误"
13     )));
14 }
15 // 这里可以使用token进行验证,是否允许调用存储数据库
16 // 这里不做实现
17 
18 // 查询排行榜
19 $mysqli = DB::getDB();
20 $top = array();
21 $user = array();
22 
23 // 获取前100的用户数据
24 $sql = "SELECT open_id as rid, name, score, head_icon FROM user_info where score > 0 ORDER BY score desc, update_time asc limit 100";
25 $result = $mysqli->query($sql);
26 if ($result) {
27     while ($obj = $result->fetch_object()) {
28         array_push($top, $obj);
29     }
30     $result->close();
31 }
32 
33 $sql = "SELECT open_id, name, score, head_icon FROM user_info where open_id = '$rid'";
34 $result = $mysqli->query($sql);
35 if ($result) {
36     $user = $result->fetch_object();
37     $result->close();
38 }
39 
40 $ret = array(
41     'rankTop' => $top,
42     'userData' => $user,
43 );
44 echo json_encode($ret);
45 ?>
复制代码

 

下次将继续介绍如何做”服务器链接“,敬请期待!

 

其他相关链接

开源免费的HTML5游戏引擎——青瓷引擎(QICI Engine) 1.0正式版发布了!

JS开发HTML5游戏《神奇的六边形》(一)

青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 1

 

posted on   青瓷引擎  阅读(770)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示