鱼C论坛

 找回密码
 立即注册
查看: 2715|回复: 4

[已解决]急,我用pygame做的贪吃蛇游戏边缘碰撞出问题了

[复制链接]
发表于 2021-1-26 20:51:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 石泊远 于 2021-1-26 21:00 编辑

  1. import pygame, sys
  2. import random
  3. from pygame.math import Vector2
  4. pygame.init()

  5. class SNAKE:
  6.     def __init__(self):
  7.         self.body = [Vector2(5,10),Vector2(4,10),Vector2(3,10)]
  8.         self.direction = Vector2(1,0)
  9.         self.new_block = False

  10.     def draw_snake(self):
  11.         for block in self.body:
  12.             x_pos = int(block.x * cell_size)
  13.             y_pos = int(block.y * cell_size)
  14.             block_rect = pygame.Rect(x_pos,y_pos,cell_size,cell_size)
  15.             pygame.draw.rect(screen,(255,106,106),block_rect)

  16.     def move_snake(self):
  17.         if self.new_block:
  18.             body_copy = self.body[:]
  19.             body_copy.insert(0, body_copy[0] + self.direction)
  20.             self.body = body_copy[:]
  21.             self.new_block = False
  22.         else:
  23.             body_copy = self.body[:-1]
  24.             body_copy.insert(0,body_copy[0] + self.direction)
  25.             self.body = body_copy[:]

  26.     def add_block(self):
  27.         self.new_block = True

  28. class FRUIT:
  29.     def __init__(self):
  30.         self.randommize()

  31.     def draw_fruit(self):
  32.         fruit_rect = pygame.Rect(int(self.pos.x * cell_size),int(self.pos.y * cell_size),cell_size,cell_size)
  33.         screen.blit(apple,fruit_rect)

  34.     def randommize(self):
  35.         self.x = random.randint(0, cell_number - 1)
  36.         self.y = random.randint(0, cell_number - 1)
  37.         self.pos = Vector2(self.x, self.y)

  38. class MAIN:
  39.     def __init__(self):
  40.         self.snake = SNAKE()
  41.         self.fruit = FRUIT()

  42.     def update(self):
  43.         self.snake.move_snake()
  44.         self.check_collision()
  45.         self.check_fail()

  46.     def draw_elements(self):
  47.         self.draw_grass()
  48.         self.draw_score()
  49.         self.fruit.draw_fruit()
  50.         self.snake.draw_snake()

  51.     def check_collision(self):
  52.         if self.fruit.pos == self.snake.body[0]:
  53.             self.fruit.randommize()
  54.             self.snake.add_block()

  55.     def check_fail(self):
  56.         if not ((0 <= self.snake.body[0].x >= cell_number) or
  57.            not (0 <= self.snake.body[0].y >= cell_number)):
  58.             self.game_over()

  59.         for block in self.snake.body[1:]:
  60.             if block == self.snake.body[0]:
  61.                  self.game_over()

  62.     def draw_grass(self):
  63.         grass_color = (167,199,61)
  64.         for cl in range(cell_number):
  65.             c_n = 0 if (cl == 0) or (cl % 2 == 0) else 1
  66.             for col in range(c_n,cell_number,2):
  67.                 grass_rect = pygame.Rect(col * cell_size,cl * cell_size,cell_size,cell_size)
  68.                 pygame.draw.rect(screen,grass_color,grass_rect)

  69.     def draw_score(self):
  70.         score_num = int(len(self.snake.body) - 3)
  71.         score_surface = game_font.render('SCORE '+str(score_num),True,(85,107,47))
  72.         score_x = int(3 * cell_size)
  73.         score_y = int(1 * cell_size)
  74.         score_rect = score_surface.get_rect(center = (score_x,score_y))
  75.         screen.blit(score_surface,score_rect)

  76.     def game_over(self):
  77.         pygame.quit()
  78.         sys.exit()

  79. cell_size = 30
  80. cell_number = 20
  81. screen = pygame.display.set_mode((cell_size * cell_number,cell_size * cell_number))
  82. clock = pygame.time.Clock()
  83. apple = pygame.image.load('apple.jpg').convert_alpha()
  84. game_font = pygame.font.Font(None,25)

  85. main_game = MAIN()

  86. SCREEN_UPDATE = pygame.USEREVENT
  87. pygame.time.set_timer(SCREEN_UPDATE,100)

  88. while True:
  89.     for event in pygame.event.get():
  90.         if event.type == pygame.QUIT:
  91.             main_game.game_over()
  92.         if event.type == SCREEN_UPDATE:
  93.             main_game.update()      #这里出问题了
复制代码

  1.         if event.type == pygame.KEYDOWN:
  2.             if event.key == pygame.K_UP:
  3.                 if main_game.snake.direction.y != 1:
  4.                     main_game.snake.direction = Vector2(0,-1)
  5.             if event.key == pygame.K_RIGHT:
  6.                 if main_game.snake.direction.x != -1:
  7.                     main_game.snake.direction = Vector2(1,0)
  8.             if event.key == pygame.K_DOWN:
  9.                 if main_game.snake.direction.y != -1:
  10.                     main_game.snake.direction = Vector2(0,1)
  11.             if event.key == pygame.K_LEFT:
  12.                 if main_game.snake.direction.x != 1:
  13.                     main_game.snake.direction = Vector2(-1,0)
  14.     screen.fill((175,215,70))
  15.     main_game.draw_elements()
  16.     pygame.display.update()
  17.     clock.tick(60)
复制代码
最佳答案
2021-1-27 10:14:21

  1. import random
  2. import pygame
  3. import sys

  4. from pygame.locals import *


  5. snake_speed = 5 #贪吃蛇的速度
  6. windows_width = 800
  7. windows_height = 600 #游戏窗口的大小
  8. cell_size = 20       #贪吃蛇身体方块大小,注意身体大小必须能被窗口长宽整除

  9. ''' #初始化区
  10. 由于我们的贪吃蛇是有大小尺寸的, 因此地图的实际尺寸是相对于贪吃蛇的大小尺寸而言的
  11. '''
  12. map_width = int(windows_width / cell_size)
  13. map_height = int(windows_height / cell_size)

  14. # 颜色定义
  15. white = (255, 255, 255)
  16. black = (0, 0, 0)
  17. gray = (230, 230, 230)
  18. dark_gray = (40, 40, 40)
  19. DARKGreen = (0, 155, 0)
  20. Green = (0, 255, 0)
  21. Red = (255, 0, 0)
  22. blue = (0, 0, 255)
  23. dark_blue =(0,0, 139)


  24. BG_COLOR = black #游戏背景颜色

  25. # 定义方向
  26. UP = 1
  27. DOWN = 2
  28. LEFT = 3
  29. RIGHT = 4

  30. HEAD = 0 #贪吃蛇头部下标

  31. #主函数
  32. def main():
  33.     pygame.init() # 模块初始化
  34.     snake_speed_clock = pygame.time.Clock() # 创建Pygame时钟对象
  35.     screen = pygame.display.set_mode((windows_width, windows_height)) #
  36.     screen.fill(white)

  37.     pygame.display.set_caption("蓝蛇修仙") #设置标题
  38.     show_start_info(screen)               #欢迎信息
  39.     while True:
  40.         running_game(screen, snake_speed_clock)
  41.         show_gameover_info(screen)


  42. #游戏运行主体
  43. def running_game(screen,snake_speed_clock):
  44.     startx = random.randint(3, map_width - 8) #开始位置
  45.     starty = random.randint(3, map_height - 8)
  46.     snake_coords = [{'x': startx, 'y': starty},  #初始贪吃蛇
  47.                   {'x': startx - 1, 'y': starty},
  48.                   {'x': startx - 2, 'y': starty}]

  49.     direction = RIGHT       #  开始时向右移动

  50.     food = get_random_location()     #实物随机位置

  51.     while True:
  52.         for event in pygame.event.get():
  53.             if event.type == QUIT:
  54.                 terminate()
  55.             elif event.type == KEYDOWN:
  56.                 if (event.key == K_LEFT or event.key == K_a) and direction != RIGHT:
  57.                     direction = LEFT
  58.                 elif (event.key == K_RIGHT or event.key == K_d) and direction != LEFT:
  59.                     direction = RIGHT
  60.                 elif (event.key == K_UP or event.key == K_w) and direction != DOWN:
  61.                     direction = UP
  62.                 elif (event.key == K_DOWN or event.key == K_s) and direction != UP:
  63.                     direction = DOWN
  64.                 elif event.key == K_ESCAPE:
  65.                     terminate()

  66.         move_snake(direction, snake_coords) #移动蛇

  67.         ret = snake_is_alive(snake_coords)
  68.         if not ret:
  69.             break #蛇跪了. 游戏结束
  70.         snake_is_eat_food(snake_coords, food) #判断蛇是否吃到食物

  71.         screen.fill(BG_COLOR)
  72.         #draw_grid(screen)
  73.         draw_snake(screen, snake_coords)
  74.         draw_food(screen, food)
  75.         draw_score(screen, len(snake_coords) - 3)
  76.         pygame.display.update()
  77.         snake_speed_clock.tick(snake_speed) #控制fps
  78. #将食物画出来
  79. def draw_food(screen, food):
  80.     x = food['x'] * cell_size
  81.     y = food['y'] * cell_size
  82.     appleRect = pygame.Rect(x, y, cell_size, cell_size)
  83.     pygame.draw.rect(screen, Red, appleRect)
  84. #将贪吃蛇画出来
  85. def draw_snake(screen, snake_coords):
  86.     for coord in snake_coords:
  87.         x = coord['x'] * cell_size
  88.         y = coord['y'] * cell_size
  89.         wormSegmentRect = pygame.Rect(x, y, cell_size, cell_size)
  90.         pygame.draw.rect(screen, dark_blue, wormSegmentRect)
  91.         wormInnerSegmentRect = pygame.Rect(                #蛇身子里面的第二层亮绿色
  92.             x + 4, y + 4, cell_size - 8, cell_size - 8)
  93.         pygame.draw.rect(screen, blue, wormInnerSegmentRect)
  94. #画网格(可选)
  95. def draw_grid(screen):
  96.     for x in range(0, windows_width, cell_size):  # draw 水平 lines
  97.         pygame.draw.line(screen, dark_gray, (x, 0), (x, windows_height))
  98.     for y in range(0, windows_height, cell_size):  # draw 垂直 lines
  99.         pygame.draw.line(screen, dark_gray, (0, y), (windows_width, y))
  100. #移动贪吃蛇
  101. def move_snake(direction, snake_coords):
  102.     if direction == UP:
  103.         newHead = {'x': snake_coords[HEAD]['x'], 'y': snake_coords[HEAD]['y'] - 1}
  104.     elif direction == DOWN:
  105.         newHead = {'x': snake_coords[HEAD]['x'], 'y': snake_coords[HEAD]['y'] + 1}
  106.     elif direction == LEFT:
  107.         newHead = {'x': snake_coords[HEAD]['x'] - 1, 'y': snake_coords[HEAD]['y']}
  108.     elif direction == RIGHT:
  109.         newHead = {'x': snake_coords[HEAD]['x'] + 1, 'y': snake_coords[HEAD]['y']}

  110.     snake_coords.insert(0, newHead)
  111. #判断蛇死了没
  112. def snake_is_alive(snake_coords):
  113.     tag = True
  114.     if snake_coords[HEAD]['x'] == -1 or snake_coords[HEAD]['x'] == map_width or snake_coords[HEAD]['y'] == -1 or \
  115.             snake_coords[HEAD]['y'] == map_height:
  116.         tag = False # 蛇碰壁啦
  117.     for snake_body in snake_coords[1:]:
  118.         if snake_body['x'] == snake_coords[HEAD]['x'] and snake_body['y'] == snake_coords[HEAD]['y']:
  119.             tag = False # 蛇碰到自己身体啦
  120.     return tag
  121. #判断贪吃蛇是否吃到食物
  122. def snake_is_eat_food(snake_coords, food):  #如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。
  123.     if snake_coords[HEAD]['x'] == food['x'] and snake_coords[HEAD]['y'] == food['y']:
  124.         food['x'] = random.randint(0, map_width - 1)
  125.         food['y'] = random.randint(0, map_height - 1) # 实物位置重新设置
  126.     else:
  127.         del snake_coords[-1]  # 如果没有吃到实物, 就向前移动, 那么尾部一格删掉
  128. #食物随机生成
  129. def get_random_location():
  130.     return {'x': random.randint(0, map_width - 1), 'y': random.randint(0, map_height - 1)}
  131. #开始信息显示
  132. def show_start_info(screen):
  133.     font = pygame.font.Font('myfont.ttf', 40)
  134.     tip = font.render('按任意键开始游戏~~~', True, (65, 105, 225))
  135.     gamestart = pygame.image.load('ok.png')
  136.     screen.blit(gamestart, (140, 30))
  137.     screen.blit(tip, (240, 550))
  138.     pygame.display.update()

  139.     while True:  #键盘监听事件
  140.         for event in pygame.event.get():  # event handling loop
  141.             if event.type == QUIT:
  142.                 terminate()     #终止程序
  143.             elif event.type == KEYDOWN:
  144.                 if (event.key == K_ESCAPE):  #终止程序
  145.                     terminate() #终止程序
  146.                 else:
  147.                     return #结束此函数, 开始游戏
  148. #游戏结束信息显示
  149. def show_gameover_info(screen):
  150.     font = pygame.font.Font('myfont.ttf', 40)
  151.     tip = font.render('按Q或者ESC退出游戏, 按任意键重新开始游戏~', True, (65, 105, 225))
  152.     gamestart = pygame.image.load('gameover.png')
  153.     screen.blit(gamestart, (60, 0))
  154.     screen.blit(tip, (80, 300))
  155.     pygame.display.update()

  156.     while True:  #键盘监听事件
  157.         for event in pygame.event.get():  # event handling loop
  158.             if event.type == QUIT:
  159.                 terminate()     #终止程序
  160.             elif event.type == KEYDOWN:
  161.                 if event.key == K_ESCAPE or event.key == K_q:  #终止程序
  162.                     terminate() #终止程序
  163.                 else:
  164.                     return #结束此函数, 重新开始游戏
  165. #画成绩
  166. def draw_score(screen,score):
  167.     font = pygame.font.Font('myfont.ttf', 30)
  168.     scoreSurf = font.render('得分: %s' % score, True, Green)
  169.     scoreRect = scoreSurf.get_rect()
  170.     scoreRect.topleft = (windows_width - 120, 10)
  171.     screen.blit(scoreSurf, scoreRect)
  172. #程序终止
  173. def terminate():
  174.     pygame.quit()
  175.     sys.exit()


  176. main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-26 22:45:08 | 显示全部楼层
没有注释
没有发报错内容
看着脑袋大得很
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-27 10:10:39 | 显示全部楼层
改墙
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-27 10:14:21 | 显示全部楼层    本楼为最佳答案   

  1. import random
  2. import pygame
  3. import sys

  4. from pygame.locals import *


  5. snake_speed = 5 #贪吃蛇的速度
  6. windows_width = 800
  7. windows_height = 600 #游戏窗口的大小
  8. cell_size = 20       #贪吃蛇身体方块大小,注意身体大小必须能被窗口长宽整除

  9. ''' #初始化区
  10. 由于我们的贪吃蛇是有大小尺寸的, 因此地图的实际尺寸是相对于贪吃蛇的大小尺寸而言的
  11. '''
  12. map_width = int(windows_width / cell_size)
  13. map_height = int(windows_height / cell_size)

  14. # 颜色定义
  15. white = (255, 255, 255)
  16. black = (0, 0, 0)
  17. gray = (230, 230, 230)
  18. dark_gray = (40, 40, 40)
  19. DARKGreen = (0, 155, 0)
  20. Green = (0, 255, 0)
  21. Red = (255, 0, 0)
  22. blue = (0, 0, 255)
  23. dark_blue =(0,0, 139)


  24. BG_COLOR = black #游戏背景颜色

  25. # 定义方向
  26. UP = 1
  27. DOWN = 2
  28. LEFT = 3
  29. RIGHT = 4

  30. HEAD = 0 #贪吃蛇头部下标

  31. #主函数
  32. def main():
  33.     pygame.init() # 模块初始化
  34.     snake_speed_clock = pygame.time.Clock() # 创建Pygame时钟对象
  35.     screen = pygame.display.set_mode((windows_width, windows_height)) #
  36.     screen.fill(white)

  37.     pygame.display.set_caption("蓝蛇修仙") #设置标题
  38.     show_start_info(screen)               #欢迎信息
  39.     while True:
  40.         running_game(screen, snake_speed_clock)
  41.         show_gameover_info(screen)


  42. #游戏运行主体
  43. def running_game(screen,snake_speed_clock):
  44.     startx = random.randint(3, map_width - 8) #开始位置
  45.     starty = random.randint(3, map_height - 8)
  46.     snake_coords = [{'x': startx, 'y': starty},  #初始贪吃蛇
  47.                   {'x': startx - 1, 'y': starty},
  48.                   {'x': startx - 2, 'y': starty}]

  49.     direction = RIGHT       #  开始时向右移动

  50.     food = get_random_location()     #实物随机位置

  51.     while True:
  52.         for event in pygame.event.get():
  53.             if event.type == QUIT:
  54.                 terminate()
  55.             elif event.type == KEYDOWN:
  56.                 if (event.key == K_LEFT or event.key == K_a) and direction != RIGHT:
  57.                     direction = LEFT
  58.                 elif (event.key == K_RIGHT or event.key == K_d) and direction != LEFT:
  59.                     direction = RIGHT
  60.                 elif (event.key == K_UP or event.key == K_w) and direction != DOWN:
  61.                     direction = UP
  62.                 elif (event.key == K_DOWN or event.key == K_s) and direction != UP:
  63.                     direction = DOWN
  64.                 elif event.key == K_ESCAPE:
  65.                     terminate()

  66.         move_snake(direction, snake_coords) #移动蛇

  67.         ret = snake_is_alive(snake_coords)
  68.         if not ret:
  69.             break #蛇跪了. 游戏结束
  70.         snake_is_eat_food(snake_coords, food) #判断蛇是否吃到食物

  71.         screen.fill(BG_COLOR)
  72.         #draw_grid(screen)
  73.         draw_snake(screen, snake_coords)
  74.         draw_food(screen, food)
  75.         draw_score(screen, len(snake_coords) - 3)
  76.         pygame.display.update()
  77.         snake_speed_clock.tick(snake_speed) #控制fps
  78. #将食物画出来
  79. def draw_food(screen, food):
  80.     x = food['x'] * cell_size
  81.     y = food['y'] * cell_size
  82.     appleRect = pygame.Rect(x, y, cell_size, cell_size)
  83.     pygame.draw.rect(screen, Red, appleRect)
  84. #将贪吃蛇画出来
  85. def draw_snake(screen, snake_coords):
  86.     for coord in snake_coords:
  87.         x = coord['x'] * cell_size
  88.         y = coord['y'] * cell_size
  89.         wormSegmentRect = pygame.Rect(x, y, cell_size, cell_size)
  90.         pygame.draw.rect(screen, dark_blue, wormSegmentRect)
  91.         wormInnerSegmentRect = pygame.Rect(                #蛇身子里面的第二层亮绿色
  92.             x + 4, y + 4, cell_size - 8, cell_size - 8)
  93.         pygame.draw.rect(screen, blue, wormInnerSegmentRect)
  94. #画网格(可选)
  95. def draw_grid(screen):
  96.     for x in range(0, windows_width, cell_size):  # draw 水平 lines
  97.         pygame.draw.line(screen, dark_gray, (x, 0), (x, windows_height))
  98.     for y in range(0, windows_height, cell_size):  # draw 垂直 lines
  99.         pygame.draw.line(screen, dark_gray, (0, y), (windows_width, y))
  100. #移动贪吃蛇
  101. def move_snake(direction, snake_coords):
  102.     if direction == UP:
  103.         newHead = {'x': snake_coords[HEAD]['x'], 'y': snake_coords[HEAD]['y'] - 1}
  104.     elif direction == DOWN:
  105.         newHead = {'x': snake_coords[HEAD]['x'], 'y': snake_coords[HEAD]['y'] + 1}
  106.     elif direction == LEFT:
  107.         newHead = {'x': snake_coords[HEAD]['x'] - 1, 'y': snake_coords[HEAD]['y']}
  108.     elif direction == RIGHT:
  109.         newHead = {'x': snake_coords[HEAD]['x'] + 1, 'y': snake_coords[HEAD]['y']}

  110.     snake_coords.insert(0, newHead)
  111. #判断蛇死了没
  112. def snake_is_alive(snake_coords):
  113.     tag = True
  114.     if snake_coords[HEAD]['x'] == -1 or snake_coords[HEAD]['x'] == map_width or snake_coords[HEAD]['y'] == -1 or \
  115.             snake_coords[HEAD]['y'] == map_height:
  116.         tag = False # 蛇碰壁啦
  117.     for snake_body in snake_coords[1:]:
  118.         if snake_body['x'] == snake_coords[HEAD]['x'] and snake_body['y'] == snake_coords[HEAD]['y']:
  119.             tag = False # 蛇碰到自己身体啦
  120.     return tag
  121. #判断贪吃蛇是否吃到食物
  122. def snake_is_eat_food(snake_coords, food):  #如果是列表或字典,那么函数内修改参数内容,就会影响到函数体外的对象。
  123.     if snake_coords[HEAD]['x'] == food['x'] and snake_coords[HEAD]['y'] == food['y']:
  124.         food['x'] = random.randint(0, map_width - 1)
  125.         food['y'] = random.randint(0, map_height - 1) # 实物位置重新设置
  126.     else:
  127.         del snake_coords[-1]  # 如果没有吃到实物, 就向前移动, 那么尾部一格删掉
  128. #食物随机生成
  129. def get_random_location():
  130.     return {'x': random.randint(0, map_width - 1), 'y': random.randint(0, map_height - 1)}
  131. #开始信息显示
  132. def show_start_info(screen):
  133.     font = pygame.font.Font('myfont.ttf', 40)
  134.     tip = font.render('按任意键开始游戏~~~', True, (65, 105, 225))
  135.     gamestart = pygame.image.load('ok.png')
  136.     screen.blit(gamestart, (140, 30))
  137.     screen.blit(tip, (240, 550))
  138.     pygame.display.update()

  139.     while True:  #键盘监听事件
  140.         for event in pygame.event.get():  # event handling loop
  141.             if event.type == QUIT:
  142.                 terminate()     #终止程序
  143.             elif event.type == KEYDOWN:
  144.                 if (event.key == K_ESCAPE):  #终止程序
  145.                     terminate() #终止程序
  146.                 else:
  147.                     return #结束此函数, 开始游戏
  148. #游戏结束信息显示
  149. def show_gameover_info(screen):
  150.     font = pygame.font.Font('myfont.ttf', 40)
  151.     tip = font.render('按Q或者ESC退出游戏, 按任意键重新开始游戏~', True, (65, 105, 225))
  152.     gamestart = pygame.image.load('gameover.png')
  153.     screen.blit(gamestart, (60, 0))
  154.     screen.blit(tip, (80, 300))
  155.     pygame.display.update()

  156.     while True:  #键盘监听事件
  157.         for event in pygame.event.get():  # event handling loop
  158.             if event.type == QUIT:
  159.                 terminate()     #终止程序
  160.             elif event.type == KEYDOWN:
  161.                 if event.key == K_ESCAPE or event.key == K_q:  #终止程序
  162.                     terminate() #终止程序
  163.                 else:
  164.                     return #结束此函数, 重新开始游戏
  165. #画成绩
  166. def draw_score(screen,score):
  167.     font = pygame.font.Font('myfont.ttf', 30)
  168.     scoreSurf = font.render('得分: %s' % score, True, Green)
  169.     scoreRect = scoreSurf.get_rect()
  170.     scoreRect.topleft = (windows_width - 120, 10)
  171.     screen.blit(scoreSurf, scoreRect)
  172. #程序终止
  173. def terminate():
  174.     pygame.quit()
  175.     sys.exit()


  176. main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-27 18:18:09 | 显示全部楼层
小伤口 发表于 2021-1-26 22:45
没有注释
没有发报错内容
看着脑袋大得很

因为没有报错

只是边缘碰撞出问题了
蛇碰到边缘不死
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-28 14:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表