美文网首页
Pygame使用测试(六)

Pygame使用测试(六)

作者: Ritchie_Li | 来源:发表于2022-06-04 20:39 被阅读0次

在本节中,我们将介绍背景、声音、字体和评分系统。这些都是游戏中需要的重要功能,以使其成为完整的产品。

完整代码如下:

# 1.导入库 

import pygame, sys

from pygame.locals import *

import random, time

# 2.初始化

pygame.init()

# 3.设置帧数 FPS

FPS = 60

FramePerSec = pygame.time.Clock()

# 4.创建颜色对象

BLUE  = (0, 0, 255)

RED  = (255, 0, 0)

GREEN = (0, 255, 0)

BLACK = (0, 0, 0)

WHITE = (255, 255, 255)

# 4. 创建屏幕尺寸,宽度和高度,速度,分数变量

SCREEN_WIDTH = 400

SCREEN_HEIGHT = 600

SPEED = 5

SCORE = 0

# 5.设置显示的字体

font = pygame.font.SysFont("Verdana", 60)

font_small = pygame.font.SysFont("Verdana", 20)

game_over = font.render("Game Over", True, BLACK)

background = pygame.image.load("AnimatedStreet.png")

# 6.创建显示屏幕,填充白色背景

DISPLAYSURF = pygame.display.set_mode((400,600))

DISPLAYSURF.fill(WHITE)

# 设置界面标题

pygame.display.set_caption("Game")

# 7.创建电脑游戏对战类

class Enemy(pygame.sprite.Sprite):

      def __init__(self):

        super().__init__()

        self.image = pygame.image.load("Enemy.png")

        self.rect = self.image.get_rect()

        self.rect.center = (random.randint(40, SCREEN_WIDTH-40), 0) 

      def move(self):

        global SCORE

        self.rect.move_ip(0,SPEED)

        if (self.rect.top > 600):

            SCORE += 1

            self.rect.top = 0

            self.rect.center = (random.randint(40, SCREEN_WIDTH - 40), 0)

# 8. 创建游戏玩家角色类

class Player(pygame.sprite.Sprite):

    def __init__(self):

        super().__init__()

        self.image = pygame.image.load("Player.png")

        self.rect = self.image.get_rect()

        self.rect.center = (160, 520)

    def move(self):

        pressed_keys = pygame.key.get_pressed()

      #if pressed_keys[K_UP]:

            #self.rect.move_ip(0, -5)

      #if pressed_keys[K_DOWN]:

            #self.rect.move_ip(0,5)

        if self.rect.left > 0:

              if pressed_keys[K_LEFT]:

                  self.rect.move_ip(-5, 0)

        if self.rect.right < SCREEN_WIDTH:       

              if pressed_keys[K_RIGHT]:

                  self.rect.move_ip(5, 0)

# 9. 实例化游戏角色

P1 = Player()

E1 = Enemy()

#Creating Sprites Groups

enemies = pygame.sprite.Group()

enemies.add(E1)

all_sprites = pygame.sprite.Group()

all_sprites.add(P1)

all_sprites.add(E1)

# 添加一个事件,加快运动速度

INC_SPEED = pygame.USEREVENT + 1

pygame.time.set_timer(INC_SPEED, 1000)

# 10. 游戏循环

while True:

    #Cycles through all events occurring 

    for event in pygame.event.get():

        if event.type == INC_SPEED:

              SPEED += 0.5   

        if event.type == QUIT:

            pygame.quit()

            sys.exit()

    DISPLAYSURF.blit(background, (0,0))

    scores = font_small.render(str(SCORE), True, BLACK)

    DISPLAYSURF.blit(scores, (10,10))

    #Moves and Re-draws all Sprites

    for entity in all_sprites:

        DISPLAYSURF.blit(entity.image, entity.rect)

        entity.move()

    #To be run if collision occurs between Player and Enemy

    if pygame.sprite.spritecollideany(P1, enemies):

          pygame.mixer.Sound('crash.wav').play()

          time.sleep(0.5)

          DISPLAYSURF.fill(RED)

          DISPLAYSURF.blit(game_over, (30,250))

          pygame.display.update()

          for entity in all_sprites:

                entity.kill()

          time.sleep(2)

          pygame.quit()

          sys.exit()       

    pygame.display.update()

    FramePerSec.tick(FPS)

相关文章

  • Pygame使用测试(六)

    在本节中,我们将介绍背景、声音、字体和评分系统。这些都是游戏中需要的重要功能,以使其成为完整的产品。 完整代码如下...

  • Pygame使用测试(五)

    在本节中介绍 Sprite 分组、碰撞检测、用户事件和其他一些功能。 1. 增加速度配置 self.rect.mo...

  • Pygame使用测试(三)

    使用帧数 计算机的速度非常快,可以在一秒钟内完成数百万个循环周期。现在显然,这对我们人类来说有点快。作为参考,电影...

  • Pygame使用测试(四)

    使用OPP 面向对象的编程方式,创建类,来复用代码。 1. 创建玩家类 class Player(pygame.s...

  • Pygame使用测试(一)

    最近因为孩子在学习使用Pygame做游戏编程,遇到问题咨询我,不得不对Pygame 做一个初步的了解使用。 官网有...

  • Pygame使用测试(二)

    1. Pygame 事件对象 当用户执行特定操作(例如单击鼠标或按下键盘按钮)时,会发生“事件”。Pygame 记...

  • python----pygame图形接口(太全了,收了)

    pygame图形接口 使用pygame.image模块,可以对图像进行读取和保存。 使用pygame.image....

  • Pygame-hello world

    使用pygame 模块名功能pygame.cdrom访问光驱pygame.cursors加载光标pygame.di...

  • 2020 无人驾驶(5)之车道线检测

    这里使用 pygame 来显示图片,有关 pygame 使用方法还是比较简单,pygame.init()初始化 p...

  • pygame图形移动、反弹、翻转

    pygame使用(01)

网友评论

      本文标题:Pygame使用测试(六)

      本文链接:https://www.haomeiwen.com/subject/ztrtmrtx.html