用户:
机敏的土岩龙7tYA查看:68 回复:0 评论:0 创建时间:2019-06-19T15:35:08
【作品展示】

【作品介绍】
献礼共和国70华诞
【作品源代码】
import pygame
from pygame.locals import *
from sys import *
from random import *
# 定义角色类
class Role(pygame.sprite.Sprite):
def __init__(self, image, position, speed, width, height):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.transform.scale((pygame.image.load(image).convert_alpha()), (width, height))
self.rect = self.image.get_rect()
self.rect.left, self.rect.top = position
self.speed = speed
self.width, self.height = width, height
# 移动方法
def move(self):
self.rect = self.rect.move(self.speed)
# 烟花炸开后放大
def explosion(self, each):
self.image = pygame.transform.scale((pygame.image.load(each).convert_alpha()), (self.width, self.width))
self.width, self.height = self.width + 6, self.height + 6
self.rect.left -= 2.5
self.rect.top -= 3
# 退出&刷新画面
def quit(delay = 30):
for event in pygame.event.get():
if event.type == QUIT:
exit()
pygame.display.flip()
pygame.time.delay(delay)
def main():
# 初始化
pygame.init()
screen = pygame.display.set_mode((480, 360), 0, 32)
pygame.display.set_caption("70周年华诞")
bg_image = pygame.transform.scale(pygame.image.load("image\白天.png").convert(), (480, 360))
tiananmen_image = pygame.transform.scale(pygame.image.load("image\喵与小学生.png").convert_alpha(), (480, 280))
dove_image = "image\dove.png"
balloon_image = ["image\\balloon1.png", "image\\balloon2.png", "image\\balloon3.png"]
plane_image = "image\plane.png"
tiananmen_y = 82
# 生成鸽子
doves = []
for i in range(5):
position = randint(-50, 0), randint(200, 240)
speed = [randint(5, 7), randint(-5, -3)]
dove = Role(dove_image, position, speed, 60, 40)
doves.append(dove)
# 生成气球
balloons = []
for i in range(3):
position = randint(240, 320), 200
speed = [randint(-3, -1), randint(-5, -3)]
balloon = Role(balloon_image[i], position, speed, 30, 50)
balloons.append(balloon)
# 生成飞机
plane = Role(plane_image, (-700, 110), [12, -6], 700, 420)
# 鸽子、气球移动
for i in range(100):
# 绘制背景
screen.blit(bg_image, (0, 0))
# 绘制气球
for each in balloons:
each.move()
screen.blit(each.image, each.rect)
# 绘制喵
screen.blit(tiananmen_image, (0, tiananmen_y))
# 绘制鸽子
for each in doves:
each.move()
screen.blit(each.image, each.rect)
quit()
# 镜头抬高
for i in range(45):
screen.blit(bg_image, (0, 0))
screen.blit(tiananmen_image, (0, tiananmen_y))
tiananmen_y += 3
quit()
# 飞机飞过
for i in range(120):
screen.blit(bg_image, (0,0))
plane.move()
screen.blit(plane.image, plane.rect)
screen.blit(tiananmen_image, (0, tiananmen_y))
quit()
# 切换黑夜
bg_image = pygame.transform.scale(pygame.image.load("image\黑夜.png").convert(), (480, 360))
# 镜头归位
for i in range(45):
screen.blit(bg_image, (0, 0))
screen.blit(tiananmen_image, (0, tiananmen_y))
tiananmen_y -= 3
quit()
# 重复燃放烟花
while True:
# 生成烟花
firework_image = ["image\烟花1-1.png", "image\烟花2-1.png", "image\烟花3-1.png"]
fireworks = []
for i in range(3):
position = randint(60, 420), 300
speed = [0, randint(-6, -4)]
firework = Role(firework_image[i], position, speed, 5, 15)
fireworks.append(firework)
# 烟花上天
for i in range(45):
screen.blit(bg_image, (0, 0))
for each in fireworks:
each.move()
screen.blit(each.image, each.rect)
screen.blit(tiananmen_image, (0, tiananmen_y))
quit()
# 烟花炸开
firework_image = ["image\烟花1-2.png", "image\烟花2-2.png", "image\烟花3-2.png"]
for i, each in enumerate(fireworks):
each.image = pygame.transform.scale((pygame.image.load(firework_image[i]).convert_alpha()), (50, 50))
each.rect.left, each.rect.top = each.rect.left - 25, each.rect.top - 25
each.width, each.height = 50, 50
# 烟花放大
for i in range(10):
screen.blit(bg_image, (0, 0))
for i, each in enumerate(fireworks):
each.explosion(firework_image[i])
screen.blit(each.image, each. rect)
screen.blit(tiananmen_image, (0, tiananmen_y))
quit(0)
if __name__ == "__main__":
main()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn