猫史档案馆


【Python作品分享】星际寻猫【作品秀】

用户:天边的生活天边的生活查看:1 回复:2 评论:1 创建时间:2020-08-11T18:06:29


【作品展示】

center_image

 

【作品介绍】

在未来城市,随着科技日新月异的发展,人类的能力越来越强大。从前“大海捞针”是极难的事,而如今就算是一只小猫咪消失在浩瀚的宇宙中,也可利用新型雷达技术寻回。 ......在海龟编辑器客户端库管理界面搜索“Pygame”并安装它,就可以使用此作品了。

 

【作品源代码】

import pgzrun
from random import randint

WIDTH = 800
HEIGHT = 600
get_cat = False #False代表没有找到猫咪,True代表找到猫咪
time_left = 30
game_over = False
game_start = False

astronaut = Actor("astronaut") #创建角色“阿短”
astronaut.pos = 330, 330
cat = Actor("cat")#创建角色“猫咪”
cat.pos = randint(100, 700), randint(100, 500) #设置猫咪的位置为随机


def draw():
    global game_start
    if game_start:
        screen.blit('background', (0, 0)) #加载背景图片
        astronaut.draw()
        if get_cat:
            cat.draw()

        screen.draw.text("time: " + str(time_left),
                         color="white", topleft=(10, 10), fontsize=50)
        if game_over:
            screen.draw.text("You lost the cat",
                             topleft=(150, 260), fontsize=100)  # 在屏幕显示“You lost the cat”的文字
            music.pause()
    else:
        screen.blit('background', (0, 0))
        screen.draw.text("Space cat", topleft=(280, 240), fontsize=80)
        screen.draw.text("Press the space bar to start",
                         topleft=(220, 300), fontsize=60)
        if keyboard.space:
            game_start = True
            music.play('dududu')
            clock.schedule_interval(update_time_left, 1.0)


def update():
    global get_cat, game_start #将get-cat 设为全局变量
    if game_start:
        if get_cat == False: #如果未找到猫咪
            if keyboard.a: #如果按键A按下
                astronaut.x -= 2 #阿短向←移动
            elif keyboard.d:  # 如果按键D按下
                astronaut.x += 2  # 阿短向→移动
            if keyboard.w:  # 如果按键W按下
                astronaut.y -= 2  # 阿短向↑移动
            elif keyboard.s:  # 如果按键S按下
                astronaut.y += 2  # 阿短向↓移动

            distance = astronaut.distance_to(cat)  # 测量阿短与编程猫的距离
            if distance <= 400:
                music.set_volume(1 - distance / 450)  #距离在400以内时根据距离调整音量
            else:
                music.set_volume(0.1) #距离超过400时,音量始终保持在0.1

            if distance < 100 and keyboard.u: #两个条件同时满足时
                get_cat = True #找到猫咪
                music.pause() #暂停雷达声
                music.play_once('success') #播放胜利音效


def update_time_left():
    global time_left, get_cat, game_over
    if get_cat == False:  # 判断是否抓到猫咪,没有抓到的话才开始计数
        if time_left:
            time_left -= 1  # 计数逐渐减少
        else:
            game_over = True  # 设置变量代表游戏结束


pgzrun.go()  # Pygame 程序最后一行一定要有“pgzrun.go()”

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
lsk666666lsk666666

emotion_编程猫_点赞

点赞0


评论


盒子的box盒子的box

pgzero...

不是PyGame

点赞0


评论