学习自小甲鱼视频教学(笔记)
功能实现:
在随机位置生成若干个小球以随机速度运动;
若小球运动出左边界则从右边界进入,上下边界同理;
若两小球相碰撞则都以相反速度运动分开。
代码如下:
1.尝试自己写碰撞检测函数(对比两球之间的圆心距离和半径即可)。
1 importpygame2 importsys3 importmath4 from pygame.locals import *
5 from random import *
6
7
8 #面向对象的编程方法,定义一个球的类型
9 classBall(pygame.sprite.Sprite):10 def __init__(self, image, position, speed, bg_size):11 #初始化动画精灵
12 pygame.sprite.Sprite.__init__(self)13
14 self.image =pygame.image.load(image).convert_alpha()15 self.rect =self.image.get_rect()16 #将小球放在指定位置
17 self.rect.left, self.rect.top =position18 self.speed =speed19 self.width, self.height = bg_size[0], bg_size[1]20
21 #定义一个移动的方法
22 defmove(self):23 self.rect =self.rect.move(self.speed)24 #如果小球的左侧出了边界,那么将小球左侧的位置改为右侧的边界
25 #这样便实现了从左边进入,右边出来的效果
<