#main
import pygame, sys, random
size = (800, 600)
speeds = (-0.1, 0.1)
pygame.init()
screen = pygame.display.set_mode(size)
class Ball:
def __init__(self, screen, size, x, y):
self.screen = screen
self.size = size
self.ball_list = ball_list
self.ballfile = pygame.image.load('ball.png')
self.rect = self.ballfile.get_rect()
self.x = x
self.y = y
self.xspeed = random.choice(speeds)
self.yspeed = random.choice(speeds)
def move(self):
self.x += self.xspeed
self.y += self.yspeed
self.iscollied = False
self.rect.left = self.x
self.rect.top = self.y
if self.x <= 0 or self.x >= size[0]-70:
self.xspeed = -1 * self.xspeed
if self.y <= 0 or self.y >= size[1]-75:
self.yspeed = -1 * self.yspeed
self.screen.blit(self.ballfile, (self.x, self.y))
def point(self):
self.xspeed = -1 * self.xspeed
self.yspeed = -1 * self.yspeed
def collidefind(self):
self.iscollied = not(self.iscollied)
ball_list = []
for j in range(int(size[0] / 200) - 1):
for i in range(int(size[1] / 200) - 1):
ball = Ball(screen, size, j * 200 + 20, i * 200 + 20)
ball_list.append(ball)
def collide():
global ball_list
for ball in ball_list:
ball_list.remove(ball)
for balls in ball_list:
if ball.rect.colliderect(balls.rect):
if not(ball.iscollied):
ball.point()
ball.collidefind()
else:
if ball.iscollied:
ball.collidefind()
ball_list.append(ball)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
for balls in ball_list:
balls.move()
collide()
pygame.display.update()
screen.fill((0, 0, 0))
ball.png是这样的:
抠图抠的不好,有点“其貌不扬”。
求大神们帮帮我