python小学生编程小游戏打地鼠turtle

老鼠和锤子都是自己画的

应用了turtle的监听模块

可以通过按下键盘一些按键改变显示的图形,进行打地鼠游戏的编程

主要应用知识点:监听:本次写的是上下左右键,执行函数操作

turtle.listen()
turtle.onkey(lambda :shang(),'Up')
turtle.onkey(lambda :xia(),'Down')
turtle.onkey(lambda :zuo(),'Left')
turtle.onkey(lambda :you(),'Right')

锤子的图像和老鼠的图像都是自己画的,可能不是很好看嘿嘿

按键后出现锤子,然后老鼠和锤子同时消失,使用的就是画了一个黑色的圆遮住

知识点

import turtle
turtle.bgcolor("red")#设置背景颜色为红色
turtle.penup()#抬笔
turtle.pendown()#落笔
turtle.goto(100,100)#前往坐标(100,100)
turtle.pensize(5)#画笔粗细为5
turtle.pencolor("blue")#画笔颜色为白色
turtle.forward(100)#顺着海龟方向画单位为100的直线
turtle.begin_fill()#开始填充
turtle.fillcolor("black")#填充颜色为黑色
turtle.end_fill()#结束填充 将需要填充的形状写在两者中间
turtle.circle(100)#画半径为100的圆
turtle.left(90)#海龟方向向左旋转90度
turtle.right(90)#海龟方向向右旋转90度

完整代码

import turtle
import random
import time
turtle.bgcolor('black')
turtle.hideturtle()
turtle.speed(0)
turtle.delay(0)

turtle.penup()
turtle.goto(320,180)
turtle.pendown()
turtle.pencolor("white")
turtle.write("游戏说明:\n控制键:\n↑ 打上面地鼠\n↓ 打下面地鼠\n← 打左面地鼠\n→ 打右面地鼠\n",align="right",font=("楷体", 14,"normal"))
turtle.pencolor("black")

def chuizi():
    turtle.hideturtle()
    turtle.begin_fill()
    turtle.fillcolor("#804000")
    turtle.left(135)
    turtle.forward(50)
    turtle.left(90)
    turtle.forward(30)
    turtle.right(90)
    turtle.forward(30)
    turtle.right(90)
    turtle.forward(65)
    turtle.right(90)
    turtle.forward(30)
    turtle.right(90)
    turtle.forward(30)
    turtle.left(90)
    turtle.forward(50)
    turtle.right(90)
    turtle.forward(5)
    turtle.end_fill()
    turtle.penup()
    turtle.home()

def laoshu():
    turtle.begin_fill()
    turtle.fillcolor("#D3D3D3")
    turtle.forward(50)
    turtle.left(90)
    turtle.forward(60)
    turtle.circle(25, 180)
    turtle.forward(60)
    turtle.right(180)
    turtle.forward(60)
    turtle.right(90)
    turtle.end_fill()
    turtle.penup()
    turtle.forward(15)
    turtle.pendown()
    turtle.begin_fill()
    turtle.fillcolor("black")
    turtle.circle(3)
    turtle.end_fill()
    turtle.penup()
    turtle.forward(18)
    turtle.pendown()
    turtle.begin_fill()
    turtle.fillcolor("black")
    turtle.circle(3)
    turtle.end_fill()
    turtle.penup()
    turtle.right(180)
    turtle.forward(6)
    turtle.left(90)
    turtle.forward(5)
    turtle.pendown()
    turtle.right(90)
    turtle.forward(6)
    turtle.right(180)
    turtle.forward(3)
    turtle.right(90)
    turtle.forward(5)
    turtle.circle(3, 180)
    turtle.penup()
    turtle.left(90)
    turtle.forward(12)
    turtle.left(90)
    turtle.pendown()
    turtle.circle(3, 180)
    turtle.penup()
    turtle.home()

def shang():
    turtle.penup()
    turtle.goto(100,200)
    chuizi()
    time.sleep(0.5)
    turtle.pendown()
    turtle.pencolor('black')
    turtle.color('black')
    turtle.begin_fill()
    turtle.circle(150)
    turtle.end_fill()
    turtle.penup()
    turtle.home()

def xia():
    turtle.penup()
    turtle.goto(100,-200)
    turtle.pendown()
    chuizi()
    time.sleep(0.5)
    turtle.penup()
    turtle.goto(50, -300)
    turtle.pendown()
    turtle.pencolor('black')
    turtle.color('black')
    turtle.begin_fill()
    turtle.circle(150)
    turtle.end_fill()
    turtle.penup()
    turtle.home()

def zuo():
    turtle.penup()
    turtle.goto(-100,0)
    turtle.pendown()
    chuizi()
    time.sleep(0.5)
    turtle.penup()
    turtle.goto(-100,-50)
    turtle.pendown()
    turtle.pencolor('black')
    turtle.color('black')
    turtle.begin_fill()
    turtle.circle(130)
    turtle.end_fill()
    turtle.penup()
    turtle.home()

def you():
    turtle.penup()
    turtle.goto(300,0)
    turtle.pendown()
    chuizi()
    time.sleep(0.5)
    turtle.penup()
    turtle.goto(250,-100)
    turtle.pendown()
    turtle.pencolor('black')
    turtle.color('black')
    turtle.begin_fill()
    turtle.circle(150)
    turtle.end_fill()
    turtle.penup()
    turtle.home()


turtle.listen()
turtle.onkey(lambda :shang(),'Up')
turtle.onkey(lambda :xia(),'Down')
turtle.onkey(lambda :zuo(),'Left')
turtle.onkey(lambda :you(),'Right')

def huayuan():
    colors = random.choice(["pink", "yellow", "white", "red", "green"])
    x=random.choice([0,-200,200])
    if x==0:
        y=random.choice([-200,200])
    else:
        y=0
    turtle.penup()
    turtle.goto(x,y)
    turtle.pendown()
    laoshu()

for i in range(10):
    huayuan()
    time.sleep(2)
    turtle.penup()
    turtle.home()
turtle.done()

 

  • 4
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值