大家好,我是查理。今天教大家制作简化版的大球大战\话不多说,这里是code#-*-coding:utf-8-*-#@Time:2018/7/3016:19#@Author:G.Hope#@Email:1638327522@qq.com#@File:EatBall.py#@Software:PyCharmimportpygameimportrandomimportmath#生成随机颜色defrandom_color():returnrandom.randint(0,255),random.randint(0,255),random.randint(0,255)#判断是否碰撞,让大球吃掉小球(小球消失,大球变大)defeat(ball1,ball2):x1,y1=ball1['pos']x2,y2=ball2['pos']x_distance=x1-x2y_distance=y1-y2distance=math.sqrt(x_distance**2+y_distance**2)ifdistanceball2['r']:ball1['r']=ball2['r']+ball1['r']all_balls。remove(ball2)else:ball2['r']=ball2['r']+ball1['r']all_balls.remove(ball1)if__name__=='__main__':pygame.init()screen=pygame.display.set_mode((800,600))screen.fill((255,255,255))pygame.display.flip()#在all_balls中保存多个球#每个球都需要保存:半径,中心坐标,颜色,x速度,y速度all_balls=[{'r':random.randint(10,20),'pos':(100,100),'color':random_color(),'x_speed':random.randint(-1,1),'y_speed':random.randint(-1,1)},{'r':random.randint(10,20),'pos':(200,200),'color':random_color(),'x_speed':random.randint(-1,1),'y_speed':random.randint(-1,1)},{'r':随机.randint(10,20),'pos':(300,300),'color':random_color(),'x_speed':random.randint(-1,1),'y_speed':random.randint(-1,1)}]whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:exit()ifevent.type==pygame.MOUSEBUTTONDOWN:#点击鼠标创建一个球球={'r':random.randint(10,20),#随机大小'pos':event.pos,#设置圆心为当前鼠标点击的坐标'color':random_color(),'x_speed':random.randint(-1,1),#随机方向'y_speed':random.randint(-1,1)}#保存球all_balls.append(ball)#刷新界面screen.fill((255,255,255))forball_dictinall_balls:#取出原理的x,y坐标和它们的Speedx,y=ball_dict['pos']x_speed=ball_dict['x_speed']y_speed=ball_dict['y_speed']ifx>=800:#设置边界并改变运动方向x=800x_speed=-1ball_dict['x_speed']=x_speedifx<0:x=0x_speed=1ball_dict['x_speed']=x_speedify>=600:y=600y_speed=-1ball_dict['y_speed']=y_speed如果y<0:y=0y_speed=1ball_dict['y_speed']=y_speedx+=x_speedy+=y_speedpygame.draw.circle(screen,ball_dict['color'],(x,y),ball_dict['r'])#更新ball对应坐标ball_dict['pos']=x,ypygame.display.update()#Collisionforball1inall_balls:forball2inall_balls:ifball1==ball2:continueeat(ball1,ball2)不好使,记住三个Even