当前位置: 首页 > 后端技术 > Python

程序员爸爸必修课——用pygame写小游戏

时间:2023-03-26 19:46:27 Python

周末在家无事,大哥嫂子出去玩开心,把他儿子扔到我家问我像爸爸一样和他一起玩。为了让这只麻烦的小妖精暂时消停,我悄悄玩起了游戏之王。我灵机一动,打算写一个简单的游戏给他玩一会。思路对于这种三岁的孩子来说,不需要操作复杂的游戏,但是界面色彩缤纷的傻瓜式游戏是最好的。而且写这个小游戏不能占用我太多的时间,否则得不偿失!基于这样的想法,我想起了以前在哪见过的一个小游戏——七彩同心圆。它的玩法是,每次点击鼠标,它都会以鼠标为圆心画一个圆,然后以这个圆为基础向外扩大圆(类似于水波的扩散),从而形成一个同心圆circleandreachedarandomsize停止扩张后,每个同心圆的颜色都是随机的。这个小游戏正好满足了现在的场景,于是我撸起袖子准备实现三遍五遍二遍,为自己的王者之路争取时间!首先,我需要初始化各种变量:pygame.init()screen=pygame.display.set_mode([600,400])screen.fill((255,255,255))#圆的半径radius=[0]*10#圆的半径增量circleDelt=[0]*10#圆是否存在,False表示索引值下的圆不存在,True表示圆存在circleExists=[False]*10#圆的x轴坐标circleX=[0]*10#圆的y轴circleY=[0]*10#颜色RGB值RGBx=[0]*10RGBy=[0]*10RGBz=[0]*10然后我需要监听鼠标事件,监听后根据鼠标的位置画一个初始化的圆圈:#鼠标按下ifevent.type==pygame.MOUSEBUTTONDOWN:#获取的索引值不存在的圆num=circleExists.index(False)#将索引值的圆设置为存在circleExists[num]=True#圆的半径设置为0radius[num]=0#获取鼠标坐标circleX[num],circleY[num]=pygame.mouse.get_pos()#随机获取颜色值RGBx[num]=random.randint(0,255)RGBy[num]=random.randint(0,255)RGBz[num]=random.randint(0,255)#画圆pygame.draw.circle(screen,pygame.Color(RGBx[num],RGBy[num],RGBz[num]),(circleX[num],circleY[num]),radius[num],1)ifevent.type==pygame.QUIT:pygame.quit()sys.exit()绘制后圆,我需要让它随机扩展成同心圆。这个同心圆需要一圈一圈地画:foriinrange(10):#如果圆不存在,则跳过循环ifnotcircleExists[i]:passelse:#随机圆的大小ifradius[i]