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