Echo Pool
一款用C++编写的在线台球游戏
客户端下载v1.0(.exe):
此处内容需要评论回复后方可阅读
大一有一个高级语言程序课设的课程,有三个选项:祖玛、贪吃蛇、黄金矿工。我觉得这三个都不太好,所以一再申请做了自己想做的游戏-在线台球
其他照片在标签页内展示
主界面
登陆界面
充值界面
付款界面
皮肤商城





项目结构
服务端: API(使用php连接MySQL)、WS服务(Python)
// 在conn.php中设置自己的数据库帐密
<?php
// 1.设置连接数据库的信息
$local = "localhost";// 一般都填localhost
$username = "username"; // 数据库用户名,需要自己修改
$password = "password"; // 数据库密码,需要自己修改
$dbname = "dbname"; // 要连接的数据库名,需要自己修改
// 2.连接数据库
$conn = new mysqli($local, $username, $password, $dbname);
// 设置 UTF-8MB4 编码
$conn->set_charset("utf8mb4");
header('Content-Type: application/json; charset=UTF-8');
?>
# server.py
...
# 占用25689这个端口,可以修改
async def start_server(self, host='0.0.0.0', port=25689):
while True:
try:
async with websockets.serve(
self.connection_handler,
host,
port,
ping_interval=5,
ping_timeout=30,
max_size=1024 * 1024
):
print(f"服务器运行于 ws://{host}:{port}")
await asyncio.Future()
except Exception as e:
print(f"服务器发生错误: {e}, 5 秒后重启...")
await asyncio.sleep(5)
...
客户端: C++编译生成的exe
部署
先下载源码,下载地址Github项目地址或者文末网盘链接。
1. 将sql/data.sql
导入Mysql数据库
2. 将php-server
内的文件导入php服务器,然后修改conn.php中的Mysql数据库账号密码
3. 设置Nginx伪静态
location / {
try_files $uri $uri/ /$uri.php?$query_string;
}
4. 使用Python启动ws-server,在ws-server/server中python server.py
5. 设置Nginx反向代理
location /server {
proxy_pass http://127.0.0.1:25689/; # 将请求转发到 WebSocket 服务器
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# 传递真实客户端信息[3,8](@ref)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 保持长连接配置
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
keepalive_timeout 75;
# TCP优化
tcp_nodelay on;
tcp_nopush on;
}
6. 设置客户端,在client/include/game_config.h
中修改API_URL
为你的域名,然后编译即可。
7. 使用Windows系统,在client
目录下运行make
编译,编译好的文件在build
文件夹中
8. build
文件夹中即有Client端的.exe
文件
下载地址
Github项目地址:https://github.com/lhl77/billiards-online-cpp
项目网盘下载:
此处内容需要评论回复后方可阅读