猫史档案馆


【Python作品分享】QDQ【作品秀】

用户:黑优秀你个空黑优秀你个空查看:0 回复:1 评论:0 创建时间:2019-09-09T20:40:10


【作品展示】

center_image

 

【作品介绍】

通过控制键将你的球运到最顶端获胜。

 

【作品源代码】

import pygame , sys
from random import *

pygame.init()
class Ball (pygame.sprite.Sprite):
    def __init__(self, name, location, speed):
        pygame.sprite.Sprite.__init__(self)
        self.x_speed,self.y_speed = speed
        self.image = pygame.image.load(name)
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
        self.x, self.y = location
    def move(self):
        if self.rect.left < 0: 
            self.x_speed = -self.x_speed
            self.rect.left = 0
        elif self.rect.right > width:
            self.x_speed = -self.x_speed
            self.rect.right = width
        if self.rect.top < 0:
            self.y_speed = -self.y_speed
            self.rect.top = 0
        elif self.rect.bottom > height-90:
            self.y_speed = -self.y_speed
            self.rect.bottom = height-90
        self.rect = self.rect.move([self.x_speed, self.y_speed])
        py1.blit(self.image, self.rect)
        """
        if self.x <= 0  or self.x + 90 >= width:
            self.x_speed = -self.x_speed
        if self.y <= 0 or self.y + 90 >= height:
            self.y_speed = -self.y_speed
        self.x += self.x_speed
        self.y += self.y_speed
        py1.blit(self.image, [self.x, self.y])
        """

#**************************************************************************************************
class Ball2(pygame.sprite.Sprite):
    def __init__(self, name, location, speed):
        pygame.sprite.Sprite.__init__(self)
        self.gx_speed, self.gy_speed = speed
        self.image = pygame.image.load(name)
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
        self.gx, self.gy = location

    def move(self):
        py1.blit( self.image, self.rect)
           
#*******************************************************************************************************
clock = pygame.time.Clock()
size = width, height = 1200, 700
py1 = pygame.display.set_mode(size)
py1.fi喵])
G = pygame.sprite.Group()
WD = pygame.image.load('win.bmp')
for w in range(1, 3):
    for h in range(1, 4):
        name = "beach_ball.png"
        speed = [choice([-5, 5]), choice([-5, 5])]
        my_ball = Ball( name, [w*190+100, h*120+50], speed )
        G.add(my_ball)
        
ball2 = Ball2( "beach_ball.png", [500,400], [2,2])
pygame.key.set_repeat(10,50)
running = True
while running:
    py1.fi喵])

    pygame.draw.rect(py1, [130,33,54],[0,height - 90,width,90],0)
    py1.blit(WD,[width/2-50,height-70])
    for my_ball in G:
        G.remove(my_ball)
        if pygame.sprite.spritecollide(my_ball,G,False):
            my_ball.x_speed = -my_ball.x_speed
            my_ball.y_speed = -my_ball.y_speed
        G.add(my_ball)
        my_ball.move()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                ball2.rect.top -= 20
            elif event.key == pygame.K_DOWN:
                ball2.rect.top += 20
            elif event.key == pygame.K_LEFT:
                ball2.rect.left-= 20
            elif event.key == pygame.K_RIGHT:
                ball2.rect.left += 20
    if pygame.sprite.spritecollide(ball2,G,False):
        ball2.rect.top = height - 90
    ball2.move()
    pygame.display.flip()
    clock.tick(45)
pygame.quit()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
急_开_锁_办_证810864急_开_锁_办_证810864

为什么不写注释啊?

点赞0


评论