zoukankan      html  css  js  c++  java
  • 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 6(分数上传及排行榜查询)

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

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

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

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

    接上回(《跳跃的方块》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

  • 相关阅读:
    python中实现mysql连接池
    flask简单的路由分发
    用进程池创建子进程
    用类创建子进程
    用函数创建子进程
    fiddler抓包工具使用
    requests库的小技巧
    requests库的get请求,带有cookies
    requests库的post请求
    Android下Json数据解析
  • 原文地址:https://www.cnblogs.com/qici/p/5084797.html
Copyright © 2011-2022 走看看