image image image image image

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 条评论

目前还没有评论...