python+html实现手机端触屏手柄控制电脑端三维赛车游戏代码
代码语言:python
所属分类:其他
代码描述:python+html实现手机端触屏手柄控制电脑端三维赛车游戏代码,电脑端浏览器运行显示游戏,手机扫码连接电脑控制赛车。
代码标签: python html 手机 触屏 手柄 控制 电脑 三维 赛车 游戏 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
from flask import Flask, render_template_string
from flask_socketio import SocketIO, emit
import qrcode
import io
import base64
import socket
app = Flask(__name__)
app.config['SECRET_KEY'] = 'racing_secret_2024'
socketio = SocketIO(app, cors_allowed_origins="*")
def get_local_ip():
"""获取本机IP地址"""
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
except:
ip = '127.0.0.1'
finally:
s.close()
return ip
# ============== 游戏主页面 ==============
GAME_HTML = '''
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>🏎️ 3D赛车游戏</title>
<style>
* { margin: 0; padding: 0; }
body { overflow: hidden; background: #000; font-family: Arial, sans-serif; }
#container { width: 100vw; height: 100vh; }
#qrcode-panel {
position: fixed;
top: 20px;
right: 20px;
background: rgba(255,255,255,0.95);
padding: 15px;
border-radius: 15px;
text-align: center;
box-shadow: 0 10px 40px rgba(0,0,0,0.3);
z-index: 100;
}
#qrcode-panel img { border-radius: 10px; }
#qrcode-panel p {
margin-top: 10px;
font-weight: bold;
color: #333;
font-size: 14px;
}
#hud {
position: fixed;
bottom: 20px;
left: 20px;
color: white;
font-size: 18px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}
#speed-display {
font-size: 48px;
font-weight: bold;
color: #00ff88;
}
#connection-status {
position: fixed;
top: 20px;
left: 20px;
padding: 10px 20px;
border-radius: 25px;
font-weight: bold;
font-size: 14px;
}
.disconnected { background: #ff4444; color: white; }
.connected { background: #00ff88; color: #000; }
#minimap {
position: fixed;
bottom: 20px;
right: 20px;
width: 180px;
height: 180px;
background: rgba(0,0,0,0.7);
border-radius: 10px;
border: 2px solid #00ff88;
}
#lap-info {
position: fixed;
top: 80px;
left: 20px;
color: white;
font-size: 24px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}
</style>
</head>
<body>
<div id="container"></div>
<div id="qrcode-panel">
<img src="{{ qrcode_data }}" width="150" height="150" alt="扫码控制">
<p>📱 手机扫码控制赛车</p>
</div>
<div id="connection-status" class="disconnected">⏳ 等待控制器连接...</div>
<div id="hud">
<div id="speed-display">0</div>
<div>KM/H</div>
</div>
<div id="lap-info">
🏁 圈数: <span id="lap-count">0</span>/3
</div>
<canvas id="minimap"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r134/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.5.4/socket.io.min.js"></script>
<script>
// ===== 游戏变量 =====
let scene, camera, renderer;
let car, carGroup;
let speed = 0, maxSpeed = 2.5;
let steering = 0, acceleration = 0, braking = false;
let carAngle = 0;
let lapCount = 0, lastCheckpoint = false;
let trees = [], buildings = [];
// ===== 初始化游戏 =====
function init() {
// 场景
scene = new THREE.Scene();
scene.background = new THREE.Color(0x87CE.........完整代码请登录后点击上方下载按钮下载查看















网友评论0