当前位置:首页>python>详细讲解用Python的Pygame库制作小游戏的全过程

详细讲解用Python的Pygame库制作小游戏的全过程

  • 2026-02-26 00:57:15
详细讲解用Python的Pygame库制作小游戏的全过程

一、前期准备:明确游戏框架与工具

1. 游戏定位

“简易版打砖块”是经典2D小游戏,核心玩法是:玩家控制底部挡板左右移动,反弹小球击打上方砖块,消除所有砖块获胜,小球掉落底部则失败。适合新手入门,涉及碰撞检测、用户输入、元素渲染等基础游戏开发逻辑。

2. 开发工具与环境

- 编程语言:Python 3.8+(兼容性好,支持Pygame最新版本)
- 游戏库:Pygame(2.0+版本,用于处理图形、声音、输入等)
- 开发IDE:推荐PyCharm(社区版免费,支持代码补全、调试)
- 辅助工具:
- 画图工具(如系统自带的“画图”或GIMP):制作简单的砖块、挡板图片(也可用代码绘制基础图形)
- 音频工具(如Audacity):处理碰撞音效(可选,初期可省略)

3. 环境搭建

- 安装Python:从Python官网下载对应系统版本,安装时勾选“Add Python to PATH”,确保命令行可调用。
- 安装Pygame:打开终端(Win+R输入cmd,Mac打开终端),输入命令:
bash

pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple # 用清华源加速
 
- 验证安装:终端输入 python 进入交互模式,输入 import pygame ,无报错则安装成功。

二、游戏开发核心步骤(分模块实现)

模块1:初始化游戏基础设置

所有游戏都需要初始化环境、设置窗口、定义基础参数,这是开发的第一步。

python

import pygame
import sys # 用于退出程序

# 1. 初始化Pygame
pygame.init()

# 2. 设置游戏窗口
WINDOW_WIDTH = 800 # 窗口宽度
WINDOW_HEIGHT = 600 # 窗口高度
screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) # 创建窗口
pygame.display.set_caption("简易打砖块") # 设置窗口标题

# 3. 定义颜色(RGB值)
BLACK = (0, 0, 0) # 背景色
WHITE = (255, 255, 255) # 挡板、小球颜色
RED = (255, 0, 0) # 砖块颜色1
GREEN = (0, 255, 0) # 砖块颜色2
BLUE = (0, 0, 255) # 砖块颜色3

# 4. 设置时钟(控制游戏帧率)
clock = pygame.time.Clock()
FPS = 60 # 每秒60帧,确保游戏速度稳定
 

模块2:创建游戏元素类(面向对象设计)

用类封装游戏元素(挡板、小球、砖块),便于管理属性(位置、大小)和方法(移动、绘制)。

(1)挡板类(Paddle)

玩家控制的挡板,需要左右移动,不能超出窗口边界。

python

class Paddle:
def __init__(self):
# 挡板属性
self.width = 100 # 宽度
self.height = 15 # 高度
# 初始位置:底部中间(x为窗口中心-宽度一半,y为窗口底部-高度-10像素)
self.x = (WINDOW_WIDTH - self.width) // 2
self.y = WINDOW_HEIGHT - self.height - 10
self.speed = 8 # 移动速度
self.rect = pygame.Rect(self.x, self.y, self.width, self.height) # 用于碰撞检测的矩形

def move(self, direction):
# 移动逻辑:left为-1(左移),right为1(右移),0不移动
self.x += direction * self.speed
# 限制挡板在窗口内(左边界不小于0,右边界不大于窗口宽度-挡板宽度)
if self.x < 0:
self.x = 0
if self.x > WINDOW_WIDTH - self.width:
self.x = WINDOW_WIDTH - self.width
# 更新碰撞矩形位置
self.rect.x = self.x

def draw(self):
# 绘制挡板(矩形)
pygame.draw.rect(screen, WHITE, self.rect)
 

(2)小球类(Ball)

自动移动的小球,碰撞边界或元素后反弹,掉落底部则游戏结束。

python

class Ball:
def __init__(self):
# 小球属性
self.radius = 10 # 半径
# 初始位置:挡板上方中间
self.x = WINDOW_WIDTH // 2
self.y = WINDOW_HEIGHT - 30 # 挡板y坐标 - 半径 - 5
self.speed_x = 5 # x方向速度(左右)
self.speed_y = -5 # y方向速度(上下,初始向上)
self.rect = pygame.Rect(
self.x - self.radius,
self.y - self.radius,
self.radius * 2,
self.radius * 2
) # 碰撞矩形(以圆心为中心,边长为直径)

def move(self):
# 移动逻辑:更新x和y坐标
self.x += self.speed_x
self.y += self.speed_y
# 更新碰撞矩形位置
self.rect.x = self.x - self.radius
self.rect.y = self.y - self.radius

# 碰撞左右边界:x方向反弹(速度取反)
if self.x - self.radius <= 0 or self.x + self.radius >= WINDOW_WIDTH:
self.speed_x = -self.speed_x

# 碰撞上边界:y方向反弹
if self.y - self.radius <= 0:
self.speed_y = -self.speed_y

# 小球掉落底部(失败条件):y坐标超过窗口高度
if self.y + self.radius > WINDOW_HEIGHT:
return False # 失败
return True # 正常

def draw(self):
# 绘制小球(圆形)
pygame.draw.circle(screen, WHITE, (self.x, self.y), self.radius)

def bounce(self, paddle):
# 与挡板碰撞:y方向反弹(需检测是否是从上方碰撞)
if self.rect.colliderect(paddle.rect) and self.speed_y > 0: # 小球向下运动时碰撞挡板
self.speed_y = -self.speed_y
# 优化:碰撞挡板左右不同位置,小球x方向速度变化(让游戏更有技巧性)
hit_position = (self.x - (paddle.x + paddle.width // 2)) / (paddle.width // 2)
self.speed_x = hit_position * 5 # 范围:-5到5,边缘碰撞时斜向反弹更明显
 

(3)砖块类(Brick)

被击打后消失的砖块,可设置不同颜色和生命值(初期简化为1次碰撞消失)。

python

class Brick:
def __init__(self, x, y, color):
# 砖块属性
self.width = 80 # 宽度
self.height = 30 # 高度
self.x = x # 位置x
self.y = y # 位置y
self.color = color # 颜色
self.alive = True # 是否存在(被击中后设为False)
self.rect = pygame.Rect(self.x, self.y, self.width, self.height) # 碰撞矩形

def draw(self):
# 只绘制存在的砖块
if self.alive:
pygame.draw.rect(screen, self.color, self.rect)
# 砖块边框(更美观)
pygame.draw.rect(screen, BLACK, self.rect, 2) # 2是边框宽度
 

模块3:创建砖块矩阵(初始化关卡)

在窗口上方生成多行多列的砖块,作为游戏目标。

python

def create_bricks():
bricks = []
brick_rows = 5 # 5行砖块
brick_cols = 9 # 9列砖块
brick_gap = 10 # 砖块间距
# 计算起始位置(居中排列)
start_x = (WINDOW_WIDTH - (brick_cols * (80 + brick_gap) - brick_gap)) // 2
start_y = 50 # 距离顶部50像素

# 循环生成砖块
for row in range(brick_rows):
for col in range(brick_cols):
# 计算每个砖块的位置
x = start_x + col * (80 + brick_gap)
y = start_y + row * (30 + brick_gap)
# 每行砖块颜色不同
if row == 0:
color = RED
elif row == 1 or row == 2:
color = GREEN
else:
color = BLUE
bricks.append(Brick(x, y, color))
return bricks
 

模块4:游戏主循环(核心逻辑)

游戏的“心脏”,负责处理输入、更新元素状态、检测碰撞、渲染画面,循环执行直到游戏结束。

python

def main():
# 初始化游戏元素
paddle = Paddle()
ball = Ball()
bricks = create_bricks()
score = 0 # 分数(消除一个砖块得10分)
game_over = False # 游戏是否结束
win = False # 是否获胜

# 主循环
while True:
# 1. 处理事件(用户输入、窗口关闭等)
for event in pygame.event.get():
if event.type == pygame.QUIT: # 点击窗口关闭按钮
pygame.quit()
sys.exit() # 退出程序

if not game_over:
# 2. 处理挡板移动(左右方向键控制)
keys = pygame.key.get_pressed() # 获取所有按键状态
if keys[pygame.K_LEFT]:
paddle.move(-1) # 左移
if keys[pygame.K_RIGHT]:
paddle.move(1) # 右移

# 3. 移动小球并检测是否掉落
if not ball.move():
game_over = True # 小球掉落,游戏结束
win = False

# 4. 检测小球与挡板碰撞
ball.bounce(paddle)

# 5. 检测小球与砖块碰撞
for brick in bricks:
if brick.alive and ball.rect.colliderect(brick.rect):
# 砖块被击中:标记为消失,小球反弹,加分
brick.alive = False
ball.speed_y = -ball.speed_y # y方向反弹
score += 10
break # 避免一次碰撞多个砖块(简化逻辑)

# 6. 检测是否获胜(所有砖块被消除)
if all(not brick.alive for brick in bricks):
game_over = True
win = True

# 7. 绘制画面
screen.fill(BLACK) # 填充背景色(清除上一帧)

# 绘制所有元素
paddle.draw()
ball.draw()
for brick in bricks:
brick.draw()

# 显示分数
font = pygame.font.SysFont("SimHei", 30) # 支持中文显示
score_text = font.render(f"分数: {score}", True, WHITE)
screen.blit(score_text, (10, 10)) # 绘制在左上角

# 游戏结束画面
if game_over:
if win:
end_text = font.render("获胜!按R重玩,Q退出", True, GREEN)
else:
end_text = font.render("失败!按R重玩,Q退出", True, RED)
# 居中显示
text_rect = end_text.get_rect(center=(WINDOW_WIDTH//2, WINDOW_HEIGHT//2))
screen.blit(end_text, text_rect)
# 处理重玩/退出
keys = pygame.key.get_pressed()
if keys[pygame.K_r]: # 按R重玩
# 重置游戏元素
paddle = Paddle()
ball = Ball()
bricks = create_bricks()
score = 0
game_over = False
if keys[pygame.K_q]: # 按Q退出
pygame.quit()
sys.exit()

# 8. 更新屏幕(刷新画面)
pygame.display.flip()
# 9. 控制帧率
clock.tick(FPS)

# 启动游戏
if __name__ == "__main__":
main()
 

三、功能测试与调试

完成代码后,需要测试并修复可能的问题:

1. 运行代码:在PyCharm中右键“Run”,或终端输入 python 文件名.py (确保文件名正确)。
2. 常见问题排查:
- 窗口闪退:检查是否漏写 pygame.init() ,或主循环是否正常执行。
- 挡板/小球不动:检查按键检测逻辑,确保 pygame.key.get_pressed() 正确使用。
- 碰撞不反弹:检查 rect 的位置是否与元素实际位置一致(小球的 rect 需以圆心为中心)。
- 中文乱码: font.SysFont("SimHei", 30) 中“SimHei”是系统黑体,若没有可换“Microsoft YaHei”等。
3. 体验优化:
- 调整小球速度( speed_x 、 speed_y )和挡板速度( speed ),避免过快或过慢。
- 砖块间距和数量可根据窗口大小调整,确保完全显示。

四、功能扩展(让游戏更完善)

基础版完成后,可逐步添加功能,提升游戏体验:

1. 增加音效

- 安装 pygame.mixer 处理音频,在碰撞时播放音效:
python

# 初始化音效
pygame.mixer.init()
bounce_sound = pygame.mixer.Sound("bounce.wav") # 碰撞音效文件(需提前准备)
# 在小球碰撞挡板/砖块时播放
ball.bounce(paddle):
bounce_sound.play()
 

2. 多关卡设计

- 定义多个关卡的砖块布局(如行数、列数、颜色),消除所有砖块后切换到下一关,速度逐渐增加。

3. 特殊砖块

- 部分砖块需要多次击打才消失,或击中后掉落道具(如挡板变长、小球减速):
python

class Brick:
def __init__(self, x, y, color, health=1, has_powerup=False):
self.health = health # 生命值
self.has_powerup = has_powerup # 是否有道具
# 被击中时生命值减1,为0时消失
 

4. 记录最高分

- 用 pickle 模块将最高分保存到文件,游戏结束后更新并显示:
python

import pickle
# 读取最高分
try:
with open("highscore.pkl", "rb") as f:
highscore = pickle.load(f)
except:
highscore = 0
# 保存最高分
if score > highscore:
with open("highscore.pkl", "wb") as f:
pickle.dump(score, f)
 

五、打包发布(让他人也能玩)

用 pyinstaller 将Python代码打包成exe文件(Windows)或应用程序(Mac):

1. 安装打包工具: pip install pyinstaller 
2. 打包命令:
bash

pyinstaller --onefile --windowed 游戏文件名.py # --windowed隐藏控制台窗口
 
3. 生成的exe文件在 dist 文件夹中,若有音效/图片等资源,需手动复制到同目录。

总结

制作小游戏的核心流程可归纳为:

1. 明确玩法,拆分元素(玩家控制的角色、目标元素、障碍物等);
2. 用类封装元素的属性和行为(移动、绘制、碰撞);
3. 编写主循环,串联“输入-更新-渲染”逻辑;
4. 测试调试,逐步扩展功能。

从这个“打砖块”例子出发,你可以尝试修改参数(如小球速度、砖块布局),或替换元素(如将砖块换成怪物,做成射击游戏)。关键是理解“游戏循环”和“碰撞检测”的逻辑,这是所有2D游戏的基础。随着熟练度提升,可学习更复杂的物理引擎(如Box2D)或尝试3D游戏开发(如用Unity),但Pygame足以让你迈出游戏开发的第一步。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-28 21:29:19 HTTP/2.0 GET : https://f.mffb.com.cn/a/476909.html
  2. 运行时间 : 0.101809s [ 吞吐率:9.82req/s ] 内存消耗:4,528.78kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=814a6a2ee3b9e9cfdf0a5111d22ad1e3
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001049s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001633s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000701s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000484s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000966s ]
  6. SELECT * FROM `set` [ RunTime:0.000382s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001133s ]
  8. SELECT * FROM `article` WHERE `id` = 476909 LIMIT 1 [ RunTime:0.000828s ]
  9. UPDATE `article` SET `lasttime` = 1772285359 WHERE `id` = 476909 [ RunTime:0.001332s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000529s ]
  11. SELECT * FROM `article` WHERE `id` < 476909 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001111s ]
  12. SELECT * FROM `article` WHERE `id` > 476909 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000828s ]
  13. SELECT * FROM `article` WHERE `id` < 476909 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001878s ]
  14. SELECT * FROM `article` WHERE `id` < 476909 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001589s ]
  15. SELECT * FROM `article` WHERE `id` < 476909 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001425s ]
0.105231s