猫史档案馆


【Python作品分享】星空与星球 1.5.2【作品秀】

用户:x博x博查看:0 回复:0 评论:0 创建时间:2020-12-15T17:44:44


【作品展示】

center_image

 

【作品介绍】

A建加速 S键减速 按下鼠标任意键可以切换一个星球,有三个星球样式

有三级速度,到三级就没办法继续加了,初始状态为一级,是一款解压小游戏,祝大家玩得开心~ ~ ~

 

【作品源代码】

import pygame
import time
import sys

pygame.init()


screen = pygame.display.set_mode([800, 450])
pygame.display.set_caption('星空与星球')
pygame.display.set_icon(pygame.image.load('xkimages/star.png'))

bgImg = pygame.image.load('xkimages/bg.png')
numImg1 = pygame.image.load('xkimages/num1.png')
numImg2 = pygame.image.load('xkimages/num2.png')
numImg3 = pygame.image.load('xkimages/num3.png')
readyImg = pygame.image.load('xkimages/ready.png')

# 加载要变换的星球图片
starImg = pygame.image.load('xkimages/star.png')
starImg2 = pygame.image.load('xkimages/star2.png')
starImg3 = pygame.image.load('xkimages/star3.png')

x = 50
y = 30
stepx = 5
stepy = 3
state = '准备'
speedLevel = 1
drawImg = starImg
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            if state == '准备':
                numsImg = [numImg3, numImg2, numImg1]
                for i in numsImg:
                    screen.blit(bgImg, [0, 0])
                    screen.blit(i, [350, 175])
                    pygame.display.update()
                    time.sleep(1)
                state = '运行'

            elif state == '运行':
                if drawImg == starImg:
                    drawImg = starImg2
                elif drawImg == starImg2:
                    drawImg = starImg3
                elif drawImg == starImg3:
                    drawImg = starImg

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_a:
                if speedLevel < 3:
                    stepx = stepx * 2
                    stepy = stepy * 2
                    speedLevel = speedLevel + 1
            elif event.key == pygame.K_s:
                if speedLevel > 1:
                    stepx = stepx / 2
                    stepy = stepy / 2
                    speedLevel = speedLevel - 1
                
    if state == '准备':
        screen.blit(bgImg, [0, 0])
        screen.blit(readyImg, [300, 185])
        pygame.display.update()
    elif state == '运行':
        screen.blit(bgImg, [0, 0])
        screen.blit(drawImg, [x, y])
        pygame.display.update()
        # 碰撞或超出边缘后重置星球位置
        if x <= 0:
            x = 0
            stepx = -stepx
        elif x >= 720:
            x = 720
            stepx = -stepx
        if y <= 0:
            y = 0
            stepy = -stepy
        elif y >= 370:
            y = 370
            stepy = -stepy
        x = x + stepx
        y = y + stepy

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页