前提:你的电脑需要有pygame这个程序

提示:在程序运行时候看看所用到的模块是否下载

本部分只是飞机制作阶段

一.主程序

main.py

import sys
import pygame
#模块类的导入
from Settings import Settings
from bullet import Bullet
from ship import Ship
class AlienInvasion:'''管理游戏资源和行为的类'''def __init__(self):'''初始化游戏并创建游戏资源'''pygame.init()self.settings = Settings()self.screen = pygame.display.set_mode((self.settings.screen_width, self.settings.screen_height))'''全屏模式self.screen = pygame.display.set_mode((0, 0),pygame.FULLSCREEN )self.settings.screen_width = self.screen.get_rect().widthself.settings.screen_height = self.screen.get_rect().height'''#游戏名字的命名pygame.display.set_caption("小游戏")# 设置颜色self.bg_color = (230, 230, 230)self.ship = Ship(self)self.bullets = pygame.sprite.Group()def run_game(self):"""开始游戏的主循环"""while True:self._check_events()self._update_screen()self.ship.update()self.bullets.update()#消除子弹for bullet in self.bullets.copy():if bullet.rect.bottom <= 0:self.bullets.remove(bullet)print(len(self.bullets))def _update_screen(self):'''更新屏幕上的图像,并切换到新屏幕'''# 每次循环时都重绘屏幕self.screen.fill(self.settings.bg_color)self.ship.blitme()for bullet in self.bullets.sprites():bullet.draw_bullet()#让最近绘制的屏幕可见pygame.display.flip()def _check_events(self):'''响应按键和鼠标事件'''#监视键盘和鼠标事件for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()#移动飞船elif event.type == pygame.KEYDOWN:self._check_keydown_events(event)elif event.type == pygame.KEYUP:self._check_keyup_events(event)def _check_keydown_events(self, event):'''响应按键'''if event.key == pygame.K_RIGHT:self.ship.moving_right = Trueelif event.key == pygame.K_LEFT:self.ship.moving_left = Trueelif event.key == pygame.K_q:sys.exit()elif event.key == pygame.K_SPACE:self._fire_bullet()def _check_keyup_events(self, event):'''松开响应'''if event.key == pygame.K_RIGHT:self.ship.moving_right = Falseelif event.key ==pygame.K_LEFT:self.ship.moving_left = Falsedef _fire_bullet(self):'''创建一颗子弹,并将其加入编组bullets中'''new_bullet = Bullet(self)self.bullets.add(new_bullet)
if __name__ == '__main__':#创建游戏实例并运行游戏ai = AlienInvasion()ai.run_game()

二.用到的模块

1.ship.py

此处注第十行代码出设置你照片的路径,此处需要你修改才可运行

import pygame
class Ship:'''管理飞船的类'''def __init__(self,ai_game):'''初始化飞船并设置其初始位置'''self.screen = ai_game.screenself.screen_rect = ai_game.screen.get_rect()self.setting =ai_game.settings#加载飞船图像并获取其外接矩形self.image = pygame.image.load('images/ship.bmp') #此处设置你的照片的路径self.rect = self.image.get_rect()#对于每艘新飞船,都将其放在屏幕底部的中央self.rect.midbottom = self.screen_rect.midbottom#在飞船的属性x中存储小数值self.x = float(self.rect.x)#移动标志self.moving_right = Falseself.moving_left = Falsedef update(self):'''根据移动标志调整飞船的位置'''if self.moving_right and self.rect.right < self.screen_rect.right:self.x += self.setting.ship_speedif self.moving_left and self.rect.left > 0:self.x -= self.setting.ship_speed#根据self.x更新rect对象self.rect.x = self.xdef blitme(self):'''在指定位置绘制飞船'''self.screen.blit(self.image, self.rect)

2.Settings.py

class Settings:'''存储游戏《外星人入侵》中所有设置的类'''def __init__(self):"""初始化游戏的设置"""#屏幕设置self.screen_width = 1100self.screen_height = 700self.bg_color = (230,230,230)self.ship_speed = 1.5self.bullet_speed = 1.0self.bullet_width = 3self.bullet_height = 15self.bullet_color = (60, 60, 60)

3.bullet.py

import pygame
from pygame.sprite import Spriteclass Bullet(Sprite):'''管理飞船所发射子弹的类'''def __init__(self,ai_game):'''在飞船当前位置创建一个子弹对象'''super().__init__()self.screen = ai_game.screenself.settings = ai_game.settingsself.color = self.settings.bullet_color#在(0,0)处创建一个表示子弹的矩形,再设置正确的位置self.rect = pygame.Rect(0, 0, self.settings.bullet_width,self.settings.bullet_height)self.rect.midtop = ai_game.ship.rect.midtop#存储小数表示的子弹位置self.y = float(self.rect.y)def update(self):'''向上移动子弹'''#更新表示子弹位置的小数值self.y -= self.settings.bullet_speed#更新表示子弹的rect的位置self.rect.y = self.ydef draw_bullet(self):"""在屏幕上绘制子弹"""pygame.draw.rect(self.screen,self.color,self.rect)

有问题欢迎评论,指教。

python外星人游戏制作相关推荐

  1. ubuntu下使用python将ppt转成图片_Ubuntu下使用Python实现游戏制作中的切分图片功能...

    本文实例讲述了Ubuntu下使用Python实现游戏制作中的切分图片功能.分享给大家供大家参考,具体如下: why 拿到一个人物行走的素材,要用TexturePacker打包.TexturePacke ...

  2. 寓教于乐——PyGame游戏编程,Python小游戏制作实战教学

    Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发.而是用Python进行游戏开发的首选模块就是PyGame. 1. 初识Pygame PyGame是跨平台Python模块,专 ...

  3. python 外星人游戏下载大全_【Python】Python制作外星人入侵小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理介绍 ...

  4. python小游戏制作软件_Python制作打地鼠小游戏

    原文链接Python制作小游戏(二十一)​mp.weixin.qq.com 效果展示打地鼠小游戏https://www.zhihu.com/video/1200492442610450432 简介 打 ...

  5. python小游戏制作实验总结_20183202 实验四《python程序设计》实验报告

    课程:<Python程序设计> 班级: 1842 姓名: 李思远 学号:20183202 实验教师:王志强 实验日期:2020年6月5日 必修/选修: 公选课 一.实验运行结果 1.实验源 ...

  6. python联机游戏制作_Python练习01-对战小游戏

    Python练习01-对战小游戏 近期在学习Python,其中有一道练习题,写一个对战小游戏,随机人物,随机属性(血量.攻击).指定我方人物出场顺序,三局两胜,代码如下: import time, r ...

  7. python 外星人游戏怎么打开_Python外星人入侵游戏开发—创建游戏窗口

    第1.2行代码:导入了模块sys 和pygame .模块pygame 包含开发游戏所需的功能.玩家退出时,我们将使用模块sys 来退出游戏. 第3行至19行,是函数run_game()的实现. 第5行 ...

  8. python编的俄罗斯方块游戏_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  9. python图形小游戏代码_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

最新文章

  1. Java多线程详解(二)
  2. Windows 10 下的OpenVINO Pycharm+Anaconda开发环境配置
  3. OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
  4. VB 禁止修改系统时间
  5. Echarts实例中json数据查找
  6. 统计学经典书籍分享【PDF下载】
  7. JDK+Tomcat搭建JSP运行环境--JSP基础
  8. 利用js对table动态增加和删除行(附带table样式,鼠标滑过和点击样式)
  9. 怎样实现banner自动播放html,纯CSS3实现banner图片自动轮播效果方式总结
  10. Vagrant 手册之 Provisioning - 基本用法
  11. Zint生成二维码环境搭建
  12. 教师资格证面试试讲需要注意什么?
  13. 采用计算机教学的优点,小学计算机教学的特点与重点
  14. 各主流编程语言适用领域——软件工程
  15. Java笔试面试-JVM
  16. 用MDT 2012为企业部署windows 7(十)--制作windows 7标准模板机
  17. Web前端面试指导 四十 CSS3有哪些新特性
  18. 在vue中禁止input框和textarea编辑的操作
  19. ArcEngine 鹰眼功能C#实现
  20. Flink DataSet API

热门文章

  1. 1168:账单(指针专题)
  2. esp8266接入米家、小爱同学,附开源app控制
  3. 刺探内心深处远古的记忆OnDragListener
  4. 李开复写给中国大学生的七封信【1/7】
  5. 从输入 URL 到页面加载完成的过程中都发生了什么事情?
  6. 江苏省事业单位计算机入面分数线,江苏事业单位进面分数线一览!进面名单有你吗...
  7. 不一样的Python(10)——objects
  8. android 连接商米POSV1内置打印机
  9. 基于数据驱动的交叉口精细化管理——以北京门头沟双峪路口为例
  10. 服务器如何搭建FTP