python 您所在的位置:网站首页 所有初始精灵 python

python

2024-01-21 15:04| 来源: 网络整理| 查看: 265

python-pygame精灵组使用示例 前言代码结果稍稍改进更改简介更改后的完整代码更改后的结果

前言

在使用pygame进行游戏开发和学习时,Sprite精灵和精灵组是非常常用的模块,本文提供一个非常简单的使用精灵组的例子,在学习精灵组使用时中可快速入门。其中重要的信息全部在注释中写出,因此文中不再赘述。

代码 """ 精灵测试 """ import pygame from random import randint from sys import exit from pygame.locals import * SCREEN_WIDTH = 480 SCREEN_HEIGHT = 640 # 继承Sprite精灵类 class Player(pygame.sprite.Sprite): # 构造函数 def __init__(self, init_position): pygame.sprite.Sprite.__init__(self) # 父类构造函数 '''精灵图片:加载图片(1)或者绘制(2)''' # 方法(1) # self.image = pygame.image.load('resources/images/enemy.png') # 方法(2) self.image = pygame.Surface([10, 20]) # 绘制大小 self.image.fill((0, 0, 0)) # 填充颜色 self.rect = self.image.get_rect() self.rect.topleft = init_position self.speed = 1 # 每个精灵组执行update,组内所有精灵都会update def update(self): self.rect.top = self.rect.top + self.speed if self.rect.top > SCREEN_HEIGHT: self.kill() # 初始化pygame pygame.init() # 初始化窗口 screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT]) # 窗口标题 pygame.display.set_caption('精灵类测试') # 建立精灵组 group = pygame.sprite.Group() # 主循环 while True: # 绘制背景 screen.fill((255, 255, 255)) # 往精灵组添加精灵 group.add( Player( (randint(0, SCREEN_WIDTH), randint(0, SCREEN_HEIGHT)) ) ) # 更新精灵组 group.update() # 绘制精灵组 group.draw(screen) # 界面更新 pygame.display.update() # 退出 for event in pygame.event.get(): if event.type == QUIT: pygame.quit() exit() 结果

在这里插入图片描述

稍稍改进 更改简介

运行起来就会发现,上面循环速度太快了,不利于观察不说,还闪眼-_- ,这里可以增加一个时钟对象控制刷新频率。 改变两个地方即可: 主循环外创建时钟对象:

# 创建时钟对象(可控制游戏循环频率) clock = pygame.time.Clock()

主循环内使用时钟对象控制刷新频率:

# 通过时钟对象指定循环频率(每秒60次) clock.tick(60) 更改后的完整代码 """ 精灵测试 """ import pygame from random import randint from sys import exit from pygame.locals import * SCREEN_WIDTH = 480 SCREEN_HEIGHT = 640 # 继承Sprite精灵类 class Player(pygame.sprite.Sprite): # 构造函数 def __init__(self, init_position): pygame.sprite.Sprite.__init__(self) # 父类构造函数 '''精灵图片:加载图片(1)或者绘制(2)''' # 方法(1) # self.image = pygame.image.load('resources/images/enemy.png') # 方法(2) self.image = pygame.Surface([10, 20]) # 绘制大小 self.image.fill((0, 0, 0)) # 填充颜色 self.rect = self.image.get_rect() self.rect.topleft = init_position self.speed = 1 # 每个精灵组执行update,组内所有精灵都会update def update(self): self.rect.top = self.rect.top + self.speed if self.rect.top > SCREEN_HEIGHT: self.kill() # 初始化pygame pygame.init() # 初始化窗口 screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT]) # 窗口标题 pygame.display.set_caption('精灵类测试') # 建立精灵组 group = pygame.sprite.Group() # 创建时钟对象(可控制游戏循环频率) clock = pygame.time.Clock() # 主循环 while True: # 通过时钟对象指定循环频率(每秒60次) clock.tick(60) # 绘制背景 screen.fill((255, 255, 255)) # 往精灵组添加精灵 group.add( Player( (randint(0, SCREEN_WIDTH), randint(0, SCREEN_HEIGHT)) ) ) # 更新精灵组 group.update() # 绘制精灵组 group.draw(screen) # 界面更新 pygame.display.update() # 退出 for event in pygame.event.get(): if event.type == QUIT: pygame.quit() exit() 更改后的结果

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有