import pgzrun import random from pgzhelper import * # 游戏窗口大小 WIDTH = 1500 HEIGHT = 800 # 创建背景角色 bg1 = Actor('连续道路', topleft = (0,0)) bg2 = Actor('连续道路', topleft = (1500,0)) # 创建障碍物 obstacles = [] for _ in range(3): # 障碍物数量 x = random.randint(WIDTH, WIDTH + 1500) # 障碍物出现在屏幕右侧外 y = random.randint(100, HEIGHT - 50) obstacles.append(Actor('路障', (x, y))) # 创建摩托车 motor = Actor('摩托1', (200, HEIGHT // 2)) # 将摩托造型存放在列表内 motor.images = ['摩托1','摩托2'] # 初始化设置 speed = 15 def draw(): # 绘制连续背景 bg1.draw() bg2.draw() # 绘制障碍物 for obs in obstacles: obs.draw() # 绘制摩托 motor.draw() # 背景、终点线移动 def bg_move(): bg1.x -= speed bg2.x -= speed if bg1.right <= 0: bg1.left = bg2.right if bg2.right <= 0: bg2.left = bg1.right # 更新障碍物位置 def obs_move(): for obs in obstacles: obs.x -= speed # 障碍物随背景一起移动 if obs.x < 0: obs.x = random.randint(WIDTH, WIDTH + 1500) # 障碍物继续出现在屏幕外 obs.y = random.randint(100, HEIGHT - 50) def update(): bg_move() obs_move() # 控制赛车移动,限制不能出界 if keyboard.up and motor.top > 0: motor.y -= 7 if keyboard.down and motor.bottom < HEIGHT-50: motor.y += 7 def change_image(): motor.next_image() clock.schedule_interval(change_image,0.2) pgzrun.go()