python pygame实战1: 小球碰撞balls collision
学了点基础, 开始实战吧, 先做个小球碰撞的小游戏:
import pygame
import random
import numpy as np
SCREEN_WIDTH =500
SCREEN_HEIGHT = 400
FPS = 50
class circle(pygame.sprite.Sprite):
def __init__(self, screen,r=20):
pygame.sprite.Sprite.__init__(self)
self.r=r
self.screen=screen
self.color=(random.randrange(50,255),random.randrange(50,255),random.randrange(50,255))
self.image = pygame.Surface((2*r,2*r))
self.image.set_colorkey((20,120,20))
self.image.fill((20,120,20))
self.rect=self.image.get_rect()
self.rect.x = random.randrange(SCREEN_WIDTH-self.rect.width)
self.rect.y = random.randrange(SCREEN_HEIGHT-self.rect.height)
pygame.draw.circle(self.image,self.color,(self.r,self.r),self.r)
self.radius=r #this makes ".collide_circle" to detect using circle,rather than rect
self.speedx = random.randrange(1,5)
self.speedy = random.randrange(1,5)
def update(self):
self.rect.move_ip(self.speedx, self.speedy)
self.v=np.array([self.speedx,self.speedy])
if (self.rect.y<=0 or self.rect.y>=SCREEN_HEIGHT-self.rect.height):
self.speedy=-self.speedy
if self.rect.x<=0 or self.rect.x>=SCREEN_WIDTH-self.rect.width:
self.speedx=-self.speedx
self.screen.blit(self.image, self.rect)
pygame.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode((SCREEN_WIDTH , SCREEN_HEIGHT))
c1=circle(screen,30)
balls=pygame.sprite.Group()
for i in range(10):
c=circle(screen)
balls.add(c)
run=True
while pygame.sprite.spritecollideany(c1,balls): #避免一开始就碰撞在一起
c1=circle(screen,30)
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run=False
c=pygame.sprite.spritecollideany(c1,balls)
if c:
#exchange the speed of c1, and c2
c1.speedy,c.speedy=c.speedy,c1.speedy
c1.speedx,c.speedx=c.speedx,c1.speedx
screen.fill((220, 0, 220))
else:
screen.fill((0,0,0))
c1.update()
balls.update()
pygame.display.update()
clock.tick(FPS)
python pygame实战1: 小球碰撞balls collision相关推荐
- pygame动画演示小球碰撞
使用pygame实现动量定理的小球碰撞演示动画 动量定理我们在高中的时候就已经接触过了,是十分重要的物理定理.其中的完全弹性碰撞(机械能守恒)是十分典型的例子,机械能守恒和动量定理两个公式就可以推出小 ...
- python pygame实战《飞船大战外星人》
学了一个月的python,最后两天学了下pygame,以一个小游戏结尾这段旅程. 游戏规则如下: 玩家可以通过上下左右四个键控制飞船移动,而且按住键不放可以联系移动,而不需要不断地按键松键来控制. 玩 ...
- PYTHON pygame库实战——实现双人弹球小游戏
PYTHON pygame实战--运用pygame库实现双人弹球小游戏 使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截 ...
- 保姆级教学——Python+Pygame怎么实现吃豆豆游戏
耽搁十几天的时间,我顺利的从阳转阴啦, 以后的日子一切恢复正常,好好工作,积极分享.希望在座的小伙伴阳了的全部健康转阴,没阳的全部不会变阳,新的一年,一切顺顺利利. 不知道最近大家学习得怎么样?有没有 ...
- Pygame实战:利用Python实现智能五子棋,实现之后发现我玩不赢它。
导语 前段时间不是制作了一款升级版本五子棋的嘛! 但是居然有粉丝私信我说: "准备拿到代码玩一下ok过去了!太难了准备放收藏夹落灰q@q~" 所噶,今天先放一个简易版本的五子棋给大 ...
- Python+pyGame 打砖块游戏
注:以下程序为本人原创,写的不好,若有好的建议,望留言告知.而若能帮助一二访客,幸甚! 最近搞"科研"搞的蛋都碎了... 思吾之理想是将计算机玩弄于股掌之上(将计算机组成原理.操作 ...
- Python pygame 坦克大战
Python pygame 坦克大战 import pygame, time, random from pygame.sprite import SpriteSCREEN_WIDTH = 750 SC ...
- python +pygame 制作五子连珠小游戏
python +pygame 制作五子连珠小游戏 学习python半年了,今天分享一个利用pygame制作的五子连珠游戏. 一.代码: 1.球类,ball.py """ ...
- 【Pygame实战】经典的坦克大战游戏,勾起童年无限回忆《坦克大战小霸王版》
导语 哈喽!哈喽--我是木木子 今天来升级下之前写的坦克大战游戏嘛,哈哈哈 其实也不算是修改,就是稍微的调试一下! 因为之前写的界面都是英文的 ,有的小伙伴儿英文一点儿都不会的可能看着别扭,今天来 ...
- js小球碰撞js特效
下载地址 小球碰撞特效.引用test.js文件.我目前做的是10个小球同时出现,你也可以根据你的需要进行修改.如果你想要小球随机出现的话,你只需要把58行的代码解注,然后57行的注释就行了.这个写法还 ...
最新文章
- Kali Linux攻防系统(三:在Kali Linux系统中配置安全测试浏览器及系统清理备份)
- 第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页...
- 数据源(连接池)开发步骤
- jqgrid 启用键盘操作bindKeys
- jquery Ajax请求本地json
- python slice是共享内存吗_python共享内存实现进程通信
- jitter 如何优化网络_抖音优化该怎么做?
- C. Diverse Permutation(Codeforces Round #275(div2)
- 解密昇腾AI处理器--DaVinci架构(总览)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的少儿网站教育管理系统
- MapReduce任务学习系列
- SQL Server 2000中的完整备份、差异备份操作
- yii验证在一个数组内_PHP实现一个轻量级容器
- Vue中的自定义指令
- DT浪潮下,大数据在交通管理中的应用实践
- max2 android9.0,乐视max2 安卓9.0刷机包
- 程序员漫画-加油啊!
- 点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
- 计算机科技学术讲座心得体会,学术报告心得体会
- Excel vlookup筛选两列的重复项