- Python
pygame 第五课
- 2024-3-30 18:57:43 @
import sys
import pygame
from pygame.locals import *
class Fish(pygame.sprite.Sprite):
def __init__(self):
"""初始化"""
pygame.sprite.Sprite.__init__(self) #初始化动画精灵
self.image = pygame.image.load("./PNG/Guppy0.png").convert_alpha() # 加载图像
self.rect = self.image.get_rect() # 获取图像的矩形区域
self.speedx = 5
self.speedy = 5
def update(self):
"""更新动画精灵"""
self.rect.x += self.speedx
self.rect.y += self.speedy
if self.rect.left < 0 or self.rect.right > WIDTH:
self.speedx = -self.speedx
self.reversed() # 水平翻转图片
if self.rect.top < 0 or self.rect.bottom > HEIGHT:
self.speedy = -self.speedy
def reversed(self):
self.image = pygame.transform.flip(self.image, True, False)
pygame.init() # 初始化pygame模块
WIDTH = 1024 # 定义游戏窗口的宽
HEIGHT = 600 # 定义游戏窗口的高
SCREEN_SIZE = (WIDTH, HEIGHT) # 定义一个元组
screen = pygame.display.set_mode(SCREEN_SIZE) # 初始化一个显示画面的窗口
pygame.display.set_caption("MyPygame") # 设置标题
bg = pygame.image.load("./PNG/Background.png").convert() # 加载背景图片
fish = Fish() # 创建一个动画精灵
clock = pygame.time.Clock()
while True: # 游戏主循环
clock.tick(60)
for event in pygame.event.get(): # 获取事件
if event.type == QUIT: # 退出
pygame.quit() # 退出pygame模块
sys.exit() # 退出系统
screen.blit(bg, (0, 0)) # 绘制背景
fish.update() # 调用更新的方法
screen.blit(fish.image, fish.rect) # 绘制角色
pygame.display.update() # 更新窗口画面显示
不同样式的动画精灵
import sys
import pygame
from pygame.locals import *
import random
class Fish(pygame.sprite.Sprite):
"""创建动画精灵的子类,命名为Fish"""
def __init__(self, image):
"""初始化"""
pygame.sprite.Sprite.__init__(self) #初始化动画精灵
self.image = image # 加载图像
self.rect = self.image.get_rect() # 获取图像的矩形区域
self.speedx = random.randint(1,5)
self.speedy = random.randint(1,5)
def update(self):
self.rect.x += self.speedx
self.rect.y += self.speedy
if self.rect.left < 0 or self.rect.right > WIDTH:
self.speedx = -self.speedx
self.reversed() # 水平翻转图片
if self.rect.top < 0 or self.rect.bottom > HEIGHT:
self.speedy = -self.speedy
def reversed(self):
self.image = pygame.transform.flip(self.image, True, False)
pygame.init() # 初始化pygame模块
WIDTH = 1024 # 定义游戏窗口的宽
HEIGHT = 600 # 定义游戏窗口的高
SCREEN_SIZE = (WIDTH, HEIGHT) # 定义一个元组
mode_list = pygame.display.list_modes() # 获取电脑支持的全屏分辨率
SCREEN_FULL = mode_list[0]
screen = pygame.display.set_mode(SCREEN_SIZE) # 初始化一个显示画面的窗口
pygame.display.set_caption("MyPygame") # 设置标题
bg = pygame.image.load("./PNG/Background.png").convert() # 加载背景图片
fishGroup = pygame.sprite.Group() # 创建一个精灵组
image1 = pygame.image.load("./PNG/Guppy1.png").convert_alpha()
fish1 = Fish(image1)
fishGroup.add(fish1) # 将精灵添加到精灵组
image2 = pygame.image.load("./PNG/Guppy2.png").convert_alpha()
fish2 = Fish(image2)
fishGroup.add(fish2) # 将精灵添加到精灵组
clock = pygame.time.Clock()
while True: # 游戏主循环
clock.tick(60)
for event in pygame.event.get(): # 获取事件
if event.type == QUIT: # 退出
pygame.quit() # 退出pygame模块
sys.exit() # 退出系统
screen.blit(bg, (0,0)) # # 绘制背景
fishGroup.update() # 调用组中动画精灵的update方法
fishGroup.draw(screen) # 绘制精灵组中的精灵到surface图象上
pygame.display.update() # 更新窗口画面显示
0 条评论
目前还没有评论...