用户:
蓦然回首7wkR查看:4 回复:9 评论:4 创建时间:2022-07-29T13:09:48
【作品展示】

【作品介绍】
w向前,s向后,a向左,d向后。躲避白色小车。左上角会有分数。注意,敌人速度会越来越多哦
【作品源代码】
import pygame
import sys
import time
import random
class Constant:
SCREEN_HEIGHT = 700
SCREEN_WIGHT = 700
BLACK = (0, 0, 0)
RED = (255, 0, 0)
SCORE = 0
SPEED = 1
class Enemy(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("Enemy.jpg")
self.surf = pygame.Surface((60, 96))
self.rect = self.surf.get_rect(top=0, left=random.randint(0, 624))
def move(self):
self.rect.move_ip(0, Constant.SPEED)
if self.rect.top >= Constant.SCREEN_HEIGHT:
self.rect.top = 0
self.rect.left = random.randint(0, 624)
Constant.SCORE += 1
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("Player.png")
self.surf = pygame.Surface((20, 83))
self.rect = self.surf.get_rect(top=601, left=332)
def move(self):
pressed_key = pygame.key.get_pressed()
if pressed_key[pygame.K_w] and self.rect.top >= 0:
self.rect.move_ip(0, -5)
if pressed_key[pygame.K_s] and self.rect.bottom <= Constant.SCREEN_HEIGHT:
self.rect.move_ip(0, 5)
if pressed_key[pygame.K_a] and self.rect.left >= 0:
self.rect.move_ip(-5, 0)
if pressed_key[pygame.K_d] and self.rect.right <= Constant.SCREEN_WIGHT:
self.rect.move_ip(5, 0)
class Game:
def __init__(self):
pygame.init()
size = Constant.SCREEN_HEIGHT, Constant.SCREEN_WIGHT
self.screen = pygame.display.set_mode(size)
pygame.display.set_caption("逆行飙车")
big_font = pygame.font.SysFont("微软雅黑", 60)
self.喵all_font = pygame.font.SysFont("微软雅黑", 20)
self.game_over = big_font.render("游戏结束", True, Constant.BLACK)
self.clock = pygame.time.Clock()
self.FPS = 70
self.background = pygame.image.load("Background.jpg")
self.SPEED_UP = pygame.USEREVENT + 1
pygame.time.set_timer(self.SPEED_UP, 1000)
def run(self):
player = Player()
enemy = Enemy()
enemies = pygame.sprite.Group()
enemies.add(enemy)
all_sprites = pygame.sprite.Group()
all_sprites.add(player)
all_sprites.add(enemy)
pygame.mixer.Sound("Background.wav").play(-1)
while True:
self.screen.blit(self.background, (0, 0))
for sprite in all_sprites:
self.screen.blit(sprite.image, sprite.rect)
sprite.move()
scores = self.喵all_font.render(str(Constant.SCORE), True, Constant.BLACK)
self.screen.blit(scores, (10, 10))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == self.SPEED_UP:
Constant.SPEED += 0.5
if pygame.sprite.spritecollideany(player, enemies):
time.sleep(2)
self.screen.fill(Constant.RED)
self.screen.blit(self.game_over, (255, 255))
pygame.display.update()
time.sleep(3)
pygame.quit()
sys.exit()
pygame.display.update()
self.clock.tick(self.FPS)
if __name__ == "__main__":
game = Game()
game.run()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn