PYTHON游戏编程外星人入侵的完整实现思路,具体内容如下

准备工作:下载python,比如Anaconda3(64 bit),导入pygame游戏包

1.外星人设置,alien.py,代码:

import pygame

from pygame.sprite import Sprite

class Alien(Sprite):

"""表示单个外星人的类"""

def __init__(self,ai_settings,screen):

"""初始化外星人并设置其他位置"""

super(Alien,self).__init__()

self.screen = screen

self.ai_settings = ai_settings

#加载外星人图像,并设置其rect属性

self.image = pygame.image.load('images/alien.bmp')

self.rect = self.image.get_rect()

#每个外星人最初都在屏幕左上角附近

self.rect.x = self.rect.width

self.rect.y = self.rect.height

#存储外星人的准确位置

self.x = float(self.rect.x)

def blitme(self):

"""在指定位置绘制外星人"""

self.screen.blit(self.image,self.rect)

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.alien_speed_factor * self.ai_settings.fleet_direction)

self.rect.x = self.x

2.游戏主程序,alien_invasion.py,代码:

import pygame

from settings import Settings

from game_stats import GameStats

from button import Button

from ship import Ship

from pygame.sprite import Group

import game_functions as gf

from scoreboard import Scoreboard

def run_game():

pygame.init() # 初始化背景设置

ai_settings = Settings() # 全局设置

screen = pygame.display.set_mode( # 创建screen显示窗口

(ai_settings.screen_width,ai_settings.screen_height)

)

pygame.display.set_caption('Alien Invasion') # 标题

#新建Play按钮

play_button = Button(ai_settings,screen,"Play")

#创建一个用于存储游戏统计信息的实例,并创建记分牌

stats = GameStats(ai_settings)

sb = Scoreboard(ai_settings, screen, stats)

# 创建飞船

ship = Ship(ai_settings,screen)

# 创建子弹编组

bullets = Group()

#创建一个外星人

aliens = Group()

#创建外星人群

gf.create_fleet(ai_settings,screen,ship,aliens)

# 开始游戏主循环

while True:

# 监视键盘和鼠标事件

gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets)

if stats.game_active:

# 移动飞船

gf.update_ship(ship)

# 更新子弹位置

gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)

#更新外星人

gf.update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets)

# 更新屏幕

gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)

run_game()

python外星人入侵游戏代码大全-Python外星人入侵游戏编程完整版相关推荐

  1. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  2. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  3. python小游戏代码大全-Python实现打砖块小游戏代码实例

    这次用Python实现的是一个接球打砖块的小游戏,需要导入pygame模块,有以下两条经验总结: 1.多父类的继承2.碰撞检测的数学模型 知识点稍后再说,我们先看看游戏的效果和实现: 一.游戏效果 二 ...

  4. python小游戏代码大全-python贪吃蛇游戏代码

    本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...

  5. python小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏

    1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...

  6. python小游戏代码大全-Python编写的点灯小游戏代码

    Python语言编写的点灯小游戏代码及思路如下: 点灯游戏及其求解的方法, 点灯游戏的游戏规则: (1)有个N行N列的灯板,当你开关其中一盏灯: (2)它和上下左右的灯的状态全部反转,目标是将全部的灯 ...

  7. python小游戏代码大全-Python小游戏之300行代码实现俄罗斯方块

    前言 本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很 ...

  8. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  9. python做购物车代码大全-python 字典实现简单购物车

    # -*- coding: utf-8 -*- #总金额 asset_all=0 i1=input('请输入总资产:') asset_all=int(i1) #商品列表 goods=[ {'name' ...

  10. python外星人入侵游戏代码大全-Python外星人入侵游戏开发—重构键盘鼠标响应代码...

    用法分析 在大型项目中,经常需要在添加新代码前重构既有代码.重构旨在简化既有代码的结构,使其更容易扩展.在本节中,我们将创建一个名为game_functions 的新模块,它将存储大量让游戏<外 ...

最新文章

  1. IntellIJ IDEA 启动 参数 配置
  2. 我的四轴专用PID参数整定方法及原理
  3. plsql(轻量版)_触发器
  4. manifest.mf._MANIFEST.MF和feature.xml版本控制规则
  5. SubSonic中的字段付值--MakeOld Update
  6. python3之批量修改文件名称
  7. 性能测试概念点分析与过程讲解(三)
  8. 拉格朗日对偶(Lagrange duality)
  9. 敏感词在线检测工具-免费敏感词在线检测工具
  10. 联发科(MTK)MT6762 安卓核心板 安卓主板
  11. VMWare Fusion 安装 Centos7操作系统
  12. 墓碑上的字符C语言,墓碑上常见的“故显考、故显妣、先考、先妣”,分别是什么意思?...
  13. 【ARM开发】交叉编译Qt源码之(1)编译xcb
  14. 错误:.TemplateProcessingException: Exception evaluating SpringEL expression:
  15. 【android】Android Studio创建模拟手机虚拟机
  16. 深入浅出!二叉树详解,包含C语言代码
  17. 大数据算法MOOC笔记1:大数据定义、特点、应用
  18. 【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part5-完结):信息检索与结果组装
  19. 2021爱分析・数据智能平台实践报告—重构数据智能时代的数据基础设施
  20. 还在跑遍武汉追樱花,这份武汉赏樱地图送给你

热门文章

  1. 海康 linux java demo_Linux下调用海康SDK(java版)
  2. 《初级会计电算化实用教程(金蝶KIS专业版)》一1.2 会计电算化发展概况
  3. 计算机行业能否申请综合工时制,综合工时制适用条件及行业?
  4. playbacktask
  5. 最详细tron节点搭建同步教程
  6. 基于stc15f2k60s2芯片单片机编程(闹铃)
  7. linux中perl的环境变量,在Perl脚本中使用Bash环境变量?
  8. Eclipse ADT中的logcat不显示解决方法
  9. 华为ensp,DHCP中继配置
  10. 带你一起实现 JSON.Stringify 方法