一、问题
利用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——贪吃蛇 随笔

 

四、总结
初入pygame,记录一些基本的内容,后面再添加关于界面和事件更高级处理的内容



 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄