猫史档案馆


【Python作品分享】ball

用户:giorgioXokQgiorgioXokQ查看: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()


回复

上一页1 页 / 共 0下一页