下面是部分代码预览:
"""
宇宙类作品_星汉灿烂的核心程序,
playnet.py模块。
,本程序会显示太阳星空背景,八大行星会出现,等待单击.
单击后,它们的介绍图片会从右侧出现,再次单击,
则图片又会从左到右慢慢消失。如果某天本模块由于Python
或操作系统升级原因导致挂了,请自行修改源码,这里提供
的是基础思想。
"""
import pygame
from pygame.locals import *
class Intro(pygame.sprite.Sprite):
"""介绍页类,它是行星描述信息的包装,继承自pygame的角色类"""
def __init__(self,image,screen,group,行星类):
"""image:图像,screen:所在屏幕,
group:组,行星类:本模块的行星类"""
def update(self):
"""实时更新,如果visible为真,并且dx是-1,则往左移"""
class Planet(pygame.sprite.Sprite):
"""行星类,继承自pygame的角色类"""
show = False # 类变量,控制只能同时显示一个介绍
def __init__(self,image,pos,intro,group):
"""image:图形,pos:坐标,intro:介绍对象,group:组"""
def update(self):
"""更新,行星碰到鼠标指针并且按下了鼠标左键时,
就把它的介绍页的可见性设为True。然后把类变量show
的值也设为True,这样就阻止了再次单击其它行星时把
其它介绍页也显示出来。
"""
def make_planet(intro_group,planet_group,screen):
"""
加载资源,形成行星介绍页与行星角色,把它们加入到相应的组中去。
intro_group:介绍组,planet_group:行星组,screen:屏幕
"""
def show_planet(screen,background):
"""显示行星,等待单击各行星"""
intro_group = pygame.sprite.Group() # 介绍组
planet_group = pygame.sprite.Group() # 行星组
make_planet(intro_group,planet_group,screen) # 生成若干行星
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:running=False
planet_group.update() # 更新每个行星
intro_group.update() # 更新每张介绍页
screen.blit(background,(0,0))
planet_group.draw(screen)
# 如果介绍页是可见的才把它渲染出来
[screen.blit(p.image,p.rect) for p in intro_group if p.visible]
pygame.display.update()
pygame.quit()
def main():
"""主调用函数"""
size = width,height = 480,360
screen = pygame.display.set_mode(size)
pygame.display.set_caption("星汉灿烂的核心程序by lixingqiu")
background = pygame.image.load("images/太阳.png")
show_planet(screen,background)
if __name__ == "__main__":
main()
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

