move()方法中speed[0]和speed[1]什么意思?有什么作用?
import sys,pygamefrom random import*
class MyBallClass(pygame.sprite.Sprite):
def __init__(self,image_file,location,speed):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load(image_file)
self.rect=self.image.get_rect()
self.rect.left,self.rect.top=location
self.speed=speed
def move(self):
self.rect=self.rect.move(self.speed)
if self.rect.left<0 or self.rect.right>width:
self.speed[0]=-self.speed[0] #这个0是什么意思?有什么作用?
if self.rect.top<0 or self.rect.bottom>height:
self.speed[1]=-self.speed[1] #这个1是什么意思?有什么作用?
def animate(group):
screen.fill([255,255,255])
for ball in group:
group.remove(ball)
if pygame.sprite.spritecollide(ball,group,False):
ball.speed[0]=-ball.speed[0]
ball.speed[1]=-ball.speed[1]
group.add(ball)
ball.move()
screen.blit(ball.image,ball.rect)
pygame.display.flip()
pygame.time.delay(20)
size=width,height=1200,680
screen=pygame.display.set_mode(size)
screen.fill([255,255,255])
img_file='ppq.png'
group=pygame.sprite.Group()
for row in range(0,2):
for column in range(0,2):
location=[column*180+10,row*180+10]
speed=[choice([2,-2]),choice([-2,2])]
ball=MyBallClass(img_file,location,speed)
group.add(ball)
running=True
while running:
for event in pygame.event.get():
if event.type==pygame.QUIT:
running=False
animate(group)
pygame.quit()
请高手给我详细解答这个move()函数的原理,特别是其中的speed[0]和speed[1]到底什么意思?有什么作用?方括号里用红色标出的0和1是什么意思啊?
[此贴子已经被作者于2017-11-5 10:19编辑过]