美文网首页
多个球一起运动

多个球一起运动

作者: 小先生_8bfd | 来源:发表于2018-07-30 20:55 被阅读0次
import pygame
import random



if __name__ == '__main__':
    pygame.init()
    screen = pygame.display.set_mode((600, 400))
    screen.fill((255, 255, 255))
    pygame.display.flip()

    # all_balls中保存多个球
    # 每个球要保存:半径、圆心坐标、颜色、x速度、y速度
    all_balls = [
        {
            'r': random.randint(10, 20),
            'pos': (100, 100),
            'color':(255,0,0),
            'x_speed': random.randint(-3, 3),
            'y_speed': random.randint(-3, 3),
        },
        {
            'r': random.randint(10, 20),
            'pos': (300, 300),
            'color': (255,0,0),
            'x_speed': random.randint(-3, 3),
            'y_speed': random.randint(-3, 3),
        }
    ]

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()

            if event.type == pygame.MOUSEBUTTONDOWN:
                random_color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
                # 点一下鼠标创建一个球
                ball = {
                        'r': random.randint(10, 25),
                        'pos': event.pos,
                        'color': random_color,
                        'x_speed': random.randint(-3, 3),
                        'y_speed': random.randint(-3, 3)
                    }
                # 保存球
                all_balls.append(ball)



        # 刷新界面
        screen.fill((255, 255, 255))

        for ball_dict in all_balls:
            # 取出球原来的x坐标和y坐标以及他们的速度
            x, y = ball_dict['pos']
            x_speed = ball_dict['x_speed']
            y_speed = ball_dict['y_speed']
            x += x_speed
            y += y_speed
            if x+ball_dict['r']>=600 or x-ball_dict['r']<=0 :
                ball_dict['x_speed'] *=-1
            if y+ball_dict['r']>=400 or y-ball_dict['r']<=0:
                ball_dict['y_speed'] *=-1

            pygame.draw.circle(screen, ball_dict['color'], (x, y), ball_dict['r'])
            # 更新球对应的坐标
            ball_dict['pos'] = x, y
        pygame.time.delay(60)

        pygame.display.update()

相关文章

网友评论

      本文标题:多个球一起运动

      本文链接:https://www.haomeiwen.com/subject/tydqvftx.html