|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zxr951211 于 2019-8-1 15:34 编辑
- import pygame
- pygame.init()
- # 创建游戏窗口 480 * 700
- """
- set_mode(resolution = (0, 0), flag = 0, depth = 0) -> Surface
- resolution 指定屏幕的 宽 和 高
- flags 指定屏幕的附加选项,如是否全屏等
- depth 表示颜色的位数,默认自动匹配
- """
- screen = pygame.display.set_mode((480, 700))
- # 绘制背景图像
- # 1> 加载图像数据
- # load(file_path)
- bg = pygame.image.load("./images/background.png")
- # 2> blit绘制图像
- # blit(图像,位置)
- screen.blit(bg, (0, 0))
- # 3> update 更新屏幕显示
- pygame.display.update()
- # 绘制英雄图像
- # 1> 加载图像数据
- hero = pygame.image.load("./images/me1.png")
- # 2> blit绘制图像
- screen.blit(hero, (150, 300))
- # 3> update 更新屏幕显示
- pygame.display.update()
- # 创建时钟对象
- clock = pygame.time.Clock()
- # 1.定义rect记录飞机的初始位置
- hero_rect = pygame.Rect(150, 300, 102, 126)
- # 游戏循环:意味着游戏的正式开始
- while True:
- # 可以指定循环体内部的代码执行的频率
- clock.tick(60)
- # 监听事件
- for event in pygame.event.get():
- # 判断事件类型是否是退出事件
- if event.type == pygame.QUIT:
- print("游戏退出。。。")
- # quit卸载所有模块
- pygame.quit()
- # exit()直接终止当前正在执行的程序
- exit()
- # 2.修改飞机的位置
- hero_rect.y -= 1
- # 判断飞机的位置
- # if hero_rect.y <= -126:
- if hero_rect.bottom <= 0:
- hero_rect.y = 700
- # 3.调用blit方法绘制图像
- screen.blit(bg, (0, 0))
- screen.blit(hero, hero_rect)
- # 4.调用update方法更新显示
- pygame.display.update()
- pygame.quit()
复制代码
最近在学习“飞机大战”,对这段代码while循环里面代码的逻辑比较困惑。
while循环里有个for循环在对用户输入进行监听,但是为什么for循环下方的代码依然能够执行?
按理讲不是应该从for循环出来以后才能继续执行下面的代码吗?
麻烦各位大佬解惑
|
|