zoukankan      html  css  js  c++  java
  • pygame开发游戏的主要流程

    转载注明链接:https://www.cnblogs.com/liquancai/p/13227839.html

    pygame开发游戏的主要流程

    pygame开发游戏的基础是创建游戏窗口,核心是处理事件、更新游戏状态和在屏幕上绘制图形。游戏状态可以理解为程序中所有变量值的列表。在有些游戏中,游戏状态包括存放人物健康个位置的变量、物体或图形位置的变化,这些值可以在屏幕上表示。

    物体或图形位置的变化只有通过在屏幕上绘图才可以看出来。

    可以简单的抽象出pygame开发游戏的主要流程如下:

    image-20200702225938129

    下面举一个具体例子来说明:

    使用 pygame 开发一个显示 “Hello World!”标题的窗口

    import pygame
    
    def hello_world():
        pygame.init()
        pygame.display.set_mode((400, 600))
        pygame.display.set_caption("Hello World!")
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    exit()
            pygame.display.update()
    
    
    if __name__ == '__main__':
        hello_world()
    

    运行后仅见到黑色的游戏窗口,标题是“Hello World!”,如下所示:

    image-20200702231051363

    在导入pygame模块后,任何pygame游戏程序均需要执行 pygame.init() 语句进行模块的初始化,它必须在进入游戏的无限循环之前被调用。这个函数会自动初始化其他所有模块(例如 pygame.font 和 pygame.image),通过它载入驱动和硬件请求,这样游戏程序才可以使用计算机上的所有设备,比较费时间。如果只使用少量的模块,应该分别初始化这些模块以节省时间,例如 pygame.sound.init() 仅仅初始化声音模块。

    该代码中有个无限循环,每个 pygame 程序都需要它,在无限循环中可以做以下操作。

    1. 处理事件:例如鼠标 、键盘 、关闭窗口等事件。
    2. 更新游戏状态:例如坦克的位置变化 、数量变化等。
    3. 在屏幕上绘图:例如绘制新的敌方坦克等。

    不断重复上面3个步骤,从而完成游戏逻辑。

    在本例代码中仅仅处理关闭窗口事件,也就是玩家关闭窗口时 pyagme.quit() 退出游戏。

  • 相关阅读:
    堆栈的链表方式实现
    堆栈的公式化描述实现
    队列的链表方式实现
    队列的实现:公式化描述
    二叉树实现:公式化描述
    算法学习笔记(四):合并排序
    编译caffe报错:_ZN5boost16exception_detail10bad_alloc_D2Ev
    druid的安装
    Error : Must specify a primary resource (JAR or python or R file)
    zip和zippartition总结
  • 原文地址:https://www.cnblogs.com/liquancai/p/13227839.html
Copyright © 2011-2022 走看看