代码说明
初始化屏幕:设置游戏窗口的标题、背景颜色和尺寸。
创建玩家和影子:初始化玩家方块和影子方块,设置它们的外观和初始位置。
显示分数:创建一个分数板,显示当前的分数。
移动影子:定义 move_shadow 函数来将影子方块移动到随机位置。
玩家移动:定义四个函数来处理玩家的移动(左、右、上、下)。
检测碰撞:定义 check_collision 函数来检测玩家是否与影子方块碰撞,如果碰撞,增加分数并重新随机影子位置。
绑定键盘事件:将键盘按键绑定到相应的移动函数。
主游戏循环:在循环中不断更新窗口并检查碰撞。
运行游戏
运行代码后,玩家可以使用方向键控制蓝色方块移动。
方块需要移动到红色影子的位置上来增加分数。
影子每次被踩到后会随机移动,玩家需要快速反应。
import turtle
import random
# 初始化屏幕
win = turtle.Screen()
win.title("踩影子游戏")
win.bgcolor("white")
win.setup(width=800, height=600)
# 创建玩家方块
player = turtle.Turtle()
player.shape("square")
player.color("blue")
player.penup()
player.speed(0)
player.goto(0, -250)
# 创建影子方块
shadow = turtle.Turtle()
shadow.shape("circle")
shadow.color("red")
shadow.penup()
shadow.speed(0)
shadow.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_shadow():
x = random.randint(-350, 350)
y = random.randint(-250, 250)
shadow.goto(x, y)
shadow.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(shadow) < 20:
score += 1
scoreboard.clear()
scoreboard.write(f"分数: {score}", align="center", font=("Courier", 24, "normal"))
move_shadow()
# 绑定键盘事件
win.listen()
win.onkeypress(move_left, "Left")
win.onkeypress(move_right, "Right")
win.onkeypress(move_up, "Up")
win.onkeypress(move_down, "Down")
# 主游戏循环
move_shadow() # 初始化影子位置
while True:
win.update()
check_collision()
python代码实现踩影子游戏
最新推荐文章于 2024-09-23 14:24:34 发布