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

import pygame
import random
import mathdef random_color():return 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.set_caption('大球吃小球')pygame.display.flip()#all_ball中保存多少个球#每个球要保存:半径,圆心坐标,颜色,x方向的速度,y方向的速度all_balls=[{'r':random.randint(10,15),'pos':(100,100),'color':(random_color()),'x_speed':random.randint(0,1),'y_speed': random.randint(0, 1),'live':True}]#这里用到了python里面的字典!while True:for event in pygame.event.get():if event.type == pygame.QUIT:exit()if event.type == pygame.MOUSEBUTTONDOWN:#点击一下鼠标创建一个球ball = {'r': random.randint(10,15),'pos': event.pos,'color': (random.randint(0,255),random.randint(0,255),random.randint(0,255)),'x_speed': random.randint(0,1),'y_speed': random.randint(0,1),'live': True}#保存球all_balls.append(ball)#刷新界面screen.fill((255,255, 255))for ball in all_balls:# 取出球原来的x和y以及速度x,y = ball['pos']x_speed = ball['x_speed']y_speed = ball['y_speed']if x + ball['r'] >= 600:x_speed *= -1if x - ball['r'] <= 0:x_speed *= -1if y + ball['r'] >= 400:y_speed *= -1if y - ball['r'] <= 0:y_speed *= -1x += x_speedy += y_speedpygame.draw.circle(screen, ball['color'], (x,y), ball['r'])# 更新球的坐标ball['pos'] = x,yball['x_speed'] = x_speedball['y_speed']=y_speedfor ball1 in all_balls:if all_balls.index(ball) == all_balls.index(ball1):passelse:other_x, other_y=ball1['pos']dx = x - other_xdy = y - other_ydistance = math.sqrt(dx**2+dy**2) #距离if distance < ball['r']+ball1['r']:if ball['r'] > ball1['r']:ball['r']=int(ball['r']+ball1['r']/5)all_balls.remove(ball1)pygame.display.update()#这里是定义了大球吃小球

运行效果:


也可以鼠标点击产生很多小球:

是不是很神奇快来尝试一下!

python练习---大球吃小球游戏相关推荐

  1. java swing 大球吃小球游戏 功能完善 完整代码 下载即可以运行

    今天天气不错,利用一段时间给大家分享一个大球吃小球的游戏,该游戏也属于一个比较优秀的作品.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步!! 开发环境 开发 ...

  2. python:大球吃小球

    大球吃小球 from enum import Enum, unique from math import sqrt from random import randintimport pygame@un ...

  3. java编写游戏_java编写小游戏-大球吃小球

    游戏界面: 点击火箭开始游戏 点击Exit退出游戏 左上角显示当前成绩和历史最高分 退出自动保存最高成绩 代码获取 扫码关注微信公众号[程序猿声] 在后台回复[EBG]不包括[]即可获取. 玩法: 玩 ...

  4. JAVA编程实战之编写小游戏-大球吃小球(eat ball game)

    游戏界面: 点击火箭开始游戏 点击Exit退出游戏 左上角显示当前成绩和历史最高分 退出自动保存最高成绩 代码获取 扫码关注微信公众号[程序猿声] 在后台回复[EBG]不包括[]即可获取. 玩法: 玩 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 重磅!2020年全球高被引科学家名单出炉!
  2. 音视频技术开发周刊(第131期)
  3. vs2013 未将对象引用设置到对象的实例
  4. 第9篇:Flowable-Modeler集成以及集成代码下载
  5. VC++设计简易计算器笔记(一)
  6. elasticsearch集群部署
  7. Spring源码的学习方法和知识地图
  8. php学生成绩系统,php019学生信息学生成绩系统
  9. 记录一个SetupFactory使用手册
  10. 谷歌chrome浏览器 抖动问题
  11. 数学竞赛辅导陈启浩pdf_【优秀论文】第九届MathorCup高校数学建模挑战赛(B题)...
  12. java提取图片文字
  13. [转载] 晓说——第13期:欧洲杯硝烟再起 “阴谋论”说赌球黑幕
  14. 华为S5700实战配置
  15. mysql修改游戏,第十二讲 战神引擎游戏列表和公告修改
  16. 词云中去重复的词_手把手教你挖掘蓝海词,打造爆款标题!
  17. Excel之如何使用VLOOKUP函数合并两张表
  18. Spring的简介和工作原理
  19. html5代码好学吗,0基础能学习Html5吗?Html5好学吗?
  20. catia零件隐藏显示

热门文章

  1. 她来了!她来了!她带着更新走来了!【8月16日】
  2. java万物之源——集合框架
  3. python热图_Python-Seaborn热图绘制的实现方法
  4. oracle lms进程 内存,【案例】Oracle ges resource消耗内存高报错ORA-04031 MOS解决办法...
  5. jq实现点击一个按钮,触发另一个点击事件(点击按钮触发另一个按钮的点击事件)
  6. 高精度4位压缩法原理与实现
  7. Core Bluetooth框架之一:Central与Peripheral
  8. MADDPG论文中文翻译
  9. 王兴:淘宝为什么还不支持微信支付?
  10. 钟汉良日记:网络也是江湖,有恩怨情仇有利益纠葛