在python怎么读中怎么创建两种颜色不同的子弹?

生化三模式500发生化·危机模式300發 大灾变模式无限

你对这个回答的评价是?

  python怎么读游戏系列之四_发射子彈

  在上一讲中我们已经做到了飞机的自由移动,但还有一点小问题就是飞机可能会移到屏幕外。

  我们来加上边界检测的代码使程序更严谨:

# 判断x坐标是否左边或右边越界 # 判断y坐标是否上边或下边越界

  在本节中,我们将让飞机发射子弹

  1. 我方飞机会自動发射子弹,发射频率是固定的

  2. 子弹方向自下向上,移动速度固定

  3. 子弹超出屏幕显示范围,则消失

  4. 本节暂不考虑子弹擊中敌机的问题。

  本节中会用到python怎么读面向对象编程的知识所以先介绍一下python怎么读中的“类”。

  学过Java的同学应该会比较容易接受python怎么读中“类”的概念。

# 创建Student类的对象并调用构造方法2

  与Java语言差别较大的,就是在定义每个方法时都有一个名为“self”的参数。

  实际上在调用方法时,会把当前对象传递给形参”self“

  例如:s1.detail(),这时会把s1对象传递给”self“形参

  “self”的用法,相当于Java语訁中的”this“

  __init__()方法是构造方法,可以重载

  ”精灵(Sprite)“,是游戏编程的术语用于表示在背景上可以自由移动的一个图形块。

  在我们的游戏中有我方飞机,有敌方飞机有无数子弹,如果什么都要我们处理那就太麻烦了。

  在pygame.sprite模块中精灵类(Sprite)提供叻很多常用功能,可以让我们自己的类(如飞机、子弹)继承它

  精灵组类(Group)可以将多个精灵构成一组,适用于子弹的管理

  精灵组的使用示例:

# 向精灵组中添加精灵 # 更新精灵组,此时会调用每个精灵的update()方法

  下面是重构后的代码由于引入了类,所以代码有較大的变动:

# 我方飞机类继承自Sprite类 # 构造方法,参数分别是我方飞机图片和起始坐标 # 调用父类的构造方法 # 移动方法参数是offset列表 # 计算新的x、y坐标 # 对rect属性赋值,调整我方飞机位置 # 同时防止我方飞机越出边界 # 发射子弹方法参数为子弹图片 # 子弹初始位置在我方飞机的上方居中位置 # 将子弹添加到子弹组中 # 构造方法,参数分别是子弹图片和起始位置 # 调用父类的构造方法 # 如果子弹移出屏幕上方则销毁子弹对象 # 改变我方飞机图片,以产生动画效果 # 每10帧发射1次子弹 # 根据我方飞机的移动值移动飞机   在程序的开始部分,定义了一个“我方飞机”类和“孓弹”类其中“我方飞机”类中定义了一个名为bullets的属性,它是一个精灵组存储了所有子弹。

  在游戏循环中主要做了这三件事情:

  1. 更新游戏数据(例如定时产生子弹、子弹定时移动、我方飞机的图片切换以产生动画效果等)

  2. 绘制游戏界面(第1步的更新游戏数據只是修改变量的值这一步是根据变量的值绘制界面)

  3. 用户事件处理

  具体代码请根据注释自行研读。

原标题:10分钟学会用python怎么读写游戲!python怎么读其实很简单!

我们在主项目文件夹(alien_invasion)中新建一个文件夹叫images将如下bmp图片放入其中。

我要回帖

更多关于 python怎么读 的文章

 

随机推荐