韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > python简易版挖矿小游戏

python简易版挖矿小游戏

Python游戏

头像

小妮浅浅

2020-12-02 18:27:484404浏览 · 0收藏 · 0评论

大家好,今天我们来说一说怎么制作一个简易版的挖矿小游戏。

 

先写初始设置的代码:

import pygame, sys, random, time
pygame.init()
screen = pygame.display.set_mode((660, 640))
pygame.display.set_caption("宝石矿工") #标题
gemImg = pygame.image.load("gem.png") #宝石
heroImg = pygame.image.load("hero.png") #挖矿者
gameoverbg = pygame.image.load("gameover.png") #失败提示
bgImg = pygame.image.load("bg.png") #背景
myFont = pygame.font.SysFont("kaiti", 30)
sound = pygame.mixer.Sound("moveMusic.wav")
pygame.mixer.music.load("bgMusic.mp3") #背景音乐
pygame.mixer.music.play(-1)
heroRect = pygame.Rect(270, 0, 80, 80)


创建宝石的列表:

gemRectList = []  # 宝石列表
number = 0  # 挖到的宝石数量
start = False # False表示不退出第一层循环,True表示退出
#创建宝石Rect列表
for i in range(5):
    x = random.randint(0, 610)
    y = random.randint(30, 590)
    gemRect = pygame.Rect(x, y, 50, 50)
gemRectList.append(gemRect)


是否继续上一次游戏的代码:

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_y:
                with open("record.txt","r") as file:
                    number = int(file.read())
                start = True
            elif event.key == pygame.K_n:
                start = True
    screen.fill((0, 0, 0))
    myWord = "是否继续上次的游戏成绩?y/n"
    text = myFont.render(myWord, True, (255, 0, 0))
    screen.blit(text, (130, 280))
    if start==True:
        break
pygame.display.update()


把结尾写一下:

t1 = time.time()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            sound.play()
            if event.key == pygame.K_UP and heroRect.y > 0:
                heroRect.y = heroRect.y - 40
            elif event.key == pygame.K_DOWN and heroRect.y < 560:
                heroRect.y = heroRect.y + 40
            elif event.key == pygame.K_LEFT and heroRect.x > 0:
                heroRect.x = heroRect.x - 40
            elif event.key == pygame.K_RIGHT and heroRect.x < 560:
                heroRect.x = heroRect.x + 40
    t2 = time.time()
    t = t2 - t1  # t表示经过的时间
    # 绘制地图
    screen.blit(bgImg, (0, 0))
    # 绘制宝石
    for n in gemRectList:
        if n.colliderect(heroRect):
            number = number + 1
            n.x = random.randint(0, 610)
            n.y = random.randint(40, 590)
        screen.blit(gemImg, n)
    # 绘制英雄
    screen.blit(heroImg, heroRect)
    # 绘制字体
    myWord = "挖到的宝石数:" + str(number)
    myText = myFont.render(myWord, True, (0, 0, 0))
    screen.blit(myText, (420, 10))
    myWord = "剩余时间:" + str(int(20 - t))
    myText = myFont.render(myWord, True, (0, 0, 0))
    screen.blit(myText, (10, 10))
    #时间结束,游戏结束,保存成绩,显示成绩
    if int(t) >= 20:
        with open("record.txt", "w") as file:
            file.write(str(number))
        screen.blit(gameoverbg, (0, 0))
        myWord = "时间到了,你的成绩为:" + str(number)
        myText = myFont.render(myWord, True, (0, 0, 0))
        screen.blit(myText, (160, 80))
pygame.display.update()


完成!

 

完整代码:

import pygame, sys, random, time
pygame.init()
screen = pygame.display.set_mode((660, 640))
pygame.display.set_caption("宝石矿工") #标题
gemImg = pygame.image.load("gem.png") #宝石
heroImg = pygame.image.load("hero.png") #挖矿者
gameoverbg = pygame.image.load("gameover.png") #失败提示
bgImg = pygame.image.load("bg.png") #背景
myFont = pygame.font.SysFont("kaiti", 30)
sound = pygame.mixer.Sound("moveMusic.wav")
pygame.mixer.music.load("bgMusic.mp3") #背景音乐
pygame.mixer.music.play(-1)
heroRect = pygame.Rect(270, 0, 80, 80)
gemRectList = []  # 宝石列表
number = 0  # 挖到的宝石数量
start = False # False表示不退出第一层循环,True表示退出
#创建宝石Rect列表
for i in range(5):
    x = random.randint(0, 610)
    y = random.randint(30, 590)
    gemRect = pygame.Rect(x, y, 50, 50)
    gemRectList.append(gemRect)
 
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_y:
                with open("record.txt","r") as file:
                    number = int(file.read())
                start = True
            elif event.key == pygame.K_n:
                start = True
    screen.fill((0, 0, 0))
    myWord = "是否继续上次的游戏成绩?y/n"
    text = myFont.render(myWord, True, (255, 0, 0))
    screen.blit(text, (130, 280))
    if start==True:
        break
    pygame.display.update()
 
t1 = time.time()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            sound.play()
            if event.key == pygame.K_UP and heroRect.y > 0:
                heroRect.y = heroRect.y - 40
            elif event.key == pygame.K_DOWN and heroRect.y < 560:
                heroRect.y = heroRect.y + 40
            elif event.key == pygame.K_LEFT and heroRect.x > 0:
                heroRect.x = heroRect.x - 40
            elif event.key == pygame.K_RIGHT and heroRect.x < 560:
                heroRect.x = heroRect.x + 40
    t2 = time.time()
    t = t2 - t1  # t表示经过的时间
    # 绘制地图
    screen.blit(bgImg, (0, 0))
    # 绘制宝石
    for n in gemRectList:
        if n.colliderect(heroRect):
            number = number + 1
            n.x = random.randint(0, 610)
            n.y = random.randint(40, 590)
        screen.blit(gemImg, n)
    # 绘制英雄
    screen.blit(heroImg, heroRect)
    # 绘制字体
    myWord = "挖到的宝石数:" + str(number)
    myText = myFont.render(myWord, True, (0, 0, 0))
    screen.blit(myText, (420, 10))
    myWord = "剩余时间:" + str(int(20 - t))
    myText = myFont.render(myWord, True, (0, 0, 0))
    screen.blit(myText, (10, 10))
    #时间结束,游戏结束,保存成绩,显示成绩
    if int(t) >= 20:
        with open("record.txt", "w") as file:
            file.write(str(number))
        screen.blit(gameoverbg, (0, 0))
        myWord = "时间到了,你的成绩为:" + str(number)
        myText = myFont.render(myWord, True, (0, 0, 0))
        screen.blit(myText, (160, 80))
    pygame.display.update()



关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

男牛把小困困放到女生困里视频| 《家访的老师》动浸在线观看 | 小说在线阅读| 野茱萸| 浸漫漫画免费漫画入口页面弹窗| 看镜子里我们的结合的地方| 暴躁老妈1-46集免费| 《暴力强伦轩》| 上司人妻互换HD无码中文字幕 | 意大利《少女之春》在线播放| 免费网站在线观看人数在哪省 | 戴着小玩具练瑜伽| 欧美大妈LOGO大全及价格图| BOBO浏览器(海外版)| 二年成全免费观看影视大全| 把腿张开臊烂你男男开荤粗肉动浸| 15岁初中生免费播放电视剧| 金枝玉叶大结局| 《落魄贵族当女仆》樱花动漫| 白丝袜精华液抹在脚上的功效| 美国禁忌:性炮交| 爸爸的擎天柱让我看第二集| 亚洲精品国产拍在线观看| 苍老师巅峰电影在线观看| 高瀬杏| 蜜桃成熟时1997》主题曲歌..| 戴着小玩具练瑜伽| 美女和帅哥一起努力生产豆浆| CSGO未满十八岁能玩多久| 精神小伙| 韩漫网址| 人马杂配MV的视频在哪里看| 《临时夫妻之孽缘》| 《一滴都不许漏》何泽城林荫 | 《厨房激战5》完整版在线观看| YSL水蜜桃86满十八岁会黑吗..| 吻戏| 交换第一次| 妈妈你真棒插曲最后接吻是谁| 暴躁少女零九CSGO| 校花被群JAN又粗又大H漫画