猫史档案馆


【Python作品分享】激素跑酷(内含注释教程)【作品秀】

用户:勇敢小豆豆勇敢小豆豆查看:0 回复:0 评论:0 创建时间:2022-06-11T11:15:36


【作品展示】

center_image

 

【作品介绍】

今天稍做了修改,调整了一些参数提高了游戏难度。上下左右或wasd控制移动,q暂停,这是移动可达到重新开始时瞬移的效果,e加速,速度又会降下来,可连续加速,鼠标右键为重启。上述均为超能力,每局有5次使用机会。红方块是我方方块,对方移动速度会逐渐加快。

 

【作品源代码】

import pygame
import sys
import time
import random 
from pygame.locals import * 
import random
# 初始化
pygame.init()
# 初始界面
for __count in range(500):
    # 屏幕
    bg = pygame.display.set_mode((800, 800))
    pygame.display.set_caption("温软游戏")
    bg.fill([255,255,255])
    # 图标及标语
    cp = pygame.font.Font(None, 70)
    cr = cp.render("Gentle gameplay",True,[255,0,0])
    lg = pygame.image.load("E:\\dzj\\logo-cx.png")
    tb = pygame.image.load("E:\\dzj\\海龟.png")
    # 打印方法
    bg.blit(tb,[380,250])
    bg.blit(lg,[320,100])
    bg.blit(cr,[200,600])
    pygame.display.update()
    # 关闭
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
            pygame.quit()
# 参考数据
xh = 0
wz = [30, 150, 100, 100]
dwz = [30,0,100,100]
喵c = 3
sd = 0.1
fsc = 0
ws = 50
sy = 5
size = [750,600]
# 主循环
while 喵c > 0:
    # 分数控制
    xh +=1
    # 极速模式控制
    fsc +=1
    if ws > 50:
        ws -=0.03
    else:
        pass
    # 增加难度
    sd +=0.00005
    # 窗口
    screen = pygame.display.set_mode(size)
    pygame.display.set_caption("激素逃亡")
    # 加速暂停机会显示
    喵 = pygame.font.Font(None, 50)
    sr = 喵.render("""Chance:""" + str(sy), True, [255, 255, 255])
    # 生命值输出
    喵 = pygame.font.Font(None, 50)
    喵r = 喵.render("""Health:""" + str(喵c), True, [255, 255, 255])
    # 绘制我方和敌方方块
    df = pygame.draw.rect(screen, [150, 150, 150], dwz, 0, border_radius=20)
    tk = pygame.draw.rect(screen, [255,0,0], wz, 0, border_radius=20)
    screen.blit(sr,[550,0])
    screen.blit(喵r, [550, 30])
    pygame.display.flip()
    # 敌方移动代码
    if tk.y < df.y:
        dwz[1] -=sd
    elif tk.y > df.y:
        dwz[1] +=sd
    else:
        pass
    if tk.x < df.x:
        dwz[0] -=sd
    elif tk.x > df.x:
        dwz[0] +=sd
    else:
        pass
    # pygame事件
    # 关闭程序
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
            pygame.quit()
        # 我方方块控制代码
        elif event.type == KEYDOWN:
            # 我方移动
            # 判断是否离开屏幕
            if tk.x < 20:
                wz[0] +=20
            elif tk.x > 590:
                wz[0] -=20
            elif tk.y < 20:
                wz[1] +=20
            elif tk.y > 450:
                wz[1] -=20
            # 我方移动
            else:
                if event.key == K_UP or event.key == ord("w"):
                    wz[1] -=ws
                elif event.key == K_DOWN or event.key == ord("s"):
                    wz[1] +=ws
                elif event.key == K_LEFT or event.key == ord("a"):
                    wz[0] -=ws
                elif event.key == K_RIGHT or event.key == ord("d"):
                    wz[0] +=ws
                # 暂停控制
                elif event.key == ord("q"):
                    if sy > 0:
                        pygame.time.wait(1500)
                        sy -=1
                # 加速控制
                elif event.key == ord("e"):
                    if sy > 0:
                        ws +=20
                        sy -=1
                    else:
                        pass
        # 重启控制
        elif event.type == MOUSEBUTTONDOWN:
            if BUTTON_RIGHT:
                if sy > 0:
                    # 重置参数
                    xh = 0
                    wz = [30, 150, 100, 100]
                    dwz = [30, 0, 100, 100]
                    喵c = 3
                    sd = 0.1
                    fsc = 0
                    ws = 50
                    size = [750, 600]
                    sy -=1
                else:
                    pass
            else:
                pass
        else:
            pass
# 碰撞检测
    if tk.colliderect(df):
        wz = [30, 150, 100, 100]
        dwz = [30, 0,100,100]
        喵c -=1
        sd = 0.1
    else:
        pass
pygame.quit()
pygame.init()
# 根据循环频率计算坚持时间
cs = str(round(xh / 495))
# 结尾界面
while True:
    # 屏幕
    bg = pygame.display.set_mode((size))
    pygame.display.set_caption("激素逃亡")
    bg.fill([0,0,255])
    # 文本:Game Over
    go = pygame.font.Font(None,100)
    gr = go.render("Game Over",True,[255,0,0])
    # 分数文本
    fb = pygame.font.Font(None,50)
    fr = fb.render("You stick with it for " + cs + " seconds",True,[150,150,150])
    # 打印方法
    bg.blit(gr, [150, 0])
    bg.blit(fr,[20,300])
    pygame.display.update()
    # 关闭机制
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
            pygame.quit()
        else:
            pass

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页