python人工降雪
00.png
下面是我的源码:
'''
人工降雪
Data:2018-12-09
Author:Lingyin
reference:https://mp.weixin.qq.com/s/fki-eGBzrSsz2xDbk--vpw
'''import pygameimport randomimport osfrom pygame.locals import *from pygame.compat import geterrorif not pygame.mixer: print('Warning, sound disabled')
SIZE = (1300,700)
main_dir = os.path.split(os.path.abspath(__file__))[0]
data_dir = os.path.join(main_dir, 'data')#加载图片,利用os模块,实现跨平台def load_image(name):
fullname = os.path.join(data_dir,name) try:
image = pygame.image.load(fullname) except pygame.error as e: raise e
image = image.convert() return imagedef load_sound(name):
class NoneSound:
def play(self): pass
if not pygame.mixer or not pygame.mixer.get_init(): return NoneSound()
fullname = os.path.join(data_dir, name)
print(fullname) try:
pygame.mixer.music.load(fullname)
pygame.mixer.music.play() except pygame.error:
print('Cannot load sound: %s' % fullname) raise SystemExit(str(geterror()))
def Snow():
#定义一个雪花lsit
snow_list = [] for i in range(300):
x = random.randrange(0,SIZE[0])
y = random.randrange(0,SIZE[1])
x_speed = random.randint(-1,2)
y_speed = random.randint(3,8)
snow_list.append([x,y,x_speed,y_speed]) return snow_listdef main():
#初始化
pygame.init()
screen = pygame.display.set_mode(SIZE) #设置标题
pygame.display.set_caption('唯美雪景') #设置鼠标光标不可见
pygame.mouse.set_visible(0) #加载背景
background = load_image('Lingyin0.jpg')
screen.blit(background,(0,0)) #显示背景
pygame.display.flip()
clock = pygame.time.Clock()
snow = Snow()
load_sound('flower.mp3') #主循环
going = True
while going:
clock.tick(20) for event in pygame.event.get(): if event.type == QUIT:
going = False
elif event.type == KEYDOWN and event.key == K_ESCAPE:
going = False
for i in range(len(snow)): #绘制雪花
pygame.draw.circle(screen,(255,255,255),snow[i][:2],snow[i][3]) #移动雪花
snow[i][0] += snow[i][2]
snow[i][1] += snow[i][3] if snow[i][1] > SIZE[1]:
snow[i][1] = random.randrange(-50,-10)
snow[i][0] = random.randrange(0,SIZE[0])
pygame.display.flip()
screen.blit(background, (0, 0))
pygame.quit()if __name__ == '__main__':
main()在Ahab原有的基础上,我增加了两个用来加载图片和声音的函数,同时导入os模块,实现跨平台的应用。具体的原理,我就不讲了,想知道的话,可以去原作者的微信公众号去看,再次贴一下地址
作者:dmzlingyin
链接:https://www.jianshu.com/p/f3f59fbe07d2
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
