馥琳 发表于 2023-3-23 10:32

Python 游戏开发系列_1 开篇

这篇主要是介绍基于Pygame的游戏开发,对游戏开发感兴趣的编程初学者能通过游戏开发很好地提高python 编码能力。
什么是Pygame

Pygame 是一个专门用来开发游戏的 Python 模块,包括一系列的工具可以帮助开发者去做出一款游戏,主要工具有:

[*]图形和动画处理
[*]声音或音乐处理
[*]游戏控制(包括键盘,鼠标,手柄等操作)

游戏循环

游戏的核心是循环,通过循环处理操作所有的游戏事件,游戏每次的循环我们可以叫做帧,帧也即游戏刷新的频率。在每一帧里的时间里可以有很多游戏事件发生,这些事件可以归类为:

[*]处理输入(事件)
游戏响应处理外部的输入,例如键盘敲击或鼠标点击等。
[*]更新游戏
根据游戏响应去处理游戏各种更新,例如角色的移动或碰撞等。
[*]渲染(或者重绘)
游戏画面需要正确重新画出来,例如屏幕背景,角色,菜单等,
[*]时钟
游戏循环的一个重要方面就是控制游戏以多快的速度循环,我们一般用FPS(帧每秒) 来表示这个速度,通过这个速度来控制游戏循环快慢。

新建Pygame 模版

现在我们知道游戏有哪些要素了,我们可以先开始编写一个最简单的游戏窗口和游戏循环。
# Pygame template - pygame 项目框架
# 1,先倒入pygame 模块,定义一些常量
import pygame
import random

WIDTH = 360# 游戏窗口宽度
HEIGHT = 480 # 游戏窗口高度
FPS = 30   # 设置游戏30帧/秒

# 定义颜色常量
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)


# 2,初始化pygame,创建游戏窗口
pygame.init()
pygame.mixer.init()# 初始化声音处理
screen = pygame.display.set_mode((WIDTH, HEIGHT))# 设置游戏窗口
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()#

# 3,处理游戏循环
running = True

while running:
    # 设置正常的循环速度
    clock.tick(FPS)
   
    # 1)判断处理输入事件 (events)
    for event in pygame.event.get():
      # 检查是否点击了关闭窗口(触发关闭事件)
      if event.type == pygame.QUIT:
            running = False

    # 2)更新游戏

   
    # 3)渲染画面,显示画面
    screen.fill(BLACK)# 用黑色填充画面
    pygame.display.flip()

pygame.quit()

程序执行后,显示一个我们设置的黑窗口,点击关闭窗口则退出游戏。保存这个代码模版,后面丰富我们的游戏可以重用这个模版。

页: [1]
查看完整版本: Python 游戏开发系列_1 开篇