本教程是应对微信小游戏开发的服务器端+客户端全国排行榜功能
这个应该算个系列教程,我先介绍下这个系列教程所实现的具体功能
一、具体功能
- 实现服务器记录玩家微信UserInfo数据
- 实现获取指定范围排行数据
- 实现获取指定用户排行
- 实现玩家上传分数
- 实现玩家游戏次数计数
本教程不提供php环境搭建、redis环境搭建等基础教程
如果未接触过php的同学,需要先自行了解下php及其环境搭建
之前在Php操作MySql实现简单排行榜(Windows)教程中有提供WAMP环境安装
下面开始正式教程
二、获取唯一身份标识
唯一身份标识,在微信小游戏里就是用户openid
如果之前没有获取过openid,可以查看通过Php获取微信小游戏openid
如果不是微信小游戏用户,那么可以通过使用设备id或者账号id来作唯一标识
三、添加Redis常用调用API接口
这里我把排行榜用到的Redis接口,封装了简单的API
新建redis_api.php
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
<?php class RedisAPI { protected $redis = null; public function __construct(Redis $r) { $this->redis = $r; } public function hSet($key, $member, $value) { return $this->redis->hSet($key, $member, $value); } public function hGet($key, $member) { return $this->redis->hGet($key, $member); } // 获取分数 public function GetScore($key, $member) { return $this->redis->zscore($key, $member); } // 设置分数 public function SetScore($key, $score, $member) { $histroyScore = $this->GetScore($key, $member); if($histroyScore == null || $histroyScore < $score) { $this->redis->zAdd($key, $score, $member); return $score; } return $histroyScore; } // 获取指定范围排行数据 public function GetRevRange($key, $beginIndex, $endIndex, $withScore) { return $this->redis->zrevrange($key, $beginIndex, $endIndex, $withScore); } // 获取指定成员排行 public function GetRevRank($key, $member) { return $this->redis->zrevrank($key, $member); } // 设置次数 public function SetTimes($key, $member) { $lastTimes = $this->hGet($key, $member); if($lastTimes == null) { $lastTimes = 0; } $newTimes = $lastTimes + 1; $this->redis->hSet($key, $member, $newTimes); return $newTimes; } } |
- 本文固定链接: http://www.u3d8.com/?p=1745
- 转载请注明: 网虫虫 在 u3d8.com 发表过