初入pygame——贪吃蛇

一、问题
利用pygame进行游戏的编写,做一些简单的游戏比如贪吃蛇,连连看等,后期做完会把代码托管。

二、解决

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,记录一些基本的内容,后面再添加关于界面和事件更高级处理的内容



 

猜你喜欢

转载自www.cnblogs.com/future-dream/p/10776700.html