pygame实现弹力球及其变速效果
本文实例为大家分享了pygame实现弹力球及其变速效果的具体代码,供大家参考,具体内容如下
期望:
1.球体接触到框体后反弹
2.设置速度按键,按下后改变球体速度、颜色状态
具体实现:
importpygame frompygame.localsimport* importsys,random classCircle(object): #设置Circle类属性 def__init__(self): self.vel_x=1 self.vel_y=1 self.radius=20 self.pos_x,self.pos_y=random.randint(0,255),random.randint(0,255) self.width=0 self.color=0,0,0 #球体颜色速度改变方法 defchange_circle(self,number): self.color=random.randint(0,255),random.randint(0,255),random.randint(0,255) #防止球体速度方向发生改变 ifself.vel_x<0: self.vel_x=-number else: self.vel_x=number ifself.vel_y<0: self.vel_y=-number else: self.vel_y=number #self.vel_x,self.vel_y=number,number如果仅此句,速度方向会发生改变 defcircle_run(self): #防止球体超出游戏界面框体 ifself.pos_x>580orself.pos_x<20: self.vel_x=-self.vel_x ifself.pos_y>480orself.pos_y<20: self.vel_y=-self.vel_y self.pos_x+=self.vel_x self.pos_y+=self.vel_y pos=self.pos_x,self.pos_y pygame.draw.circle(screen,self.color,pos,self.radius,self.width) pygame.init() screen=pygame.display.set_mode((600,500)) #Circle实例 circle1=Circle() whileTrue: foreventinpygame.event.get(): ifevent.type==QUIT: sys.exit() elifevent.type==KEYUP: ifevent.key==pygame.K_1: circle1.change_circle(1) elifevent.key==pygame.K_2: circle1.change_circle(2) elifevent.key==pygame.K_3: circle1.change_circle(3) elifevent.key==pygame.K_4: circle1.change_circle(4) screen.fill((0,0,100)) circle1.circle_run() pygame.display.update()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。