用户:黑优秀你个空查看:0 回复:0 评论:0 创建时间:2019-09-09T20:52:55
【作品展示】

【作品介绍】
利空控制键将目标球运送到对岸,需要通过无序运动的混乱球空间,被碰到后将回到出发区。ANDY作品
【作品源代码】
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