外星人入侵python游戏 python外星人入侵游戏代码_思维导图


游戏编程思维导图

  • 游戏思路


外星人入侵python游戏 python外星人入侵游戏代码_外星人入侵python游戏_02


  • 函数编写


外星人入侵python游戏 python外星人入侵游戏代码_外星人颜色python练习_03

第一次做思维导图,做的有点乱

解释:跟着《python编程从入门到实践》写完游戏程序后,写一下自己的心得体会。可以把这个游戏分为几块来理解。如果想要设计一款小游戏,第一是对游戏的屏幕进行设置,包括游戏屏幕的大小,背景颜色,背景音乐等(这本书里没有加音乐,以后可以再加)。

设置好游戏屏幕后,第二是对游戏中的元素依次进行设置。首先是飞船,通过载入图片把飞船画在屏幕正下方并使其通过键盘上的左右键进行移动。

第三是子弹:设置一个大小相当的方块,让他初始位置位于初始飞船的顶部,并通过减少Y轴距离向屏幕上方移动,当按下空格键触发子弹移动。(游戏屏幕的左上角位置是(0, 0))同时设置屏幕上同时出现子弹的最大数量,当子弹与外星人碰撞或飞出游戏屏幕外要把子弹删掉。

第四是外星人:游戏是要设置一群外星人不断往下移动,然后飞船射出子弹消灭外星人。所以,在设置外星人时,首先要计算游戏上方区域能容纳多少外星人。通过先画一个外星人,然后再画一圈外星人来实现。画完外星人后,使其初始按右移动,当碰到游戏右界面是向下移动,再向左移动。这时,游戏屏幕上可以显示飞船左右自由移动,按下空格子弹飞出,一群外星人向下移动。

第五是设置游戏开始键:把游戏初始化设置成暂停,当按下开始键后开始玩游戏。

第六是实现碰撞检测:外星人撞到飞船,子弹击中外新人入和外星人碰到游戏界面底部

第七是得分系统:设置消灭外星人的分数,并设置得分显示在屏幕上

第八是提升游戏难度:设置玩家每局有几条命,提高子弹,外星人的移动速度,并把得分,最高分和等级显示在屏幕上

对应函数模块

  • 主函数
# 《外星人入侵》主程序


  • 初始设置
# 创建设置类


  • 飞船
# 创建ship类,管理飞船的大部分行为


  • 子弹
# 创建子弹
import pygame
from pygame.sprite import Sprite

class Bullet(Sprite):
    '''一个对飞船发射的子弹进行管理的类'''

    def __init__(self, ai_settings, screen, ship):
        '''在飞船所处的位置创建一个子弹对象'''
        super(Bullet, self).__init__()
        self.screen = screen

        # 在(0, 0)处创建一个表示子弹的矩形,再设置正确的位置
        self.rect = pygame.Rect(0, 0, ai_settings.bullet_width,
            ai_settings.bullet_height)
        self.rect.centerx = ship.rect.centerx
        self.rect.top = ship.rect.top

        # 存储用小数表示的子弹位置
        self.y = float(self.rect.y)

        self.color = ai_settings.bullet_color
        self.speed_factor = ai_settings.bullet_speed_factor

    def update(self):
        '''向上移动子弹'''
        # 更新表示子弹位置的小数值
        self.y -= self.speed_factor
        # 更新表示子弹的rect的位置
        self.rect.y = self.y

    def draw_bullet(self):
        """画子弹"""
        pygame.draw.rect(self.screen, self.color, self.rect)


  • 外星人
# 创建外星人


  • 按钮
# 创建游戏按钮


  • 得分系统
# 创建游戏的统计信息


  • 得分面板
# 在屏幕上显示得分信息


  • 重构函数
# 重构模块:将一些函数代码分离主函数,主函数简易可观察,分函数修改更方便


用到的图片

  • 飞船


外星人入侵python游戏 python外星人入侵游戏代码_思维导图_04


  • 外星人


外星人入侵python游戏 python外星人入侵游戏代码_外星人入侵python游戏_05


总结

经过上面代码的锻炼,让我对于写游戏代码有了一点小小的感悟。明白了在设置游戏时需要先把界面里的元素进行分割,每个部分去完成实现。就像上面这个项目,在编写函数依次去实现不同功能:


外星人入侵python游戏 python外星人入侵游戏代码_外星人颜色python练习_06


写代码还是需要多练,有时候一个字符错误可能都要花很长时间去找,复制一遍代码和自己手动输入一遍代码真的是很不一样

强烈推荐typora编辑器,好用方便,很简洁

下面是游戏视频效果,不过鼠标声音有点响


外星人入侵python游戏 python外星人入侵游戏代码_外星人入侵python游戏_07