Python 2D游戏开发

pygame 模块

1. 搭建窗口
import pygame

def main():
    # 创建 可以窗口, 参数1 , 是个元祖, 宽和高, 参数2 , 是附加参数, 参数3  是颜色深度
    pygame.display.set_mode((400, 300),0, 32)
    while True:
        # 2 显示窗口
        pygame.update()
    
if __name__ == "__main__":
        main()
2. 崩溃bug
原因
  • pygame的窗口打开后 点击鼠标,移动鼠标,敲键盘都会有事件发生,这时候需要代码处理作出响应,如果代码没有处理那么程序就会无响应
解决方法:
  • 添加获取事件的代码 pygame.event.get()如下

import pygame


def main():
    # 1创建一个窗口 参数1 是一个元组 宽和高,参2是附加参数,参3是颜色深度
    screen = pygame.display.set_mode((600, 480), 0, 32)

    # 2 创建一个背景图片的对象
    background = pygame.image.load('bg_test.jpg')

    # 3 把背景图片贴到窗口上 参数1 传入图片 参数2是图片的坐标位置
    screen.blit(background, (0, 0))

    while True:
        # 获取事件 这样pygame才能正常响应
        pygame.event.get()
        # 显示窗口
        pygame.display.update()


if __name__ == '__main__':
    main()
点击退出

问题

  • 点击右上角的x , 发现无法关闭游戏
解决方法
  • 因为点击x也是一个事件,叫退出事件,但是窗口的退出事件我们并没有代码进行处理。只需要添加对应代码就好
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfHJasxe-1576075625004)(en-resource://database/443:1)]

总结

  • 发现有一个for循环,因为我们可能操作游戏的时候,同时按下多个按键,也同时可能在移动和点击鼠标,所有pygame.event.get()获取的是一个列表,里面可能是多个事件,所以如果要处理其中一种的话,就要遍历进行判断。
  • event.type 中的type属性是事件的类型,当点击退出的x号时,类型就是pygame.QUIT
  • 注意:退出pygame后执行exit退出程序
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值