介绍
这篇文章主要介绍了python如何实现吃苹果小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
本文实例为大家分享了python实现吃苹果小游戏的具体代码,具体内容如下
1。公共类模块
import pygame 得到pygame.rect import 矩形 , , def print_text(字体,,x,, y,,文字,颜色=(255,,255,,255)): ,imgText=font.render(文本,,真的,,颜色) ,屏幕=pygame.display.get_surface () ,screen.blit (imgText (x, y)) , class MySprite (pygame.sprite.Sprite): 自我,def __init__ (): pygame.sprite.Sprite.__init__才能(自我) self.master_image才能=没有 self.frame 才能=0 self.old_frame 才能=1 self.frame_width 才能=1 self.frame_height 才能=1 self.first_frame 才能=0 self.last_frame 才能=0 self.columns 才能=0 self.last_time 才能=1 self.direction 才能=0 self.velocity 才能=0 , ,def _getx(自我):return self.rect.x ,def _gety(自我):return self.rect.y , ,def _setx(自我,,值):self.rect.x =,值 ,def _sety(自我,,值):self.rect.y =,值 ,“““ ,描述 ,财产()函数的作用是在新式类中返回属性值。 , ,语法 ,以下是,财产(),方法的语法: , ,class 财产([fget [, fset [, fdel [, doc]]]]) ,参数 ——,fget 获取属性值的函数 ,fset ,,设置属性值的函数 ,fdel ,,删除属性值函数 ,doc ,,属性描述信息 ,返回值 ,返回新式类属性。 ,“““=,X 属性(_getx, _setx)=,Y 属性(_gety, _sety) , ,#位置属性 ,def _getpos(自我):return self.rect.topleft ,def _setpos(自我,,pos): self.rect.topleft =, pos=,position 属性(_getpos, _setpos) , ,def 负载(文件名,自我,还以为,宽度,高度,,列): self.master_image才能=pygame.image.load(文件名).convert_alpha () 时间=self.frame_height 才能;高度 self.frame_width 才能=,宽度 时间=self.rect 才能;矩形(0,0,宽度,,高度) 时间=self.columns 才能;列 , 时间=rect 才能;self.master_image.get_rect () self.last_frame 才能=,(rect.width//宽)* (rect.height//高),安康;1 , ,def 更新(自我,,当前时间,率=30): #才能跟新动画帧 if 才能;current_time 祝辞,self.last_time +,率: ,,self.frame +=1 ,,if self.frame 祝辞,self.last_frame: ,,,self.frame =self.first_frame ,,self.last_time =当前时间 #才能仅当更改时才创建帧 if 才能;self.frame  !=, self.old_frame: ,,frame_x =, (self.frame %, self.columns), * self.frame_width ,,frame_y =, (self.frame //, self.columns), * self.frame_height ,,矩形=矩形(frame_y, frame_x,还以为,self.frame_width, self.frame_height) ,,self.image =, self.master_image.subsurface(矩形) ,,self.old_frame =self.frame class 点(对象): ,def __init__(自我,,x,, y): self.x 才能=,x self.y 才能=y 自我,def getx (): return self.x ,def gety(自我):return self.y ,def 对于setx(自我价值):self.x=价值 ,def 调用sety(自我价值):self.y=价值 , ,x=属性(getx对于setx) ,y=属性(gety调用sety) , ,def __str__(自我): return 才能;& # 39;x: & # 39; +“{: .0f}“.format (self.x), +, & # 39; y: & # 39; +“{: .0f}“.format (self.y)
2。首先生成随机苹果,然后监听键盘移动,播放动画。精灵和苹果碰撞检测,检测是吃掉苹果
import pygame 得到pygame.rect import 矩形 , 得到只import MyLibrary import 随机 import 系统 , , def calc_velocity(方向,或者=1.0):=,,velocity  MyLibrary.Point (0, 0) ,if direction ==0: #上 velocity.y 才能=韦尔==,elif direction 2: #右 velocity.x 才能=韦尔==,elif direction 4: #下==,,velocity.y 或者==,elif direction 6: #左==,,velocity.x 或者 return 速度 , pygame.init () 时间=screen pygame.display.set_mode (800600) 字体=pygame.font.Font(没有,,36) 计时器=pygame.time.Clock () , #创建精灵组 player_group=pygame.sprite.Group () food_group=pygame.sprite.Group () , #初始化玩家精灵组 球员=MyLibrary.MySprite () null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullpython如何实现吃苹果小游戏