千家信息网

Python怎么实现大鱼吃小鱼游戏

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"Python怎么实现大鱼吃小鱼游戏"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python怎么实现大鱼吃小鱼游戏"文章能帮助大家解决问题。
千家信息网最后更新 2026年11月02日Python怎么实现大鱼吃小鱼游戏

这篇文章主要介绍"Python怎么实现大鱼吃小鱼游戏"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python怎么实现大鱼吃小鱼游戏"文章能帮助大家解决问题。

一.游戏画面

二.游戏素材

三.程序介绍

大鱼吃小鱼.py

注意程序的mouth对象,它并不是"隐藏"的,虽然它看不见。

小鱼碰到mouth会被"吃掉"。如果把mouth用hide命令设为隐藏,那么是无法获取到mouth的绑定盒,从而碰撞检测失效。

四.游戏代码

1.精灵对象。这个函数计算矩形下右角的一个坐标并返回它

from sprites import *def calculate_pos(obj):    """obj:精灵对象。这个函数计算矩形下右角的一个坐标并返回它。    """        x,y = obj.position()              # 角色的坐标    mx,my = mouse_position()          # 鼠标指针的坐标    k = 1 if mx > x else -1           # 在右则为1,否则为-1    left,top,right,bottom = obj.bbox()# 获取绑定盒    w = right-left                    # 大鱼的宽度    h = top - bottom                  # 大鱼的高度    x0 = x + k * w//2.5               # 嘴巴大概的x坐标    y0 = y - h//12                    # 嘴巴大概的y坐标    return x0,y0

2.设置游戏属性

width,height = 480,360                screen = Screen()                     # 新建宽高screen.setup(width,height)            # 设置宽高 screen.bgpic('res/underwater.png')    # 设背景图screen.title("图灵大海之大鱼吃小鱼")

3.游戏对象

fish_group = Group(tag='fish')        # 新建组,标签为fishfishes = ['res/fish2.png','res/fish3.png','res/fish4.png','res/crab-b.png']# 由于下面的鱼的标签都是fish,所以会自动加入到fish_group中for x in range(10):     x = random.randint(-200,200)     y = random.randint(-140,140)     f = Sprite(shape=random.choice(fishes),tag='fish',pos=(x,y))     f.scale(0.5)[fish.setheading(random.randint(1,360)) for fish in fish_group] m1 = Mouse(1)                        # 鼠标左键fish = Sprite('res/fish2-a.png')     # 实例化大鱼fish.rotatemode(1)                   # 左右翻转 fishscale= 0.6fish.scale(fishscale)mouth = Sprite(shape='circle')       # 实例化嘴巴,用于碰撞检测mouthscale = 0.4mouth.scale(mouthscale)              # 缩放嘴巴大小mouth.setalpha(0)                    # 把它设为透明,改为非0它会显示出来clock = Clock()                      # 新建时钟对象

4.游戏动态效果

while True:    for f in fish_group:        if f.isvisible():f.fd(1)     # 在可见的情况下才移动        # 小鱼碰到嘴巴及单击鼠标则被吃掉,大鱼长大        if f.collide(mouth,0.5) and m1.down() :            fishscale += 0.01            fish.scale(fishscale)     # 大鱼长大            mouthscale += 0.01            mouth.scale(mouthscale)   # 嘴巴跟着加大            x = random.randint(-200,200)            y = random.randint(-140,140)            # 注意这里调用了reborn后,鱼会立即隐藏,3后后出现            # 在3秒内碰撞检测无效,所以鱼不能动            f.reborn(x,y,delay=3)            f.shape(random.choice(fishes))                    f.bounce_on_edge()            fish.heading(mouse_pos())        # 大鱼跟随鼠标指针    x0,y0 = calculate_pos(fish)      # 计算嘴巴的大概坐标    mouth.goto(x0,y0)                # 嘴巴大这个坐标     md =  fish.distance(mouse_pos()) # 计算鱼到鼠标指针距离    if md > 50:fish.fd(min(md,4))    # 如果距离大于50则游    # 张嘴与合嘴    if m1.down():        fish.shape('res/fish2-a.png')    else:        fish.shape('res/fish2-b.png')    screen.update()    clock.tick(60)  fish.shape('res/fish2-a.png')    else:        fish.shape('res/fish2-b.png')    screen.update()    clock.tick(60)

关于"Python怎么实现大鱼吃小鱼游戏"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

大鱼 嘴巴 坐标 大鱼吃小鱼 对象 鼠标 指针 知识 检测 碰撞 函数 实例 小鱼 标签 矩形 程序 精灵 行业 不同 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 高科技互联网 深圳互联网络科技有限公司 唐信互联网科技 腾讯科技 互联网女皇 一五八零互联网科技 太原新华互联网科技学校怎么样 蓝色互联网科技 互联网科技公司的市场部门 成都玖崟互联网科技有限公司乐商圈怎么样 互联网企业和科技型企业 岳阳华臻互联网科技有限公司 米聚互联网科技南京有限公司排面 爱医互联网络科技 世界互联网领先科技成果获奖 21世纪互联网科技成就 卡尔迅互联网科技有限公司 青岛易易互联网科技 互联网领先科技成果宣传视频 中国主要互联网科技公司 上海睿民互联网科技有限公司 为想互联网科技怎么样 科技制造互联网公司 南京欣网互联网科技 互联网科技素材视频竖屏 中国科技互联网公司收入 互联网对科技的发展 四川互联网展示科技馆设计 互联网科技融合创新 互联网科技博主张洲
0