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

【作品介绍】
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