美文网首页
day11-作业

day11-作业

作者: 七一欧 | 来源:发表于2018-07-30 22:34 被阅读0次

代码:

"""qiyiou"""
import pygame
import random
import math


# random_color = random.randint(0,255),random.randint(0,255),random.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速度
   random_color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)

   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': (100, 100),
        'color': random_color,
        'x_speed': random.randint(-1, 1),
        'y_speed': random.randint(-1, 1)
        }
   ]


   while True:
       random_color = random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)

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

           if event.type == pygame.MOUSEBUTTONDOWN:
               ball = {
                   'r':random.randint(10,20),
                   '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 ball1_dict in all_balls:
           # 取出原来的x坐标和y坐标以及他们的速度
           x1,y1 = ball1_dict['pos']
           x_speed = ball1_dict['x_speed']
           y_speed = ball1_dict['y_speed']
           ball1_r = ball1_dict['r']
           if x1+ball1_r >= 600:
               x_speed *= -1
           if x1-ball1_r <= 0:
               x_speed *= -1
           if y1+ball1_r >= 400:
               y_speed *= -1
           if y1-ball1_r<= 0:
               y_speed *= -1

           x1 += x_speed
           y1 += y_speed


           pygame.draw.circle(screen,ball1_dict['color'],(x1,y1),ball1_dict['r'])
           pygame.time.delay(5)
           # 更新球对应的坐标
           ball1_dict['pos'] = x1,y1
           # 更新球对应的速度
           ball1_dict['x_speed'] = x_speed
           ball1_dict['y_speed'] = y_speed

           for ball2_dict in all_balls:
               if all_balls.index(ball1_dict) == all_balls.index(ball2_dict):
                   pass
               else:
                   x2,y2 = ball2_dict['pos']#取ball2坐标
                   ball2_r =  ball2_dict['r'] #取ball2半径

                   a = (x1-x2)**2+(y1-y2)**2
                   if math.sqrt(a) <= (ball1_r+ball2_r):
                       if ball1_r >= ball2_r:
                           ball1_dict['r'] =  ball1_dict['r'] + ball2_dict['r']
                           all_balls.remove(ball2_dict)


       pygame.display.update()


结果:

相关文章

  • day11-作业

    代码: 结果:

  • Day11-作业

    吃球: 结果: 作业2

  • day11-作业

    提取data.json中的数据,将每条数据中的name、text、love和comment信息。并且保存到另外一个...

  • day11- 作业

    ==============一.注册界面================ ==============二.登录界面...

  • Day11-作业

    写一个生成式能够产生的数据为: 1, 4, 27, 256, 3125,…, 9**9 写一个生成式能够产生1-1...

  • day11-作业(封包)

  • 2018-09-03 Day11-作业

    最下方附上data.json文件内容 提取data.json中的数据,将每条数据中的name、text、love和...

  • 21天女神养成记 day11

    Day11-【21天女神养成记-出现了黑头该怎么办?】-邸红敏-2018.12.18 直接上干货~ 黑头主要是由皮...

  • 21天E战到底学习笔记Day11

    21天E战到底学习笔记Day11-认识函数,进阶用法 今天的学习内容继续是函数的基础知识,进阶用法, 一、绝对引用...

  • day11-特殊权限-笔记

    Day11-特殊权限 导读 进程能够以何种身份去查看一个文件,取决于运行这个进程的用户对这个文件有没有权限昨日回顾...

网友评论

      本文标题:day11-作业

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