大球吃小球

from enum import Enum, unique
from math import sqrt
from random import randintimport pygame@unique
class Color(Enum):"""颜色"""RED = (255, 0, 0)GREEN = (0, 255, 0)BLUE = (0, 0, 255)BLACK = (0, 0, 0)WHITE = (255, 255, 255)GRAY = (242, 242, 242)@staticmethoddef random_color():"""获得随机颜色"""r = randint(0, 255)g = randint(0, 255)b = randint(0, 255)return (r, g, b)class Ball(object):"""球"""def __init__(self, x, y, radius, sx, sy, color=Color.RED):"""初始化方法"""self.x = xself.y = yself.radius = radiusself.sx = sxself.sy = syself.color = colorself.alive = Truedef move(self, screen):"""移动"""self.x += self.sxself.y += self.syif self.x - self.radius <= 0 or self.x + self.radius >= screen.get_width():self.sx = -self.sxif self.y - self.radius <= 0 or self.y + self.radius >= screen.get_height():self.sy = -self.sydef eat(self, other):"""吃其他球"""if self.alive and other.alive and self != other:dx, dy = self.x - other.x, self.y - other.ydistance = sqrt(dx ** 2 + dy ** 2)if distance < self.radius + other.radius \and self.radius > other.radius:other.alive = Falseself.radius = self.radius + int(other.radius * 0.146)def draw(self, screen):"""在窗口上绘制球"""pygame.draw.circle(screen, self.color,(self.x, self.y), self.radius, 0)def main():# 定义用来装所有球的容器balls = []# 初始化导入的pygame中的模块pygame.init()# 初始化用于显示的窗口并设置窗口尺寸screen = pygame.display.set_mode((800, 600))print(screen.get_width())print(screen.get_height())# 设置当前窗口的标题pygame.display.set_caption('大球吃小球')# 定义变量来表示小球在屏幕上的位置x, y = 50, 50running = True# 开启一个事件循环处理发生的事件while running:# 从消息队列中获取事件并对事件进行处理for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:x, y = event.posradius = randint(10, 100)sx, sy = randint(-10, 10), randint(-10, 10)color = Color.random_color()ball = Ball(x, y, radius, sx, sy, color)balls.append(ball)screen.fill((255, 255, 255))for ball in balls:if ball.alive:ball.draw(screen)else:balls.remove(ball)pygame.display.flip()# 每隔50毫秒就改变小球的位置再刷新窗口pygame.time.delay(50)for ball in balls:ball.move(screen)for other in balls:ball.eat(other)if __name__ == '__main__':main()

python:大球吃小球相关推荐

  1. Python大球吃小球

    本小游戏采用了pygame模块 1.产生随机颜色的小球.2.小球具有移动.吃别的小球.绘制这3个方法.3.鼠标点击事件 上源码 // 大球吃小球 from enum import Enum, uniq ...

  2. python练习---大球吃小球游戏

    要求: 鼠标点击屏幕会自动产生不同大小的小球,小球会自动移动,碰到屏幕边界反弹回来,当不同大小的小球相遇在一起发生碰撞,大的小球会吃掉较小的小球,变得更大 代码: import pygame impo ...

  3. 自学一周python做的一个小游戏《大球吃小球》

    需求 1,显示一个窗口. 2,我们要做到的功能有鼠标点击屏幕生成小球. 3,生成的小球大小随机,颜色随机,向随机方向移动,速度也随机. 4,大的球碰到小球时可以吃掉小球,吃掉后会变大. 5,球碰到边界 ...

  4. python入门学习记录之pygame实现简单动画游戏:大球吃小球

    引言: 文章python示例主要是跟着CSDN博客专家:骆昊来学习python开发的,有兴趣的可以学习一下 骆昊:<<https://blog.csdn.net/jackfrued> ...

  5. Python第三周习题集(一) (工资结算系统 抽象类 静态方法 贪吃蛇 分数的重写 五子棋 大球吃小球 )...

    # 工资结算系统 1. 部门经理 1.5万元/月 2. 程序员 工作时间 150元/小时 3.销售员 1200底薪,+ %5销售额的提成 # 给你员工,得出工资. 员工类,父类 下面3类子类.#我写的 ...

  6. python游戏模块 - 26 小项目-坦克行动 / 大球吃小球

    1. 小项目 - 坦克行动 import pygame from sys import exit from enum import Enum, unique ​ """e ...

  7. 大球吞小球html5游戏在线玩,大球吃小球大作战

    大球吃小球大作战是以大鱼吃小鱼这个定论做的一款休闲类游戏,游戏玩法如题,尽量多的吃掉比你小的,不要被比你大的吃掉了哟. 官方介绍 大球吃小球大作战是一款酷萌的休闲游戏,玩家在游戏中就要大球吃小球,努力 ...

  8. 大球吃小球html5,怎么用html5制作简单的大球吃小球的游戏

    匿名用户 1级 2017-12-16 回答 <html> <head> <title> 大球吃小球by大奔 </title> <script ty ...

  9. java 运动的大球吃小球_JAVA 多线程制作大球吃小球 一、实现球的自动生成及运动 生产消费模型...

    /*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 [email protected]*/ 前几天用多线程实现了创建小球并移动,想到大鱼吃小鱼,便突发奇想要写一个大球吃小球.首先第一步自然是先 ...

最新文章

  1. 用Duplex实现消息广播
  2. java 手机号脱敏,身份证号脱敏 工具类
  3. webservice用完关闭连接_解决调用WebService报基础连接已经关闭: 服务器关闭了本应保持活动状态的连接的错误的方法...
  4. Python中基础数据类型(List、Tuple、Dict)的概念和用法
  5. zabbix启动无效,无法监听10051
  6. 开源日志记录工具log4j
  7. Intel Haswell/Broadwell架构/微架构/流水线 (8)-Broadwell微架构
  8. 【读书笔记】实战Java高并发程序设计(第2版)读书笔记
  9. oracle aq hang,AQ: dequeue的时候hang住
  10. 李洪强iOS开发之Foundation框架—结构体
  11. 日志对于运维的重要性
  12. 中文在线语音识别技术获重大突破!百度输入法准确率超行业最高水平15%
  13. 计算机 管理策略,有关管理组策略管理模板的建议 (.adm) 文件
  14. 以前的东西-Mvp2
  15. winmail邮件服务器的搭建,搭建Winmail邮件系统
  16. MySQL table_cache 优化(四)
  17. salt returner mysql_saltstack (4) 用mysql存储 salt 返回值
  18. UI设计中置灰功能总结
  19. intellIj idea修改英文字体解决大写的“I”和小写的“l”显示冲突问题
  20. 素材网下载图片要 VIP ? 不存在的

热门文章

  1. linux内核书籍推荐
  2. word2vec中的CBOW模型
  3. 王川: 深度学习有多深, 学了究竟有几分?
  4. 使用C#编写一个读取和判断股票实时成交数据的小工具
  5. 统计局:居民一天使用互联网平均时间2小时42分钟
  6. 看我如何破解隔壁家小姐姐的wifi
  7. Linux磁盘格式化(mkfs、mkfs.xfs、mkfs.ext4)、Linux文件系统的校验(xfs_repair、fsck_ext4)
  8. 东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录
  9. 关联数据赋能智能化业务
  10. 什么是矩阵java_java矩阵