AI科技大本营|玩出花儿了!一文教你用 Python 制作吃豆人游戏! | 附代码,Python
_本文原题为:Python玩出花儿了!一文教你用Python制作吃豆人游戏!|附代码
文章图片
作者|李秋键
责编|Carol
封图|CSDN下载自视觉中国
近几年来Python语言得到了快速发展 , 而Pygame作为Python开发应用和游戏必备的库更是展现了Python的优越性 。
而今天我们就将借助Pygame建立吃豆人游戏 。
文章图片
吃豆人是电子游戏历史上的经典街机游戏 , 由Namco公司的岩谷彻设计并由MidwayGames在1980年发行 。 Pac-Man被认为是80年代最经典的街机游戏之一 , 游戏的主角小精灵的形象甚至被作为一种大众文化符号 , 或是此产业的代表形象 。
而Pygame模块是跨平台Python模块 , 专为电子游戏设计 , 包含图像、声音 。 建立在SDL基础上 , 允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚 。
最终游戏效果如下可见:
文章图片
一、实验前的准备
首先我们使用的python版本是3.6.5所用到的模块是pygame模块 , 用来创建游戏框架 。 Random模块用来随机生成方向 。
素材准备
首先我们将图片放到images目录下 , 背景音乐放到sounds目录下 。
如下图可见:
文章图片
游戏搭建
1、定义一些精灵:
整体的类变量定义包括墙类 , 通过pygame的图片填充作为墙类的加载;同理还包括食物类和角色 。 而怪物的随机运动使用random产生随机运动方向 。
其对应的代码如下:
importrandom
importpygame
'''墙类'''
classWall(pygame.sprite.Sprite):
def__init__(self,x,y,width,height,color,**kwargs):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.Surface([width,height])
self.image.fill(color)
self.rect=self.image.get_rect
self.rect.left=x
self.rect.top=y
'''食物类'''
classFood(pygame.sprite.Sprite):
def__init__(self,x,y,width,height,color,bg_color,**kwargs):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.Surface([width,height])
self.image.fill(bg_color)
self.image.set_colorkey(bg_color)
pygame.draw.ellipse(self.image,color,[0,0,width,height])
self.rect=self.image.get_rect
self.rect.left=x
self.rect.top=y
'''角色类'''
classPlayer(pygame.sprite.Sprite):
def__init__(self,x,y,role_image_path):
pygame.sprite.Sprite.__init__(self)
self.role_name=role_image_path.split('/')[-1].split('.')[0]
self.base_image=pygame.image.load(role_image_path).convert
self.image=self.base_image.copy
self.rect=self.image.get_rect
self.rect.left=x
self.rect.top=y
self.prev_x=x
self.prev_y=y
self.base_speed=[30,30]
self.speed=[0,0]
self.is_move=False
self.tracks=[]
self.tracks_loc=[0,0]
'''改变速度方向'''
defchangeSpeed(self,direction):
ifdirection[0]<0:
self.image=pygame.transform.flip(self.base_image,True,False)
elifdirection[0]>0:
self.image=self.base_image.copy
elifdirection[1]<0:
self.image=pygame.transform.rotate(self.base_image,90)
推荐阅读
- 科技观察站|被错付了,腾讯与老干妈堪比喜剧电影的“商战”情节:风味豆豉鹅
- 暖日欣欣科技立伟|随便哪一件都值得我们去怀念,热血传奇:盘点盛大经典的装备系列
- 爱辉科技|荣耀赵明点赞,网友:赵总也想去小米?,雷军官宣杨柘加盟小米
- 高科技元素|广东欢太科技有限公司这样建议,小孩沉迷游戏造成误充值
- 心急科技|压力有点大啊,明日之后玩家首次当策划多结局新玩法
- 无边科技|710点券留给钟馗,杨戬改动方案公布司马懿新皮肤被爆料
- 风口科技|中路抢血包,打野我想静静,最怕打野做什么边路抢河蟹
- 云顶之弈▲云顶之弈上分黑科技,只用这一套阵容,轻松上钻2!简直不要太强!
- 电科技|以投屏为主打卖点,索尼这款电视收获数万人好评,携手乐播
- ITheat热点科技|FE12-24mm f2.8已在路上,索尼A7S3全幅微单EVF规格曝光