以下是部分代码预览:
"""pygame单击彩色弹球练习_事件USEREVENT,组group,sprite角色类练习程序""" __author__ = "李兴球" __date__ = "2018年8月" __company__ = "风火轮编程" import pygame from pygame.locals import * from random import randint,choice class Ball(pygame.sprite.Sprite): def __init__(self,radius,x,y,screen,color): pygame.sprite.Sprite.__init__(self) # 初始化父类 self.radius = radius # 弹球半径 self.screen_width = screen.get_width() # 屏幕宽高 self.screen_height = screen.get_height() # 屏幕高度 pass pygame.draw.circle(self.image,color,(radius,radius),radius) # 在self.image上画圆,颜色,位置,半径 self.image.set_colorkey((0,0,0)) # 设置不渲染的颜色(透明色) self.xspeed = randint(-4,4) # 初始x速度 self.yspeed = randint(-4,4) # 初始y速度 def bounce(self): """碰到边缘就反弹,原理是x或y速度取负""" pass def update(self): """更新坐标,move_ip是在原位移动rect""" pass if __name__ == "__main__": width,height = 800,600 screen = pygame.display.set_mode((width,height)) # 新建屏幕对象分辨率为800x600 pygame.display.set_caption("pygame事件USEREVENT,组group,sprite角色类练习参考答案") group = pygame.sprite.Group() # 新建组 r = randint(0,255);g = randint(0,255);b = randint(0,255) # 生成rgb三元色 ball1 = Ball(20,width//2,height//2,screen,(r,g,b)) # 先生成一个球球 group.add(ball1) # 把球球加到组中,以便统一更新坐标与重画. produceball = USEREVENT + 1 # 定义生成球事件 deleteball = USEREVENT + 2 # 定义删除球事件 pygame.time.set_timer(produceball,1000) # 让生成球事件每隔一秒发生一次 pygame.time.set_timer(deleteball,1400) # 让删除球事件每隔一秒发生一次 clock = pygame.time.Clock() # 生成时钟对象 running = True # 运行为真 pass
下载完整源代码与素材,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
发表评论