@Python编程从入门到实践 Python项目练习

七、创建Passenger类

创建passenger.py文件,创建Passenger类,控制乘客属性和行为

# passenger.py
import pygame
from pygame.sprite import Sprite class Passenger(Sprite):
"""表示单个乘客的类"""
def __init__(self, ai_settings, screen):
"""初始乘客并设置其起始位置"""
super(Passenger, self).__init__()
self.screen = screen
self.ai_settings = ai_settings # 加载乘客图像,并设置其rect属性
self.images = [pygame.image.load('images/passenger{}.png'.format(i))
for i in range(1, 9)]
# self.rect = self.images[1].get_rect() # self.image = pygame.image.load('images/passenger1.bmp')
self.image = pygame.transform.scale(self.images[0], (50, 50))
self.image_squence = 0
self.rect = self.image.get_rect() # 每个乘客最初都在屏幕左上角附近
self.rect.x = self.rect.centerx - 20
self.rect.y = self.rect.centery - 20 # 存储乘客的准确位置
self.x = float(self.rect.x) def blitme(self):
"""在指定位置绘制乘客"""
self.image = pygame.transform.scale(self.images[self.image_squence], (50, 50))
self.image_squence += 1
if self.image_squence > 7:
self.image_squence = 0 self.screen.blit(self.image, self.rect)
# self.image = self.images[1] def check_edges(self):
"""如果外星人位于屏幕边缘,就放回True"""
screen_rect = self.screen.get_rect()
if self.rect.right >= screen_rect.right:
return True
elif self.rect.left <= 0:
return True def update(self):
"""向右或向左移动外星人"""
self.x += (self.ai_settings.passenger_speed_factor *
self.ai_settings.fleet_direction)
self.rect.x = self.x

八、创建game_stats类

创建game_stats.py,game_stats类用于跟踪游戏统计信息,记录飞机和乘客发生的碰撞

class GameStats():
"""跟踪游戏的统计信息"""
def __init__(self, ai_settings):
"""初始化统计信息"""
self.ai_settings = ai_settings
self.reset_stats()
self.game_active = True def reset_stats(self):
"""初始化在游戏运行期间可能变化的统计信息"""
self.ships_left = self.ai_settings.ship_limit

Pygame小游戏练习三的更多相关文章

  1. pygame小游戏之坦克大战

    以前在学校的时候无聊的学了会pygame.看了大概一周的教学视频,做出来个坦克大战的小游戏 Python3.5  pycharm import pygame,sys,time from random ...

  2. web版扫雷小游戏(三)

    ~~~接上篇,上篇介绍了游戏实现过程中第一个比较繁琐的地方,现在展现在玩家面前的是一个有血有肉的棋盘,从某种意义上说玩家已经可以开始游戏了,但是不够人性化,玩家只能一个一个节点的点开,然后判断,然后标 ...

  3. Pygame小游戏练习二

    @Python编程从入门到实践 Python项目练习 四.创建Ship类 建立ship.py,创建Ship类,管理飞船行为. # ship.py import pygame class Ship(): ...

  4. Pygame小游戏练习一

    @Python编程从入门到实践 Python项目练习 一.安装Python包Pygame 通过pip安装包工具安装 python3 -m pip --version #查看是否安装pip 确定安装pi ...

  5. Pygame小游戏练习五

    @Python编程从入门到实践 Python项目练习 十一.显示游戏得分及最高分 创建新类Scoreboard,用以显示得分和最高分. # scoreboard.py import pygame.fo ...

  6. Pygame小游戏练习四

    @Python编程从入门到实践 Python项目练习 九.添加Play按钮 一.创建Button类 先让游戏一开始为非活动状态 # game_stats.py # --snip-- self.game ...

  7. 软件设计之基于Java的连连看小游戏(三)——所有功能的实现

    新年快乐!期末接二连三的考试实在太忙了忘记连连看没有更新完,今天想要学习生信时才发现.所以这次直接把连连看所有功能全部放上. 在传统的连连看的基础上,我增加了上传头像的功能,即可以自行上传图片作为游戏 ...

  8. .NET手撸2048小游戏

    .NET手撸2048小游戏 2048是一款益智小游戏,得益于其规则简单,又和2的倍数有关,因此广为人知,特别是广受程序员的喜爱. 本文将再次使用我自制的"准游戏引擎"FlysEng ...

  9. <pygame> 打飞机(小游戏)

    0.游戏的基本实现 ''' 游戏的基本实现 游戏的初始化:设置游戏窗口,绘制图像的初始位置,设定游戏时钟 游戏循环:设置刷新频率,检测用户交互,更新所有图像位置,更新屏幕显示 ''' 1.安装pyga ...

随机推荐

  1. MySQL数据分析(7)-SQL的两大学习框架

    大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>课程,前面的课程基本上我把MySQL的原理都做了一定的介绍,有好多朋友说学习MySQL是没有逻辑的,其实jacky是非 ...

  2. shell 显示详细信息

    MacdeMacBook-Pro:test macname$ ls -al | more total drwxr-xr-x macname staff : . drwxr-xr-x+ macname ...

  3. 二十七、Linux内核管理

    内核组成: uname命令 内核:uname,mkinitrd,dracut 模块: lsmod,modinfo,depmod,modprobe,insmod,rmmod /proc,sysctl,/ ...

  4. 六、grep与正则表达式 (文本过滤)

    一.正则表达式 正则表达式:Regual Expression, REGEXP.由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能:基本正则表达式:BRE ...

  5. html 刷新更新背景图

    需求:每次刷新页面,随机获取背景图 实现方式: 1 通过js动态生成标签 <body> <script type="text/javascript"> va ...

  6. error:Cannot pull with rebase

    原文文链接:https://blog.csdn.net/u012385190/article/details/70670213git 执行git pull –rebase报错误如下: error: C ...

  7. Unix/Linux下如何查看DNS服务器地址

    使用命令: cat /etc/resolv.conf 或者 less /etc/resolv.conf 即可. 详细请见:http://www.cyberciti.biz/faq/how-to-fin ...

  8. java.util.concurrent.DelayQueue 源码学习

    jdk1.8 DelayQueue,带有延迟元素的线程安全队列,当非阻塞从队列中获取元素时,返回最早达到延迟时间的元素,或空(没有元素达到延迟时间).DelayQueue的泛型参数需要实现Delaye ...

  9. C++ STL Heap算法

    #include <iostream>#include <algorithm>#include <vector> using namespace std; int ...

  10. 一百二十九:CMS系统之七牛云存储介绍和配置

    将图片的存储.尺寸等图片本身的一些擦做,交给七牛云处理,自己只关注网站开发本身 七牛云官网:https://www.qiniu.com 操作 登录后,点击管理控制台 点击对象存储-->新建存储空 ...