Python怎么实现大鱼吃小鱼游戏
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"Python怎么实现大鱼吃小鱼游戏"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Python怎么实现大鱼吃小鱼游戏"文章能帮助大家解决问题。
千家信息网最后更新 2025年01月18日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安全错误
数据库的锁怎样保障安全
网络技术一次性加密有什么
中兴2022秋招软件开发的条件
宁波网络技术支持哪家好
延庆区综合网络技术服务质量推荐
如何查看一个数据库有几个表
数据库匹配的对象
三支一扶服务器满后
最有优先的三个网络安全
数据库产业
珠海世界数据库大会
数据库中 主属性和非主属性
工装软件开发 工程师
云丁网络技术有限公司上市
数据库转化
校园网络安全培训简报
网络安全进校园字体图片
真实项目数据库表设计
数据库映射实验实验报告
app开发使用什么数据库
小学宣传网络安全法方案
ctf网络安全大赛中国战队有
网络安全制考核制度
妙医科技互联网医疗是什么
全国网络安全大赛网址
星落残阳服务器
学软件开发可以去哪些公司
清远软件开发公司电话
监听 数据库吗
php查找数据库
杨浦区网络技术开发供应商