python代码实现捉迷藏游戏

代码说明
初始化屏幕:设置窗口标题、背景颜色和尺寸。
创建玩家和目标:初始化玩家方块和目标点,设置它们的外观和初始位置。
显示分数:创建分数板以显示当前分数。
移动目标:定义 move_target 函数来将目标点移动到随机位置。
玩家移动:定义四个函数来处理玩家的移动(左、右、上、下)。
检测碰撞:定义 check_collision 函数来检测玩家是否与目标点碰撞,如果碰撞,增加分数并重新随机目标位置。
绑定键盘事件:将键盘按键绑定到相应的移动函数。
主游戏循环:在循环中不断更新窗口并检查碰撞。
运行游戏
运行代码后,玩家可以使用方向键控制蓝色方块,目标点会随机移动。每次玩家碰到目标点时,分数会增加并显示在屏幕上。

import turtle
import random

# 初始化屏幕
win = turtle.Screen()
win.title("捉迷藏游戏")
win.bgcolor("lightblue")
win.setup(width=800, height=600)

# 创建玩家方块
player = turtle.Turtle()
player.shape("square")
player.color("blue")
player.penup()
player.speed(0)
player.goto(0, -250)

# 创建目标点
target = turtle.Turtle()
target.shape("circle")
target.color("red")
target.penup()
target.speed(0)
target.hideturtle()

# 分数
score = 0

# 显示分数
scoreboard = turtle.Turtle()
scoreboard.speed(0)
scoreboard.color("black")
scoreboard.penup()
scoreboard.hideturtle()
scoreboard.goto(0, 260)
scoreboard.write(f"分数: {score}", align="center", font=("Courier", 24, "normal"))

# 随机移动目标点
def move_target():
    x = random.randint(-350, 350)
    y = random.randint(-250, 250)
    target.goto(x, y)
    target.showturtle()

# 玩家移动
def move_left():
    x = player.xcor() - 20
    if x < -380:
        x = -380
    player.setx(x)

def move_right():
    x = player.xcor() + 20
    if x > 380:
        x = 380
    player.setx(x)

def move_up():
    y = player.ycor() + 20
    if y > 290:
        y = 290
    player.sety(y)

def move_down():
    y = player.ycor() - 20
    if y < -290:
        y = -290
    player.sety(y)

# 检测碰撞
def check_collision():
    global score
    if player.distance(target) < 20:
        score += 1
        scoreboard.clear()
        scoreboard.write(f"分数: {score}", align="center", font=("Courier", 24, "normal"))
        move_target()

# 绑定键盘事件
win.listen()
win.onkeypress(move_left, "Left")
win.onkeypress(move_right, "Right")
win.onkeypress(move_up, "Up")
win.onkeypress(move_down, "Down")

# 主游戏循环
move_target()  # 初始化目标位置
while True:
    win.update()
    check_collision()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值