用户:giorgioXokQ查看:0 回复:0 评论:0 创建时间:2020-03-18T20:59:58
import pygame, sys, random
from pygame.locals import *
class Ball(pygame.sprite.Sprite):
def __init__(self, image, weizhi, sudu,bg):
pygame.sprite.Sprite.__init__(self)
self.ball_image = pygame.image.load(image).convert_alpha()
self.rect = self.ball_image.get_rect() #获得图像Rect对象
self.rect.left, self.rect.top = weizhi
self.sudu = sudu
self.w, self.h = bg[0], bg[1]
def move(self): #移动以及边缘检测
self.rect = self.rect.move(self.sudu)
if self.rect.right < 0:self.rect.left = self.w
elif self.rect.left > self.w:self.rect.right = 0
elif self.rect.bottom < 0:self.rect.top = self.h
elif self.rect.top > self.h:self.rect.bottom = 0
def main(): #主游戏函数
pygame.init()
ballone = "ball.png" #导入同目录下图片
bg = w, h = 500, 600
balls = []
screen = pygame.display.set_mode(bg)
pygame.display.set_caption("ball")#设置标题
for n in range(5):
weizhi = [random.randint(0, w - 172), random.randint(0, w - 165)]
sudu = [random.randint(-10, 10), random.randint(-10, 10)]
ball = Ball(ballone, weizhi, sudu, bg)
balls.append(ball)
clock = pygame.time.Clock()
runing = True
while runing:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
for each in balls:
each.move()
screen.blit(each.ball_image, each.rect)
pygame.display.flip()
pygame.display.update() # 跟新屏幕
clock.tick(60) # 帧数
if __name__ == "__main__":
main()