python创意趣味小猴接桃子游戏gameturtle模块

python趣味游戏小猴接桃子

"""
   小猴接桃子.py
   本程序需要gameturtle模块,枕头模块运行,请先运行以下命令进行安装
   pip install gameturtle
   博客网址: www.lixingqiu.com
   内有本人自2010年探索少儿编程以来的1000多创意Python程序/课程/教程等。
"""
import time                                 # 导入时间模块
import random                               # 导入随机模块
from tkinter import *                       # 从tkinter模块导入所有
from PIL import Image                       # 从枕头模块导入Image
from gameturtle import Sprite               # 从gameturtle模块导入角色类

root = Tk()                                 # 新建窗口
root.title('猴子接桃子by李兴球')             # 设定窗口标题

cv = Canvas(width=480,height=360,bg='cyan') # 实例化青色画布
cv.pack()                                   # 放置画布
root.center()                               # 窗口居中显示 

im=PhotoImage(file='images/花果山3.png')      # 背景图  
cv.create_image(240,180,image=im)            # 铺上背景图 

taozi = Image.open('images/桃子.png')        # 桃子图
w,h = taozi.width,taozi.height               # 桃子宽高
taozi = taozi.resize((w//18,h//18))            # 桃子图缩小
peachs = []                                  # 所有的桃子在这 
for _ in range(20):                          # 在范围20内迭代下划线  
    x = random.randint(0,480)                # x的范围是0到480
    y = random.randint(-360,-10)             # y的范围是-360到-10 
    tz = Sprite(cv,taozi,pos=(x,y))          # 生成一个桃子
    peachs.append(tz)                        # 添加到桃子列表

imgs = [f"images/m{i}.png" for i in range(3)]
imgs = [Image.open(im) for im in imgs]       # 猴子三造型

monkey = Sprite(cv,imgs)                    # 在画布cv上实例化一只猴子
monkey.say("你好,我是小猴",2)                # 猴子说话
monkey.say("帮我接到桃子哦",2)                # 猴子说话

counter = 0                                  # 计数器 
while True:                                  # 当成立的时候
   mx,my = cv.mouse_pos()                    # 获取画布上鼠标指针坐标 
   monkey.goto(mx,320)                       # 猴子到达mx,320坐标
   if counter%10==0: monkey.nextshape()      # 切换猴子造型
   
   for tz in peachs:                         # 每个桃子
       tz.addy(2)                            # 往下移 
       if tz.collide(monkey) or tz.ycor()>480: # 如果桃子碰到猴子或到了最下面
           x = random.randint(0,480)           # 设定x值为0到480
           y = random.randint(-360,-10)        # 设定y值是-360到-10
           tz.goto(x,y)                        # 桃子到达x,y坐标 
           
   cv.update()                                 # 刷新画布显示
   time.sleep(0.01)                            # 等待0.01秒
   counter += 1
    

 

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李兴球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值