初入pygame——贪吃蛇
一、问题
利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
二、解决
1.环境配置
python提供一个pygame的库来进行游戏的编写。首先是安装pygame,命令行:【pip install pygame】
2.初始化信息
利用set_mode(大小)和set_caption(标题)来对界面进行初始化
1 pygame.init() 2 self.surface = pygame.display.set_mode((total_length * unit, total_width * unit)) 3 self.py.display.set_caption("贪吃蛇")
3.循环界面,事件处理
利用一个while True来进行界面的循环,pygame.event.get()来获取事件,if进行退出判断,剩下的进行逻辑处理
1 while True: 2 for event in pygame.event.get(): 3 if event.type == QUIT: 4 pygame.quit() 5 sys.exit()
4.键盘的事件处理
利用事件的KEYWORD来处理键盘的事件,利用event.key可以处理对应的键盘信息event.key == ord('w') 和event.key == K_w,事件的处理效果一样。
1 elif event.type == KEYDOWN: 2 if event.key == K_UP or event.key == ord('w'): 3 change_direction = 'up'
4 if event.key == K_LEFT or event.key == ord('a'): 5 change_direction = 'left'
6 if event.key == K_DOWN or event.key == ord('s'): 7 change_direction = 'down'
8 if event.key == K_RIGHT or event.key == ord('d'): 9 change_direction = 'right'
5.画图与界面更新
# 画图
# 圆(位置,半径,大小)
self.py.draw.circle(self.surface, self.color.green, (self.raspberry_position[0], self.raspberry_position[1]), int(self.unit / 2), int(self.unit / 2)) # 矩形(位置,长宽)
self.py.draw.rect(self.surface, self.color.red, Rect(self.raspberry_position[0], self.raspberry_position[1], self.unit, self.unit)) # 界面更新
# 更新界面
self.py.display.flip()
6.时钟的控制
利用time.Clock()来控制游戏的速度,越大越快。
1 # 时钟
2 play_clock = pygame.time.Clock() 3 self.clock = play_clock
7.字体界面的布局
1 game_over_font = self.py.font.Font(r'C:\Windows\Fonts\arial.ttf', 72) 2 game_over_surface = game_over_font.render('Game Over', True, self.color.gray) 3 game_over_rect = game_over_surface.get_rect() 4 game_over_rect.midtop = (self.length * 10, 10)
四、总结
初入pygame,记录一些基本的内容,后面再添加关于界面和事件更高级处理的内容

更多精彩