猫史档案馆


【Python作品分享】赶年兽-pgzero

用户:火车迷少年火车迷少年查看:0 回复:0 评论:0 创建时间:2023-05-28T13:07:23


【作品展示】

center_image

 

【作品介绍】

i

 

【作品源代码】

from pgzrun import *
import random

WIDTH = 800
HEIGHT = 600
TITLE = '赶年兽'
music.play('纯音乐-安妮的仙境.mp3')
# 年兽随机出现的范围
monster_range = [(-200, 0), (800, 1000)]
# 成功的年兽数量
monster_success_num = 3
monster_num = 0

bg = Actor('围栏.png', (400, 300))
room = Actor('房子.png', (400, 300))
door = Actor('门.png', (400, 400))
banger = Actor('鞭炮.png', (400, 300))
# 年兽
monsters = []
# 游戏状态
game_status = "游戏中"
def draw():
    screen.clear()
    bg.draw()
    room.draw()
    door.draw()
    if game_status == "游戏中":
        banger.draw()
        draw_monster()
    draw_num()
def update():
    deal_monster()
    success()
def on_mouse_move(pos):
    banger.pos = pos
def create_monster():
    n = random.choice(monster_range)
    # 随机出现在左右两侧
    monster = Actor("年兽右.png")
    monster.pos = random.randint(n[0], n[1]), random.randint(500, 550)
    # 如果是左侧
    if n[0] < 0:
        monster.speed_x = 2
    else:
        monster.speed_x = -2
    monsters.append(monster)


def draw_monster():
    for monster in monsters:
        monster.draw()


def deal_monster():
    global monster_num
    kill_monster = []
    for monster in monsters:
        monster.x += monster.speed_x
        if monster.colliderect(door) and monster.distance_to(door) < 150:
            monster.speed_x = 0
        elif monster.colliderect(banger) and monster.speed_x != 0:
            kill_monster.append(monster)
            monster_num += 1
    # 移动碰撞的年兽
    for monster in kill_monster:
        monsters.remove(monster)


def draw_num():
    screen.draw.text(str(monster_num), center=(30, 30), color="black", fontsize=50)


def success():
    global monsters, game_status
    if monster_num >= 300:
        monsters = []
        clock.unschedule(create_monster)
        game_status = "游戏成功"


clock.schedule_interval(create_monster, 2)
go()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页