Python学习笔记50:游戏篇之外星人入侵(十一)

python外星人入侵游戏 本文内容是使用pygame包来开发一款python2D游戏,类似于我们小时候玩的飞机大战,飞船发射子弹biubiubiu~~然后外星人就消灭了,并且每消灭一群外星人后,玩家都将提高一个等级,随着等级提高游戏节奏也会加快。下面是本文的结构:规划项目安装pygame飞船与外星人的创建外星人与飞船的战争添加记分牌详细代码可见我的github,以下内容只是大致介绍,篇幅有限只放了部分,细节之处可以阅读书籍... 阅读详情

前言

本篇文章接着之前的内容,继续对游戏功能进行优化,主要是优化游戏状态以及对应的处理。

状态

一个游戏包含多种状态,这个状态是一个可以很复杂也可以很简单的内容。条件所限,我们这个游戏的状态就比较简单:

  • 未开始
  • 游戏中
  • 暂停
  • 结束

我们通过一个字段进行控制,并且将这个字段放置到setting模块中。

class Setting:
    """系统设置类"""
    def __init__(self):
       -- snip --
        # 游戏状态:0未开始,1游戏中,2暂停,3结束
        self.game_status = 0

处理状态

根据不同的状态值,我们先对main模块进行简单的处理。

import pygame
from pygame.sprite import Group

import alien_invasion.game_functions as gf
from alien_invasion.setting import Setting
from alien_invasion.ship import Ship


def run_game():
    """启动游戏"""

    # 初始化pygame
    pygame.init()
    # 定义一个系统设置对象
    setting = Setting()
    # 新建窗口
    screen = pygame.display.set_mode((setting.screen_width, setting.screen_height))
    # 窗口命名
    pygame.display.set_caption(setting.caption)
    # 定义一个飞船对象
    ship = Ship(setting, screen)
    # 创建子弹编组
    bullets = Group()
    # 创建外星人编组
    aliens = Group()
    # 创建编组内的外星人
    gf.create_fleet(setting, screen, aliens)

    while True:
        if setting.game_status == 0:
            pass
        elif setting.game_status == 1:
            # 处理监听事件
            gf.check_event(ship, setting, screen, bullets)
            # 移动飞船
            ship.move()
            # 更新子弹位置
            gf.update_bullets(bullets, aliens, setting, screen)
            # 更新外星人
            gf.update_aliens(aliens, setting, ship)
            # 刷新屏幕
            gf.update_screen(setting, screen, ship, bullets, aliens)
        elif setting.game_status == 2:
            pass
        elif setting.game_status == 3:
            pass


if __name__ == '__main__':
    run_game()

状态对应的业务

现在,我们要对状态思考响应的游戏业务。

这里直接描述一下我个人简单预定的功能:

  1. 启动游戏,弹出窗口,显示欢迎来到游戏,按回车键开始游戏。其他所有按键不生效。
  2. 在游戏中,按下回车暂停游戏;暂停游戏时按下回车继续游戏
  3. 开始游戏后,任意时刻按下Esc键退出游戏,回到黑色窗口,显示游戏介绍,暂停一秒关闭游戏。

代码实现

我们在第二步已经简单的对状态值进行了处理,接下来就根据上面的业务在对应的状态处理部分一一填充。

首先我们处理开始游戏的状态。

开始游戏

首先我们需要在setting.game_status == 0的条件下新建一个not_start()函数,传入参数setting和screen。这两个参数一个是要回写状态值到配置模块中,一个是渲染游戏窗口需要的一些属性。

修改main模块中循环处理的部分如下:

-- snip --
   while True:
        # 没啥用,方便编写代码的时候看看代码执行情况
        print(setting.game_status)
        if setting.game_status == 0:
            # 处理没启动的业务逻辑
            gf.not_start(setting, screen)
        -- snip --

main模块处理好以后,我们在gf模块进行实际的业务代码编写。

在函数中,我们需要完成两个功能,一个是渲染文字,一个是监听按键事件,是否有开始游戏,那么代码编写如下:

def not_start(setting, screen):
    # 先渲染文字
    handle_text(screen)
    print("not_start")
    # 处理监听事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                if setting.game_status == 0:
                    setting.game_status = 1
                    print("开始游戏")

这里监听事件的部分没有单独拉函数出来,主要是不影响阅读,不过因为渲染文字的函数有点行数并且也算一个比较独立的功能,所以又单独创建了一个函数,后面的结束也是如此。

另外虽然我们这个时候只监听是否按下回车键的这个事件,但是点击退出窗口的监听事件,在任何地方都不能忘了,不然到时候可能你的窗口关不了,只能去通过停止程序关闭。

监听事件的代码比较简单的,就是在确认是按下了回车,状态是0的时候,回写状态值即可。

我们看看文字渲染的代码。

文字渲染我们在项目开始之前介绍pygame就提前讲过,相比大家都不陌生,看代码注释即可,代码如下:

def handle_text(screen):
    # 字体颜色
    pink = pygame.Color('#FFFFFF')

    # 使用Arial字体创建一个字体对象,32号,加粗,倾斜
    font = arial_bold = pygame.font.SysFont('Arial', 32, bold=True, italic=True)

    # 渲染文本
    text_surface1 = font.render("Welcome to the Game Of Alien Invasion", True, pink)

    # 获取文件的矩形区域
    text_rect1 = text_surface1.get_rect()

    # 设置文本Y坐标320,居中位置
    text_rect1.midtop = (screen.get_width() // 2, 320)

    # 渲染文本
    text_surface2 = font.render("Press The Enter Key To Start The Game", True, pink)

    # 获取文件的矩形区域
    text_rect2 = text_surface2.get_rect()

    # 设置文本Y坐标420,居中位置
    text_rect2.midtop = (screen.get_width() // 2, 420)

    # 绘制文本
    screen.blit(text_surface1, text_rect1)
    screen.blit(text_surface2, text_rect2)

    # 更新显示
    pygame.display.flip()

运行main模块,按下回车。

在这里插入图片描述
可以看到文字正常渲染,并且输出栏一直在出输出当前状态。

如果你觉得画面单调,可以自己加点东西渲染,pygame渲染图片这些相比也不陌生了。

按下回车,游戏正常开始!

在这里插入图片描述
可以看到,已经进入到游戏页面,并且输出栏的状态值也变成了1。

游戏中

游戏中的处理比较简单,因为我们之前已经完成了游戏中的代码编写,所以我们只需要在游戏中的监听事件中加上回车键的监听事件暂停游戏。

ps: 这里其实也可以结束游戏,代码我先写上,但是不操作。业务代码也不复杂,就是多加一个Esc键的监听事件。

gf模块中的check_keydown_events()函数代码修改如下:

def check_keydown_events(event, ship, setting, screen, bullets):
    """响应按键"""
    if event.key == pygame.K_RIGHT:
        ship.moving_right = True
    elif event.key == pygame.K_LEFT:
        ship.moving_left = True
    elif event.key == pygame.K_UP:
        ship.moving_top = True
    elif event.key == pygame.K_DOWN:
        ship.moving_bottom = True
    elif event.key == pygame.K_SPACE:
        fire(bullets, screen, setting, ship)
    elif event.key == pygame.K_q:
        sys.exit()
    elif event.key == pygame.K_RETURN:
        if setting.game_status == 1:
            setting.game_status = 2
            print("暂停游戏")
    elif event.key == pygame.K_ESCAPE:
        setting.game_status = 3
        print("游戏结束")

启动main模块,开始游戏后再按回车,效果如下:

在这里插入图片描述

可以看到,我们的飞船,子弹,外星人全部暂停住了,输出栏一直打印状态也变成了2(暂停)。

屏幕中显示了一些文字,这些其实是暂停的业务。

我们马上进行暂停的业务代码编写。

暂停游戏

参考开始游戏的实现,我们在暂停的分支下调用一个函数stop()。

main模块循环部分代码如下:

	-- snip --
    while True:
        # 没啥用,方便编写代码的时候看看代码执行情况
        print(setting.game_status)
        if setting.game_status == 0:
            # 处理没启动的业务逻辑
            gf.not_start(setting, screen)
        elif setting.game_status == 1:
            # 处理监听事件
            gf.check_event(ship, setting, screen, bullets)
            # 移动飞船
            ship.move()
            # 更新子弹位置
            gf.update_bullets(bullets, aliens, setting, screen)
            # 更新外星人
            gf.update_aliens(aliens, setting, ship)
            # 刷新屏幕
            gf.update_screen(setting, screen, ship, bullets, aliens)
        elif setting.game_status == 2:
            gf.stop(setting, screen)
        -- snip --

同样,我们去到gf模块创建stop()函数并实现相应的功能,代码如下:

-- snip --
def stop(setting, screen):
    handle_stop_text(screen)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                if setting.game_status == 2:
                    setting.game_status = 1
                    print("继续游戏")
            elif event.key == pygame.K_ESCAPE:
                setting.game_status == 3:
                print("结束游戏")
-- snip --

代码依旧分两部分实现,渲染文字和监听事件。在暂停的监听事件中我们和开始一样,监听关闭窗口,回车和结束,并在回车事件中回写状态值,让游戏继续运行,在Esc时间中结束游戏。

文字渲染部分代码如下:

def handle_stop_text(screen):
    # 字体颜色
    pink = pygame.Color('#000000')

    # 使用Arial字体创建一个字体对象,32号,加粗,倾斜
    font = arial_bold = pygame.font.SysFont('Arial', 32, bold=True, italic=True)

    # 渲染文本
    text_surface1 = font.render("Game Stop", True, pink)

    # 获取文件的矩形区域
    text_rect1 = text_surface1.get_rect()

    # 设置文本Y坐标50,居中位置
    text_rect1.midtop = (screen.get_width() // 2, 320)

    # 渲染文本
    text_surface2 = font.render("Press The Enter Key To restore The Game", True, pink)

    # 获取文件的矩形区域
    text_rect2 = text_surface2.get_rect()

    # 设置文本Y坐标50,居中位置
    text_rect2.midtop = (screen.get_width() // 2, 420)

    # 绘制文本
    screen.blit(text_surface1, text_rect1)
    screen.blit(text_surface2, text_rect2)

    # 更新显示
    pygame.display.flip()

基本上就是复制开始的文字渲染,改了下文字内容。

效果的话这里就不展示了,就是暂停开始,开始暂停这一套。

结束游戏

在游戏中和暂停的时候,我们都可以通过按键Esc实现游戏结束。

在main模块的改动依旧是调用一个结束函数,但是结束函数不需要回写状态值,所以我们只需要一个screen参数。

代码如下:

while True:
    # 没啥用,方便编写代码的时候看看代码执行情况
    print(setting.game_status)
    if setting.game_status == 0:
        # 处理没启动的业务逻辑
        gf.not_start(setting, screen)
    elif setting.game_status == 1:
        # 处理监听事件
        gf.check_event(ship, setting, screen, bullets)
        # 移动飞船
        ship.move()
        # 更新子弹位置
        gf.update_bullets(bullets, aliens, setting, screen)
        # 更新外星人
        gf.update_aliens(aliens, setting, ship)
        # 刷新屏幕
        gf.update_screen(setting, screen, ship, bullets, aliens)
    elif setting.game_status == 2:
        gf.stop(setting, screen)
    elif setting.game_status == 3:
        gf.end(screen)

gf模块改动如下:

def end(screen):
    # 重新填充屏幕
    screen.fill((0, 0, 0))
    # 渲染文字
    handle_end_text(screen)
    # 休眠一秒
    sleep(1)
    # 退出
    pygame.quit()
    sys.exit()

和之前比对有一点不同,多了几部,其实没有特别含义,就是看起来流畅好看一点。

文字渲染代码如下:

def handle_end_text(screen):
    # 字体颜色
    pink = pygame.Color('#FFFFFF')

    # 使用Arial字体创建一个字体对象,32号,加粗,倾斜
    font = arial_bold = pygame.font.SysFont('Arial', 48, bold=True, italic=True)

    # 渲染文本
    text_surface1 = font.render("Game Over", True, pink)

    # 获取文件的矩形区域
    text_rect1 = text_surface1.get_rect()

    # 设置文本Y坐标50,居中位置
    text_rect1.midtop = (screen.get_width() // 2, screen.get_height() // 2)

    # 绘制文本
    screen.blit(text_surface1, text_rect1)

    # 更新显示
    pygame.display.flip()

运行效果如下:

在这里插入图片描述

结尾

今天的内容就是这些,设定状态值,并且在对应的状态中处理不同的逻辑,渲染不同的画面。

当然我们是学习,所以内容都比较简单,有兴趣的话可以深入一下加点自己的元素进去。

后面我们继续优化游戏功能,加油!!!

python 外星人入侵游戏 学习总结 以及完整代码 从三月开始看《python:从入门到实践》自学python,踏入编程的世界,已经过去两个多月了,学完基础知识之后开始学习游戏项目《外星人入侵》。 外星人入侵:在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星 人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有 外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩 阅读详情

相关推荐

python外星人入侵(游戏开发)

大二下小学期《“python从入门到实践”》,看到外星人入侵小项目那部分兴致大增,遂决定自己也来写一个。 python外星人入侵(游戏开发) 外星人游戏添加飞船上下移动功能: 功能源代码: 以上代码是在game_functions.py里监听键盘的点击事件,并且通过check_events响应按键和鼠标事件。 在ship.py中编写飞船初始位置以及移动标志调整飞船的位置...

h471507602的博客 1万+

实验六 多态性

c++面向对象程序设计头歌答案

2201_75694648的博客 2517

《Python编程 从入门到实战》学习笔记2——外星人入侵项目

本次将开发一个名为《外星人入侵》的游戏,为此,将使用 Pygame 这个功能强大而且非常有趣的模块,它可以管理游戏制作中用到的图像、动画甚至声音,让你能更轻松地开发复杂的游戏。使用 Pygame 来处理在屏幕上绘制图像等任务,有助于你将重心放在设计游戏的高级逻辑上。(注意:该项目会包含很多的文件,因此需要新建一个名为 alien_invasion 的文件夹,并将该项目的所有文件都存储到该文件夹中)

AlianHN的博客 1837

pygame外星人入侵

一款非常适合新手练习的游戏项目 内附完整代码(仅供学习参考,最好还是自己多敲多练习)

hacker707的博客 3万+

外星人入侵游戏源码及讲解(一)

一、该源码的出处 以下所有的内容都来自于Python编程:从入门到实践(此书有电子版,若需要电子版,可在我的下载中查看到相关信息),该编码的源码也可以在我的下载中查看 二、为什么写? 因为书上的很多内容可能会忘记,所以直接在敲源码的途中将一些需要记住的点还有一些需要理解的点以注释的方式呈现了出来 三、项目讲解 (1)讲一下项目 这个项目是外星人入侵游戏三章中的其中一章,最后实现的结果是在屏幕上有一...

qq_39376481的博客 3526

手把手教你用三极管搭建麦克风音频放大电路(附完整电路图)

本文详细介绍了如何使用三极管搭建麦克风音频放大电路,包括电路设计基础、元件选择、完整电路图及分步焊接指南。通过实际操作和调试技巧,帮助电子爱好者和学生深入理解模拟电路原理,实现音质清晰的音频放大效果。

Black的专栏 985

Python实战——外星人入侵游戏

经历三天时间完成为python实战小游戏,外星人入侵,主要完成了书目当中的主要功能。同时添加了一些自己定义的功能:每次保留历史最高分,随着等级的不断提升改变飞船子弹的相关设置,加入音效模块在集中外星人的时候击中音效。同时,简单写了几个遇到的bug,希望可以对大家有帮助,下载资源链接附在最后。

Nicole1548的博客 9196

雷电模拟器+Python 3.11:手把手教你用Frida-dexdump给安卓APK脱壳(附GDA查壳)

本文详细介绍了如何使用雷电模拟器和Python 3.11配合Frida-dexdump工具进行安卓APK脱壳的全流程。从环境配置、工具安装到脱壳操作和问题排查,提供了包含30+关键截图的保姆级教程,适合零基础用户快速上手。重点讲解了Frida工具链的使用技巧和GDA查壳方法,帮助读者掌握移动应用安全分析的基础技能。

weixin_42568801的博客 328

Python项目 外星人入侵游戏

终于开始入门项目了,使用Pygame包,参照游戏过程学习 目标 在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。 环境 安装Pygame 在Windows系统中用pip安装Pyga

孜蓝的博客 2556

柔性OLED屏幕绿线故障的激光修复技术解析

OLED显示技术作为新一代显示方案,其主动矩阵驱动原理通过TFT背板控制每个像素的发光。在柔性屏幕应用中,微米级数据线路的物理损伤会导致显示异常,表现为贯穿屏幕的绿线故障。激光微焊技术凭借其微米级加工精度,成为修复这类精密电路损伤的理想方案。该技术通过纳秒级脉冲激光实现金属线路的精准重熔,在手机维修、显示面板制造等领域具有重要应用价值。特别是在折叠屏、曲面屏等柔性显示设备维修中,激光修复技术能有效解决因反复弯折导致的数据线断裂问题,配合光学定位系统和参数优化,修复成功率可达85%以上。

weixin_29168153的博客 324

YOLOv8 | 损失函数改进,最新提出的Shape-IoU,有效涨点

作为检测器定位分支的重要组成,边框回归损失在目标检测任务中发挥巨大作用。现有的边框回归方法,通常考虑了GT框与预测框之间的几何关系,通过使用边框间的相对位置与相对形状等计算损失,而忽略了边框其自身的形状与尺度等固有属性对边框回归的影响。为了弥补现有研究的不足,本文提出聚焦边框自身形状与尺度的边框回归方法。首先我们对边框回归特性进行分析,得出边框自身形状因素与尺度因素会对回归结果产生影响。

kay_545 1914

Python小游戏:外星人入侵!!!终于完成了!!!

历时七天,终于做出来了(因为还要上网课,学习其他的东西,所以做的比较慢,如果每天能拿出五个小时做这个游戏的话,个人觉得三天差不多,当然了,这是对于小白来说)。我是按照买的资料书上来做的,在我代码里面呢,增加了一些资料上没有的功能,比如说外星人是随机产生的(资料书是创建整个外星人群),本来打算让每个外星人随机移动的,但是试了一下发现,外星人移动杂乱无章,然后后就采用了资料书上的做法,让它们作为整体移动;还有就是在射中外星人的时候,可能会产生暴击(emmm,其实是福利吧,bone,不是说伤害有暴击,这个“暴击”

我的博客 3万+

QT开发串口程序与单片机通讯

如果有对象对这个信号感兴趣,想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。的内容,虽然实现的功能很简单,但是QT上位机开发的步骤基本就是这些步骤,通过这个基础实例把这些套路摸透我们就可以接着进行后续更多QT程序地开发学习了。QWidget类:所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。我们上面运行的上位机都是在Qt Creator中编译运行的,如果我们需要把编写好的可执行文件发送给别人使用的话还需要进行打包。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 948

外星人入侵游戏--python实战 (附完整代码)

目录一、前提准备二、效果展示三、代码alien_invasion.pysettings.pygame_functions.pyship.pybullet.pyalien.pygame_stats.pyscoreboard.pybutton.py四、图片领取位置 一、前提准备 在pycharm的project创建一个文件夹命名:alien_invasion 用来装这个项目的所有python文件 就大概是这样 安装pygame : https://blog.youkuaiyun.com/qq_43597899/ar

宝藏女孩的成长日记 1万+

2026年AI视频生成大模型全景指南:国内外主流工具深度对比与选型建议

AI视频生成技术在2025年至2026年间取得了突破性进展,从"能用"进化到"好用",商业化应用加速落地。中美双轨竞争格局基本成型,国内模型在技术追赶和本土化体验方面展现出强劲竞争力。对于用户而言,选择合适的AI视频生成工具需要综合考虑技术性能、使用门槛、成本预算和具体需求。零基础新手推荐海艺AI、通义万相等低门槛工具;进阶创作者可根据需求选择可灵AI、即梦AI、海艺AI等;专业开发者和企业用户可考虑智谱清影的开源能力或可灵AI的商业化服务。

nmdbbzcl的博客 2846

GeoServer下载与安装(详细图文教程)

GeoServer官方版可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。

大剑师兰特的GIS世界 3276

Python编程:从入门到实践 项目《外星人入侵》完整代码

学习《Python编程:从入门到实践》有段时间了,跟着书本把所有代码都敲了一遍,感悟很深,现在完成了《外星人入侵》项目,对于库、类、函数、方法都有一定的理解,现在将该项目完整代码分享出来,以供学习。 1.首先当然是主运行文件alien_invasion.py import pygame from pygame.sprite import Group from settings import Se...

Kenny C 9027

SAP 系统间 SSO 的真正价值,从 SM59 到可信 RFC 的安全设计

SAP S/4HANA系统间Single Sign-On(SSO)的核心价值在于集中管理通信身份与信任关系,而非仅减少密码输入。传统固定账号密码方式在系统规模扩大后会面临密码管理、审计追踪等挑战。通过SM59配置可信RFC目标系统,结合SSL证书或SAP Trusted System等强认证机制,能有效降低安全凭据暴露风险。SSO配置需配合授权对象、角色管理等建立清晰的信任边界,实现系统间安全通信的同时保持可审计性。这种方案特别适用于Fiori前端与S/4HANA后端等场景,通过可信RFC传递用户身份,避免

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1063

Python开发《外星人入侵》

跟书《Python编程:从入门到实践》学习一段时间了,书中第一个项目就是开发小游戏《外星人入侵》。下面是跟书一步步开发的代码,代码后面的注释仅仅是个人理解。 效果图: 项目文件 项目目录:alien_invasion 图片目录:alien_invasion/images 图片:alien_invasion/images/ship.bmp、alien_invasion/images/alien.b...

变成习惯 4624

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《外星人入侵》 教程详解

《外星人入侵》(Python编程第二版) python及pygame的安装 这边推荐大家使用python 3.9,版本不断升级优化,新版本的好处是不言而喻的。大家可以在电脑的应用商店或者Python官网去进行下载安装。(https://www.python.org/downloads/) 安装完成后还需要安装pygame模块,可以用python 3.9自带的 pip软件包管理系统进行下载。 打开pip所在目录文件,在上方地址栏中输入’cmd’,打开资源管理器。 输入’pip install pygame

KingForYou的博客 8830

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python项目1 外星人入侵_外星人

在本章中,我们将在游戏《外星人入侵》中添加外星人。首先,我们在屏幕上边缘附近添加一个外星人,然后生成一群外星人。我们让这群外星人向两边和下面移 动,并删除被子弹击中的外星人。最后,我们将显示玩家拥有的飞船数量,并在玩家的飞船用完后结束游戏。通过阅读本章,你将更深入地了解Pygame和大型项目的管理。你还将学习如何检测游戏对象之间的碰撞,如子弹和外星人之间的碰撞。检测碰撞有助于你定义游戏元 素之间的交互:可以将角色限定在迷宫墙壁之内或在两个角色之间传球。

pythontxt的博客 1975

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python项目——外星人入侵游戏

开发大型项目时,做好规划后再动手编写项目很重要。规划可确保你不偏离轨道,从而提高项目成功的可能性。 下面来编写有关游戏《外星人入侵》的描述,其中虽然没有涵盖这款游戏的所有细节,但能让你清楚地知道该如何动手开发它。 在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星 人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人.

君莫笑的博客 4234

Python 实践——外星人入侵小游戏(上)

欢迎你进入编写自己的游戏阶段!我把很长的一章切分成了几个部分。本章你在画布中导入了一个飞船的图片。你完成了如下几个部分:开始项目(初始化/循环/屏幕可见/更新屏幕);设置背景颜色;设置类(预设规定);添加飞船图像;导入程序。

Welcome to my homepage 3442

外星人入侵(python)

游戏的一些初始化数据的储存,子弹的速度,大小,屏幕的大小。游戏的一些初始化设置,界面的大小,标题。飞船的初始化信息和移动。外星人的初始信息和移动。

充满焦虑的大学生 1万+

Python学习笔记47:游戏篇之外星人入侵(八)

Python游戏项目:外星人入侵八,移动外星人

weixin_48668564的博客 1380

Python游戏开发--外星人入侵(源代码)

文章目录1.效果展示2. 《外星人入侵》源代码2.1 image2.2 alien_invasion.py2.3 alien.py2.4 bullet.py2.5 button.py2.6 game_stats.py2.7 scoreboarf.py2.8 settings.py2.9 ship.py 最近学习的python第一个项目实战,《外星人入侵》,成功实现所有功能,给大家提供源代码 环境安装:python 3.7+ pygame 安装 pygame pip install -- user pygam

weixin_48678602的博客 8488
上一篇: Python学习笔记49:游戏篇之外星人入侵(十)
下一篇: Python学习笔记51:暂停篇
明月望秋思
博客等级 码龄6年 1931粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值