zoukankan      html  css  js  c++  java
  • pycharm+pygame飞机大战

    第一章python语言基础 略

    第二章 实战篇

    2.1 搭建开发环境 略

    2.2 hello world程序的实现步骤

     1、创建并显示一个固定尺寸的窗口
     2、处理用户关闭窗口从而退出程序的事件(会有一系列事件以及事件队列)

     3、设置窗口的标题和背景色
     4、在窗口的底部居中位置绘制一架飞机

          首先需要加载作为飞机的图片,然后将飞机图片绘制在窗口的指定位置,可以调用窗口对象window的方法blit()来完成,该方法用于在窗口的指定位置绘制指定的元素。可以将窗口对象理解为一张画布,通过调用方法blit()可以在画布上的指定位置绘制指定的元素。调用方法blit()时要传入两个实参:第1个实参传入要绘制的元素,在这里是加载飞机图片后得到的对象my_plane,第2个实参传入要绘制的元素在窗口中的位置,可以将飞机图片在窗口中的坐标传过去。

    window.blit(my_plane, (199,474))
     5、让飞机向上匀速移动

    要实现流畅的动画,必须让相邻画面的呈现时间间隔足够短,从而欺骗我们的眼睛,让眼睛认为画面是连续的,所以,相邻画面的呈现时间间隔必须要小于1/24秒,也就是每秒至少要呈现24个画面。通常,每个画面被称为一帧,每秒钟呈现的帧数(画面数)被称为帧率,用FPS(Frame Per Second)来表示,单位是Hz(赫兹)。
    所以,要实现流畅的动画,FPS至少应为24Hz,也就是每秒至少24帧。在我们开发游戏的时候,每秒30帧的帧率就可以给玩家提供流畅的体验了。如果帧率较低,就会使得游戏看上去抖动或卡顿。帧率也没有必要太高,很多显示器的帧率是60Hz。对于75Hz以上的帧率,绝大部分地球人的肉眼已经无法分辨了。

    第三章:重构上面的内容

    上述步骤,是典型的面向过程编程,当项目逐渐变大的时候,不易复用和维护,所以我们要将其改为面向对象编程。

    面向对象编程的三大特性是:继承、封装、和多态。

    按照面向对象的编程思想,构建了飞机、飞机大战场两个类。

    3-3 认识pygame当中的矩形元素

    3-4 重构之提取函数

    4-1 让窗口尺寸适配屏幕分辨率

    获得当前屏幕的大小,接着让窗口占屏幕的长宽的固定百分比。

    5-1 通过按下上下左右四个键(也支持W、A、D、S)来实现飞机的上下左右移动。

    5-3 限制飞机的飞行范围。(每次让飞机的位置减少20,是自定义的值,为了让飞机看起来有动的效果,这里的20其实代表飞机移动的像素值)

    5-5 提取魔法数字

    魔法数字就是形如上图中20,这样的数字,有特定的含义,但是从字面数值,无法表达出其含义。在程序中多处用到,替换时,修改起来比较麻烦。

    这里有几种提取方式:

    1).替换为变量(小写),变量的初始值在函数开头初始化;

    2).替换为常量(大写),常量的值在类的开头进行输出化;

    3).替换为字段,也就是类的属性值,在类的初始化函数init中赋值;

    4).替换为参数,在该方法的参数里初始化。

     6-1让我方飞机在每次按下空格键后,发射一枚子弹。

    7-2删除窗口中不可见的bullet

    self.bullet_list.remove(bullet) #销毁列表中的某个元素

    7-3 事件队列中自定义某种事件

    9-1 游戏设计中的重要碰击事件,也就是精灵(Sprite)和分组(Group)

    Sprite,中文意思是精灵,它位于pygame.sprite这个模块中。游戏画面中的所有元素,例如:我方飞机、子弹、敌机等,都可以被看作是精灵。
    要想让游戏画面中的元素变为精灵,只需要让元素对应的类对象继承Sprite就可以了。


     
  • 相关阅读:
    Django项目:CRM(客户关系管理系统)--20--12PerfectCRM实现King_admin分页上下页
    Django项目:CRM(客户关系管理系统)--19--11PerfectCRM实现King_admin分页显示条数
    Django项目:CRM(客户关系管理系统)--18--10PerfectCRM实现King_admin日期优化
    Django项目:CRM(客户关系管理系统)--17--09PerfectCRM实现King_admin显示注册表的内容
    Oracle数据库,非空约束、主键约束、外键约束、唯一约束

    Oracle数据库,用户的创建及表的创建
    点击时显示遮罩层,登录时灰色遮罩效果
    多个视频时,利用函数实现播放一个,其他自动暂停
    正则表达式、事件调用
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/12132549.html
Copyright © 2011-2022 走看看