猫史档案馆


【Python作品分享】桌球小游戏【作品秀】

用户:LEGEND523LEGEND523查看:0 回复:0 评论:0 创建时间:2023-06-16T20:40:49


【作品展示】

center_image

 

【作品介绍】

桌球小游戏

 

【作品源代码】

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


回复

上一页1 页 / 共 0下一页