美文网首页
2018-07-30day-11作业

2018-07-30day-11作业

作者: BIGBOSS_93d6 | 来源:发表于2018-07-31 10:27 被阅读0次

    创建多个球

    import pygame
    import random
    import math
    from random import randint
    random_color = randint(0, 255), randint(0, 255), randint(0, 255)
    
    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': randint(10, 20),
                'pos': (100, 100),
                'color':random_color,
                'x_speed': randint(-3, 3),
                'y_speed': randint(-3, 3),
            },
            {
                'r': randint(10, 20),
                'pos': (300, 300),
                'color': random_color,
                'x_speed': randint(-3, 3),
                'y_speed': randint(-3, 3),
            }
        ]
    
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    exit()
    
                if event.type == pygame.MOUSEBUTTONDOWN:
                    # 点一下鼠标创建一个球
                    ball = {
                            'r': randint(10, 25),
                            'pos': event.pos,
                            'color': (randint(0,255),randint(0,255),randint(0,255)),
                            'x_speed': randint(-3, 3),
                            'y_speed': 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']
    
                if x+ball_dict['r']>=600 or  x-ball_dict['r']<=0:
                    # x=600-ball_dict['r']
                    ball_dict['x_speed']*=-1
                # if x-ball_dict['r']<=0:
                #     x=0+ball_dict['r']
                #     x_speed*=-1
                if y+ball_dict['r']>=400 or y-ball_dict['r']<=0:
                    # y=400-ball_dict['r']
                    ball_dict['y_speed']*=-1
                # if y-ball_dict['r']<=0:
                #     y=0+ball_dict['r']
                #     y_speed*=-1
                x_speed = ball_dict['x_speed']
                y_speed = ball_dict['y_speed']
                x += x_speed
                y += y_speed
                pygame.draw.circle(screen, ball_dict['color'], (x, y), ball_dict['r'])
                # 更新球对应的坐标
                ball_dict['pos'] = x, y
    
    
            pygame.display.update()
            pygame.time.delay(10)
    

    相关文章

      网友评论

          本文标题:2018-07-30day-11作业

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