Python学习的第二十一天(包与游戏飞机大战入门操作)

# __name__

if __name__ == "__main__":

重要

在这里插入图片描述

用途

模块作者测试模块本身功能的时候

把测试的代码

写在if的判断下面,例如

add.py

def add2num(n1, n2):
    print(n1+n2)

name = "张三"
age = 18


if __name__ == "__main__":
    print('add模块的测试数据。。。。')
    print(__name__, type(__name__))
    add2num(100,200)

包是一个类似于文件夹的一个东西

它里面存放多个模块(多个py文件)

包是一个特别的文件夹,区别就是比普通文件夹多一个__init__.py

创建包的两种方式

在这里插入图片描述

什么是包,它的功能

包主要是一个收集模块的一个容器

我们会把多个功熊相近的模块,存放到一个包中

如何创建一个包

包的本质就是一个文件夹,比普通文件夹,它多一个__init__.py

第一种创建方式

直接新建文件夹,然后在文件夹下,创建一个py文件,命名为__init__.py

第二种创建方式

直接通过pycharm创建,创建一个python package

让包中的模块可以被使用

需要在包里面的init文件中,对模块进行一个导入

注意点

导入的时候,要以init文件为起始目录

所以需要用 from . 这种方式

一般的情况

from . import 模块名

特殊的情况

在这里插入图片描述
pygame模块

游戏飞机大战入门操作

#安装方式

01通过在线安装的方式

在pycharm中左下角有一个Terminal

可以查看有哪些安装好的模块与包

通过命令

pip list

如果我们需要安装pygame

使用命令

pip install pygame

02离线安装

对于anaconda来说

安装在

C:\Users\用户名\Anaconda3\Lib\site-packages

因此, 如果我们有了离线的包文件夹

可以直接把文件夹拷备到这个目录

如果当前使用的解释器是pycharm给我们生成的一个纯净的解释器

那么我们直接把pygame的文件夹,粘到 site-packages

体验pygame的游戏效果

在pycharm中的Terminal中

python -m pygame.examples.aliens

在命令提示符下也可以使用

前提条件就是

我们的项目用的是anaconda目录下的python解释器

函数的定义与调用

  • 定义函数的时候,有默认值的形参
  def func(name="zs", age=18):
      print(name)
      print(age)
  
  func()
  
  # 有默认值的形参,我们在调用的时候是不用传参,不报错的

调用时,如果需要传参,有两种方式传

  • 位置传参

    def func(name="zs", age=18):
        print(name)
        print(age)
    
    func("李四", 28)
    
  • 指名传参(关键词传参)

    def func(name="zs", age=18):
        print(name)
        print(age)
    func(age=16, name="ww")
    

扩展出来的传参方式

位置传参与关键词传参,同时

def func(name="zs", age=18):
    print(name)
    print(age)
func("zl", age=88)

创造游戏屏幕对象

pygame.display.set_mode()

set_mode 方法说明

set_mode(resolution=(0,0), flags=0, depth=0) -> Surface
  • 作用 —— 创建游戏显示窗口
  • 参数
    • resolution 指定屏幕的 ,默认创建的窗口大小和屏幕大小一致
    • flags 参数指定屏幕的附加选项,例如是否全屏等等,默认不需要传递
    • depth 参数表示颜色的位数,默认自动匹配
  • 返回值
    • 暂时 可以理解为 游戏的屏幕游戏的元素 都需要被绘制到 游戏的屏幕
  • 注意:必须使用变量记录 set_mode 方法的返回结果!因为:后续所有的图像绘制都基于这个返回结果

创建游戏主窗口

screen = pygame.display.set_mode((480, 700))

time模块

引入

import time

有一个延迟功能,睡眠

time.sleep(秒数)

让游戏窗口不要秒退

使用time模块来延迟下一行代码的执行

while True:
    pygame.display.set_mode((400,600))
    time.sleep(10)
    break

绘制图象三步曲

  • 在游戏中,能够看到的 游戏元素 大多都是 图像
    • 图像文件 初始是保存在磁盘上的,如果需要使用,第一步 就需要 被加载到内存
  • 要在屏幕上 看到某一个图像的内容,需要按照三个步骤:
    1. 使用 pygame.image.load() 加载图像的数据
    2. 使用 游戏屏幕 对象,调用 blit 方法 将图像绘制到指定位置
    3. 调用 pygame.display.update() 方法更新整个屏幕的显示

在这里插入图片描述

提示:要想在屏幕上看到绘制的结果,就一定要调用 pygame.display.update() 方法

游戏中的座标系

飞机的定位

飞机定位在右下的的训练

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/abcdhulei/article/details/89160327