用户:
LEGEND523查看:0 回复:0 评论:0 创建时间:2023-06-16T20:40:49
【作品展示】

【作品介绍】
桌球小游戏
【作品源代码】
from random import choice
import pygame as p
class Ball(p.sprite.Sprite):
def __init__(self, image_file, location, speed):
p.sprite.Sprite.__init__(self)
self.image = p.image.load(image_file)
self.rect = self.image.get_rect()
self.rect.left, self.rect.top = location
self.speed = speed
def move(self):
self.rect = self.rect.move(self.speed)
if self.rect.left < 38 or self.rect.right > width-38:
self.speed[0] = -self.speed[0]
if self.rect.top < 38 or self.rect.bottom > height-38:
self.speed[1] = -self.speed[1]
p.init()
rand_speed = [16, 14, 12, 10, 8,6, -16, -14, -12, -10, -8,-6]
ball_1 = Ball("deskball.png", [427.5, 235], [choice(rand_speed), choice(rand_speed)]) #创建球1
size = width, height = 855, 470
screen = p.display.set_mode(size)
bg = p.image.load("desk.jpg")
screen.blit(bg, [0, 0])
screen.blit(ball_1.image, ball_1.rect)
group1 = p.sprite.Group()
goal_1 = Ball("goal.png", [40, 48], [0, 0])
goal_2 = Ball("goal.png", [412, 42], [0, 0])
goal_3 = Ball("goal.png", [792, 42], [0, 0])
goal_4 = Ball("goal.png", [40, 402], [0, 0])
goal_5 = Ball("goal.png", [412, 410], [0, 0])
goal_6 = Ball("goal.png", [788, 402], [0, 0])
group1.add(goal_1)
group1.add(goal_2)
group1.add(goal_3)
group1.add(goal_4)
group1.add(goal_5)
group1.add(goal_6)
ball_1 = Ball("deskball.png", [427, 235], [choice(rand_speed), choice(rand_speed)])
font_obj = p.font.Font(None, 50)
text_obj = font_obj.render("score:", True, (252, 140, 4))
p.display.update()
times=0
score=0
rand = choice([60,65,70,75,80])#产生一个随机数
running = True
while running:
for event in p.event.get():
if event.type == p.QUIT:
running = False
if score == 6:
running = False
text_obj_1 = font_obj.render(str(score), True, (255, 190, 37))
screen.blit(text_obj, (50, 75))
screen.blit(text_obj_1, (165, 75))
ball_1.move()
times += 1#每执行一次循环,times自增1
if times == rand:#循环次数满100次,就喵的运动速度(绝对值)进行自减
if ball_1.speed[0] > 0:
ball_1.speed[0] -= 3
elif ball_1.speed[0] < 0:
ball_1.speed[0] += 2
if ball_1.speed[1] > 0:
ball_1.speed[1] -= 3
elif ball_1.speed[1] < 0:
ball_1.speed[1] += 2
if p.sprite.spritecollide(ball_1, group1, True):
screen.blit(ball_1.image,ball_1.rect)
score+=1
for goal in group1:
screen.blit(goal.image,goal.rect)
screen.blit(ball_1.image,ball_1.rect)
p.display.update()
p.time.delay(20)
screen.blit(bg,[0,0])
p.quit()
print("Your final score is:",str(score))
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn