Python Pygame实战之飞机大战的实现

目录
  • 导语
  • 一、环境安装
    • 1)各种素材(图片、字体等)
    • 2)运行环境
  • 二、代码展示
    • 1)文章思路
    • 2)附代码讲解
    • 3)主程序
  • 三、效果展示
  • 总结

导语

三月疫情原因,很多地方都封闭式管理了!

在回家无聊的打酱油,小编今天给大伙带来了一波小游戏——全民左右飞机大战!在这个快熬不下去的日子里,打打飞机消遣闲暇时间,也是蛮惬意的,这几天小编必须全身心投入到飞机大战中来!肝了几天这款小游戏终于面市啦!

这次的游戏操作很简单,就是左右移动飞机,躲避敌人飞机,打落敌机会随机掉落金币,我们

要打击的敌人!每个玩家有五条命,被敌机撞到即挂掉一条命,所以要珍惜生命哟!这款是升

级版本的飞机大战哦~还有更多不同的飞机类型等你来探索,看看你能闯过多少关吧!

小编才闯到第二个飞机,相信你肯定会超过我滴!来试试呀~

一、环境安装

1)各种素材(图片、字体等)

2)运行环境

小编使用的环境:Python3、Pycharm社区版、Pygame模块部分自带。

模块安装:pip install -i https://pypi.douban.com/simple/ pygame

二、代码展示

1)文章思路

Plane 打飞机小游戏 ——

游戏说明: * 目前只做了一个关卡,有三种敌机,自己飞机的子弹类型有四种 * 在游戏中空格键

是暂停,游戏结束后ESC键是重新开始 * 暂时没有加入音效 * 游戏窗口尺寸为512*768

关卡内元素介绍 ——

1. ENEMY_RED:红色小敌机,数量多,出现频率高,击落后有机率出现钱币,可以加分。

2. ENEMY_BLUE:蓝色中型敌机,出现频率低,需要多颗子弹击落,击落后有机率出现星星,可以加强火力 。

3. ENEMY_BOSS:绿色大型敌机,出现频率低,可以发射子弹,需要很多颗子弹击落,击落后得分较高 。

4. BULLET_BOSS: 绿色大型敌机发射的子弹

5. OWN: 自己的飞机     6. OWN_BULLET: 自己飞机发射的子弹

系统文件——

【start.py】:开始游戏的主文件 -

【level_01.py】:游戏第一关 -    【sprites.py】:建立游戏精灵类文件

【initialize.py】:系统设置文件,包含各种游戏基本元素的设定值

- .\fonts\\...:游戏使用的字体

- .\images\\...:游戏使用的图像文件

- .\screenshot\...:游戏画面截屏 ## 游戏画面

截屏 * 游戏载入图片 ![游戏载入]

2)附代码讲解

配置的文件、窗口、图片等设置。

import pygame

SCREEN_RECT = pygame.Rect(0, 0, 512, 768)   # 用一个常量来存储屏幕的位置和大小,常量用全大写表示
SCREEN_CENTER = [SCREEN_RECT.width/2, SCREEN_RECT.height/2]

CREATE_ENEMY_EVENT = pygame.USEREVENT       # 敌机事件定时器常量值
OWN_FIRE_EVENT = pygame.USEREVENT + 1       # 发射子弹定时器常量值
BONUS_ENEMY_EVENT = pygame.USEREVENT + 2    # 加分敌机的定时器常量值
STAR_ENEMY_EVENT = pygame.USEREVENT + 3     # 星星敌机的定时器常量值
BOSS_ENEMY_EVENT = pygame.USEREVENT + 4     # BOSS敌机的定时器常量值
BULLET_BOSS_EVENT = pygame.USEREVENT + 5    # BOSS敌机的子弹定时器常量值

ENEMY_TIMER = 600                           # 敌机出现的时间频率
BULLET_TIMER = 400                          # 子弹出现的时间频率
BONUS_TIMER = 5000                          # 加分敌机出现的时间频率
START_TIMER = 20000                         # 星星敌机出现的时间频率
BOSS_TIMER = 120000                         # BOSS敌机出现的时间频率
BULLET_BOSS_TIMER = 1500                    # BOSS敌机子弹出现的时间频率

LIFE_NUMS = 5                               # 生命值
MOVE_SPEED = 5                              # 已方飞机移动速度
STAR_ENEMY_LIFE = 6                         # 打掉星星敌机需要的子弹
BOSS_ENEMY_LIFE = 100                       # 打掉BOSS敌机需要的子弹

BACKGROUND = r'.\images\background.png'
GAME_OVER = r'.\images\gameover.png'
OWN_IMAGE = r'.\images\own.png'
OWN_DOWN_IMAGE = r'.\images\own_died.png'
ENEMY_RED_IMAGE = r'.\images\enemy_red.png'
ENEMY_BLUE_IMAGE = r'.\images\enemy_blue.png'
ENEMY_DOWN_IMAGE = r'.\images\enemy_down.png'
BULLET_IMAGE = r'.\images\bullet.png'
BULLET_BOSS_IMAGE = r'.\images\bullet_boss.png'
LIFE_IMAGE = r'.\images\life.png'
GOLD_COIN_IMAGE = r'.\images\bonus.png'
STAR_IMAGE = r'.\images\star.png'
READY_IMAGE = r'.\images\ready.png'
BOSS_IMAGE = r'.\images\boss.png'
LOGO_IMAGE = r'.\images\logo.ico'

SYS_FONT = r'.\fonts\BOLDER.ttf'
GAME_NAME = '小飞机'

FPS = 60            # 屏幕刷新频率

3)主程序

import threading
from sprites import *
from initialize import *

# noinspection PyPep8Naming
# 主游戏类
class PlaneGame(object):
    def __init__(self):
        self.score = 0
        self.bullet_grade = 1   # 初始的子弹等级
        self.boss_flag = 0      # 判断BOSS是否出现
        self.ready_time = pygame.time.get_ticks()   # 用来控制显示ready画面的时钟
        self.star_enemy_life = STAR_ENEMY_LIFE      # 星星敌机需要几颗子弹
        self.boss_enemy_life = BOSS_ENEMY_LIFE      # BOSS敌机需要几颗子弹
        self.bullet_type = {1: 'One', 2: 'Two', 3: 'Three', 4: 'Four'}
        self.screen = pygame.display.set_mode(SCREEN_RECT.size)
        logo = pygame.image.load(LOGO_IMAGE)        # 设置游戏窗口图标
        pygame.display.set_icon(logo)
        pygame.display.set_caption(GAME_NAME)       # 设置游戏窗口名称

        self.clock = pygame.time.Clock()  # 创建游戏时钟
        self.__createSprite()  # 调用私有方法, 创建精灵和组

        pygame.time.set_timer(CREATE_ENEMY_EVENT, ENEMY_TIMER)  # 设置定时器事件
        pygame.time.set_timer(OWN_FIRE_EVENT, BULLET_TIMER)
        pygame.time.set_timer(BONUS_ENEMY_EVENT, BONUS_TIMER)
        pygame.time.set_timer(STAR_ENEMY_EVENT, START_TIMER)
        pygame.time.set_timer(BOSS_ENEMY_EVENT, BOSS_TIMER)
        pygame.time.set_timer(BULLET_BOSS_EVENT, BULLET_BOSS_TIMER)
        self.life_num = LIFE_NUMS

    def __createSprite(self):
        """ 私有方法,创建精灵和组 """
        bg1 = BackGround(BACKGROUND)                    # 创建背景和组
        bg2 = BackGround(BACKGROUND)
        bg2.rect.y = -bg2.rect.height                   # ???
        self.back_group = pygame.sprite.Group(bg1, bg2)

        self.ready_go_group = pygame.sprite.Group()     # 创建ready组
        self.ready_go_group.add(ReadyGo())
        self.enemy_red_group = pygame.sprite.Group()    # 创建红色敌机组
        self.enemy_down_group = pygame.sprite.Group()   # 创建被击中敌机组
        self.bonus_enemy_group = pygame.sprite.Group()  # 创建加分敌机组
        self.gold_coin_group = pygame.sprite.Group()    # 创建金币组
        self.star_enemy_group = pygame.sprite.Group()   # 创建星星敌机组

        self.boss_enemy = EnemyBoss()                   # ???
        self.boss_enemy_group = pygame.sprite.Group()   # 创建BOSS敌机组
        self.bullet_boss_group = pygame.sprite.Group()  # 创建BOSS子弹组

        self.star_coin_group = pygame.sprite.Group()    # 创建星星组
        self.own_died_group = pygame.sprite.Group()     # 创建自己死亡飞机的组
        self.__resetOwn()                               # 创建自己的飞机和组

    def start(self):
        """ 游戏开始 """
        while True:
            self.clock.tick(FPS)        # 刷新帧率
            self.__eventHandler()       # 事件监听
            self.__checkCollide()       # 碰撞检测
            self.__updateSprites()      # 更新/绘制画面

            pygame.display.update()     # 更新屏幕显示
            self.__gameOver()           # 游戏结束

    def __eventHandler(self):
        """ 事件监听(监听定时器常量) """
        for event in pygame.event.get():
            if event.type == pygame.QUIT:  # 判断是否退出游戏
                PlaneGame.quit()
            elif event.type == CREATE_ENEMY_EVENT:  # 当事件值等于CREATE_ENEMY_EVENT时,将敌机精灵添加到组
                enemy = EnemyRed()
                self.enemy_red_group.add(enemy)
            elif event.type == BONUS_ENEMY_EVENT:  # 当事件值等于BONUS_ENEMY_EVENT时,将加分敌机加入到组
                bonus_enemy = EnemyRed()
                self.bonus_enemy_group.add(bonus_enemy)
            elif event.type == STAR_ENEMY_EVENT:  # 当事件值等于STAR_ENEMY_EVENT时,将星星敌机加入到组
                self.star_enemy_life = STAR_ENEMY_LIFE  # 赋予新的星星敌机生命值
                star_enemy = EnemyBlue()
                self.star_enemy_group.add(star_enemy)

            elif event.type == BOSS_ENEMY_EVENT:  # 当事件值等于BOSS_ENEMY_EVENT时,将BOSS敌机加入到组
                self.boss_enemy_life = BOSS_ENEMY_LIFE  # 赋予新的BOSS敌机生命值
                self.boss_enemy = EnemyBoss()            # ????
                self.boss_enemy_group.add(self.boss_enemy)
                self.boss_flag = 1          # 修改BOSS出现的flag

            elif event.type == OWN_FIRE_EVENT:  # 当事件值等于OWN_FIRE_EVENT时,按子弹等级开火
                for n in self.bullet_type:
                    grade = 4 if self.bullet_grade > 4 else self.bullet_grade
                    if grade == n:
                        exec('self.own.fire{}()'.format(self.bullet_type[n]))

            if self.boss_flag == 1:     # 如果BOSS出现,则发射子弹
                if event.type == BULLET_BOSS_EVENT:
                    self.boss_enemy.fire()

        keys_pressed = pygame.key.get_pressed()  # 使用键盘提供的方法获取按键, 得到一个按键元组
        if keys_pressed[pygame.K_RIGHT]:  # 按右方向键时向右移动,水平速度为4
            self.own.speed_y = 0  # 同时将垂直方向的速度变为0
            self.own.speed_x = MOVE_SPEED
        elif keys_pressed[pygame.K_LEFT]:  # 按左方向键时向右移动,水平速度为4
            self.own.speed_y = 0
            self.own.speed_x = -MOVE_SPEED
        elif keys_pressed[pygame.K_UP]:  # 按上方向键时向右移动,垂直速度为-4
            self.own.speed_x = 0  # 同时将水平方向的速度变为0
            self.own.speed_y = -MOVE_SPEED
        elif keys_pressed[pygame.K_DOWN]:  # 按下方向键时向右移动,垂直速度为4
            self.own.speed_x = 0
            self.own.speed_y = MOVE_SPEED
        elif keys_pressed[pygame.K_SPACE]:  # 按空格键时暂停游戏
            self.__gamePause(True)
        else:  # 按其他键或不按时不移动
            self.own.speed_x = 0
            self.own.speed_y = 0

    def __checkCollide(self):
        """ 碰撞检测 """
        # 当子弹和敌机碰撞,敌机爆炸,得分加1,groupcollide()是精灵基类中的方法,返回一个字典,子弹是键,敌机是值
        killers = pygame.sprite.groupcollide(self.own.bullets, self.enemy_red_group, True, True)  # 子弹摧毁敌机
        if len(killers) > 0:  # 如果返回值长度大于0时,得分加1
            self.score += 1
            enemy_down = SpriteDown(ENEMY_DOWN_IMAGE, list(killers.keys())[0].rect, 0)  # 取出碰撞字典中的键用来定位显示爆炸
            self.enemy_down_group.add(enemy_down)

        # 当敌机和已机碰撞,飞机数量减1,1秒后重新显示一架飞机
        died_1 = pygame.sprite.groupcollide(self.enemy_red_group, self.own_group, True, True)       # 敌机撞毁自己飞机
        died_2 = pygame.sprite.groupcollide(self.bonus_enemy_group, self.own_group, True, True)     # 加分敌机撞毁自己飞机
        died_3 = pygame.sprite.groupcollide(self.star_enemy_group, self.own_group, True, True)      # 星星敌机撞毁自己飞机
        died_4 = pygame.sprite.groupcollide(self.boss_enemy.bullets, self.own_group, True, True)    # BOSS敌机子弹击毁已机
        died_5 = pygame.sprite.groupcollide(self.boss_enemy_group, self.own_group, True, True)      # BOSS敌机撞毁已机
        died_owns = {**died_1, **died_2, **died_3, **died_4, **died_5}  # 合并字典
        if len(died_owns) > 0:  # 列表有内容代表发生碰撞了
            self.life_num -= 1  # 飞机数量减1
            own_died = SpriteDown(OWN_DOWN_IMAGE, list(died_owns.keys())[0].rect, 0)
            self.own_died_group.add(own_died)
            self.s = threading.Timer(1, self.__resetOwn)  # 设置一个多线程定时调用函数,1秒后开始执行
            self.s.start()

        # 当子弹和加分敌机碰撞,出现金币继续下落
        bonus_enemies = pygame.sprite.groupcollide(self.own.bullets, self.bonus_enemy_group, True, True)
        if len(bonus_enemies) > 0:
            self.score += 1
            gold_coin = SpriteDown(GOLD_COIN_IMAGE, list(bonus_enemies.keys())[0].rect, 1)
            self.gold_coin_group.add(gold_coin)

        # 当已机和硬币碰撞,得分+5,金币消失
        gold = pygame.sprite.groupcollide(self.gold_coin_group, self.own_group, True, False)
        if len(gold) > 0:
            self.score += 5

        # 当子弹和星星敌机碰撞,子弹消失,超过n颗子弹后出现星星继续下落
        if self.star_enemy_life <= 0:
            star_enemy = pygame.sprite.groupcollide(self.own.bullets, self.star_enemy_group, True, True)
            if len(star_enemy) > 0:
                self.score += 5
                star_coin = SpriteDown(STAR_IMAGE, list(star_enemy.keys())[0].rect, 1)
                self.star_coin_group.add(star_coin)
        else:
            star_enemies = pygame.sprite.groupcollide(self.own.bullets, self.star_enemy_group, True, False)
            if len(star_enemies) > 0:
                self.star_enemy_life -= 1

        # 当子弹和BOSS敌机碰撞,子弹消失,超过n颗子弹后BOSS敌机爆炸
        if self.boss_enemy_life <= 0:
            boss_enemy = pygame.sprite.groupcollide(self.own.bullets, self.boss_enemy_group, True, True)
            if len(boss_enemy) > 0:
                self.score += 300
                enemy_down = SpriteDown(ENEMY_DOWN_IMAGE, list(boss_enemy.keys())[0].rect, 1)
                self.enemy_down_group.add(enemy_down)
                self.boss_flag = 0
        else:
            boss_enemies = pygame.sprite.groupcollide(self.own.bullets, self.boss_enemy_group, True, False)
            if len(boss_enemies) > 0:
                self.boss_enemy_life -= 1

        # 当已机和星星碰撞,得分+10,子弹等级+1
        star = pygame.sprite.groupcollide(self.star_coin_group, self.own_group, True, False)
        if len(star) > 0:
            self.score += 10
            self.bullet_grade += 1

    def __resetOwn(self):
        """ 自己飞机重生 """
        self.own = Own()  # 创建自己的飞机精灵和精灵组
        self.own_group = pygame.sprite.Group(self.own)
        self.bullet_grade = 1  # 初始的子弹等级

    def __infoDisplay(self, text, pos, angle):
        """
        -- 显示游戏信息
        :param text: 文字内容
        :param pos: 位置[x, y]
        :param angle: 用来定位的角
        :return:
        """
        score_font = pygame.font.Font(SYS_FONT, 24)
        score_text = score_font.render(text, True, (255, 255, 255))
        text_rect = score_text.get_rect()
        exec('text_rect.{}={}'.format(angle, pos))
        self.screen.blit(score_text, text_rect)

    def __updateSprites(self):
        """ 更新/绘制精灵组 """
        self.back_group.update()
        self.back_group.draw(self.screen)

        self.__infoDisplay('score ' + str(self.score), [20, 10], 'topleft')
        self.__infoDisplay('level 01', [492, 10], 'topright')
        self.__infoDisplay('life ' + str(self.life_num), [230, 10], 'topleft')

        if pygame.time.get_ticks() < self.ready_time + 3000:    # 显示ready画面3秒
            self.ready_go_group.update()
            self.ready_go_group.draw(self.screen)

        if pygame.time.get_ticks() > self.ready_time + 4000:    # ready画面1秒后开始显示游戏元素
            self.enemy_red_group.update()
            self.enemy_red_group.draw(self.screen)    # 显示敌机
            self.bonus_enemy_group.update()
            self.bonus_enemy_group.draw(self.screen)  # 显示加分敌机
            self.star_enemy_group.update()
            self.star_enemy_group.draw(self.screen)  # 显示星星敌机
            self.boss_enemy_group.update()
            self.boss_enemy_group.draw(self.screen)  # 显示BOSS敌机
            self.enemy_down_group.update()
            self.enemy_down_group.draw(self.screen)  # 显示敌机爆炸
            self.own.bullets.update()
            self.own.bullets.draw(self.screen)      # 显示已方子弹

            self.boss_enemy.bullets.update()
            self.boss_enemy.bullets.draw(self.screen)  # 显示BOSS子弹

            self.own_died_group.update()
            self.own_died_group.draw(self.screen)  # 显示已方飞机爆炸
            self.gold_coin_group.update()
            self.gold_coin_group.draw(self.screen)  # 显示金币
            self.star_coin_group.update()
            self.star_coin_group.draw(self.screen)  # 显示星星
            self.own_group.update()
            self.own_group.draw(self.screen)  # 显示已方飞机

    def __gamePause(self, pause=False):
        """ 暂停游戏, 按任意键退出"""
        self.__infoDisplay('Any key to continue...', SCREEN_CENTER, 'center')
        pygame.display.update()  # 更新屏幕显示
        while pause:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    PlaneGame.quit()
                elif event.type == pygame.KEYDOWN:
                    pause = False

    def __gameOver(self):
        """ 游戏结束,按ESC重新开始 """
        if self.life_num == 0:  # 如果飞机数量为0,退出游戏
            game_over = pygame.image.load(GAME_OVER)  # 显示GAMEOVER图片
            self.screen.blit(game_over, (50, 150))
            self.__infoDisplay('press ESC play again...', SCREEN_CENTER, 'center')
            pygame.display.update()  # 更新屏幕显示
            flag = True
            while flag:
                for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                        PlaneGame.quit()
                    elif event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_ESCAPE:  # 按SPACE重新开始游戏
                            flag = False
                            PlaneGame().start()

    @staticmethod
    def quit():
        """ 静态函数,退出游戏 """
        pygame.quit()
        exit()

三、效果展示

1)游戏界面

​2)运行游戏

3)金币掉落

4)游戏结束

总结

嘻嘻!打掉蓝色战机加星星之后玩起来特别爽的哦~以上没截图,大家可以自己试试的啦!

到此这篇关于Python Pygame实战之飞机大战的实现的文章就介绍到这了,更多相关Python Pygame飞机大战内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用python实现飞机大战游戏

    本文实例为大家分享了Python飞机大战项目,供大家参考,具体内容如下 import gc import random import pygame # 玩家飞机精灵类 import Constants class HeroPlane(pygame.sprite.Sprite): def __init__(self, screen): # 调用父类初始化方法 # pygame.sprite.Sprite.__init__(self) super().__init__() # 窗口 self.scr

  • python飞机大战游戏实例讲解

    记得刚学python那会,作过一个飞机大战小项目,这个项目非常经典,可以帮助初学者提高动手能力,今天把它分享出来. 一.项目介绍 先放几张图片 二.项目实现 1.首先安装库 pip install pygame 2.主要python代码 import pygame from pygame.locals import * import random #https://blog.csdn.net/qq_36079986/article/details/110395731 class HeroPlan

  • Python实战小游戏飞机大战详解

    目录 导语 ​正文 一.环境安装 二.我方飞机 三.敌方飞机 四.控制键盘移动 五.检测子弹碰撞 六.效果图 总结 导语 "看见别人都那么努力,那么勤奋,那么意气风发地走在成功的道路上,你问问自己:难道就不想成为他们的绊脚石吗?" --周一整理好心情好好出发吧! 大家好啊,还在学习的小小伙伴儿慢慢学哈~学完基础的你,今天可以放松下,跟着小编玩会儿游戏再继续哦! 新的一周要努力哦!赶不上别人至少也要慢慢溜上去,晓得吧?乖巧.jpg "晓得晓得,会努力的". ​大家还记

  • python实现飞机大战项目

    本文实例为大家分享了python实现飞机大战的具体代码,供大家参考,具体内容如下 引用了小甲鱼的框架,往上面添加了一些新功能 1.我方飞机模块 import pygame class MyPlane(pygame.sprite.Sprite): def __init__(self,bg_size): pygame.sprite.Sprite.__init__(self) self.image1 = pygame.image.load(r'E:\learn pygame\image\me1.png

  • python之pygame模块实现飞机大战完整代码

    本文实例为大家分享了python之pygame模块实现飞机大战的具体代码,供大家参考,具体内容如下 Python飞机大战步骤: 1.数据区 2.主界面 3.飞船 4.事件监控及边界 5.外星人 6.记分系统 飞机大战效果图: 源码: """ 功能:飞机大战 time:2019/10/3 """ import os import pygame import sys import time from pygame.sprite import Spri

  • python开发飞机大战游戏

    本文实例为大家分享了python开发飞机大战游戏的具体代码,供大家参考,具体内容如下 import pygame import random import math # 数学模块 # 初始化界面 pygame.init() # 设置窗口大小 windows = pygame.display.set_mode((800, 600)) # 设置窗口标题 pygame.display.set_caption("小赵同学") # 引入图片 logo icon = pygame.image.lo

  • Python Pygame实战之飞机大战的实现

    目录 导语 一.环境安装 1)各种素材(图片.字体等) 2)运行环境 二.代码展示 1)文章思路 2)附代码讲解 3)主程序 三.效果展示 总结 导语 三月疫情原因,很多地方都封闭式管理了! 在回家无聊的打酱油,小编今天给大伙带来了一波小游戏——全民左右飞机大战!在这个快熬不下去的日子里,打打飞机消遣闲暇时间,也是蛮惬意的,这几天小编必须全身心投入到飞机大战中来!肝了几天这款小游戏终于面市啦! 这次的游戏操作很简单,就是左右移动飞机,躲避敌人飞机,打落敌机会随机掉落金币,我们 要打击的敌人!每个

  • python pygame模块编写飞机大战

    本文实例为大家分享了python pygame模块编写飞机大战的具体代码,供大家参考,具体内容如下 该程序没有使用精灵组,而是用列表存储对象来替代精灵组的动画效果.用矩形对象的重叠来判断相撞事件.该程序可以流畅运行,注释较为详细,希望可以帮助大家. import pygame from pygame.locals import * from sys import exit import time import random # 创建子弹类,把子弹的图片转化为图像对象,设定固定的移动速度 clas

  • Python Pygame实战之红心大战游戏的实现

    目录 导语 一. 红心大战用户手册 二.红心大战游戏规则 三.准备中 四.代码演示 五.效果展示 导语 还记得那些年,我们玩过的Windows小游戏吗? 说起Windows自带的游戏,相信许多80.90后的朋友都不陌生. 在很早的那个游戏贫瘠的年代,<纸牌>.<扫雷>等游戏帮助我们在微机课上带来了许多欢乐的时光.但在这些游戏中,有一款游戏似乎玩懂的人,甚至知道玩法的人并不多.这款游戏就是<红心大战>. 最近小编心血来潮仔细钻研了一下之后,发现这款游戏玩起来却比其他的几款

  • Python Pygame实战之五款童年经典游戏合集

    目录 一.推箱子 1)代码展示 2)效果展示 二.滑雪 1)代码展示 2)效果展示​ 三.声控把音符 1)代码展示 2)效果展示 四.保卫萝卜 1)代码展示 2)效果展示​ 五.飞机大战 1)代码展示 2)效果展示 一.推箱子 1)代码展示 import os import sys import cfg import pygame from modules import * from itertools import chain '''游戏地图''' class gameMap(): def _

  • Python+Pygame实战之实现小蜜蜂历险记游戏

    目录 导语 一.运行环境 二.素材(图片等) 三.代码展示 四.效果展示 导语 亲爱的小可爱们,大家好! 欢迎来到木子的游戏编程空间 经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天又又又更新一款新游戏给大家啦,期待不期待呀?教大家如何通过边打游戏边学编程!准备好了吗?我们即将开始激动人心的游戏编程之旅. 或许你之前学习过一点编程,但若是你从没接触过游戏编程,那么你仍然会对游戏程序的运行

  • Pygame框架实现飞机大战

    本文实例为大家分享了Pygame框架实现飞机大战的具体代码,供大家参考,具体内容如下 飞机大战主游戏类 """ 项目名称:简单飞机大战游戏 基于框架:Pygame 开发日期:2020.07 开发人员:Y 版本:**** """ import sys # 导入内置模块sys 调用sys.exit() import pygame # 导入第三方模块pygame from plane_sprites import * # 导入自定义模块内所有工具 cl

  • python实现简单的飞机大战

    本文实例为大家分享了python实现简单的飞机大战的具体代码,供大家参考,具体内容如下 制作初衷 这几天闲来没事干,就想起来好长时间没做过游戏了,于是就想做一个游戏练练手,为了起到一个练习的目的就使用了自己不是太熟练的python这门语言来编写,代码都有备注,大家可以直接看代码,这个代码我是在python3.1的环境下写的,大家需要可以直接下载我这里的资源,图片和代码打包到了一起的,因为是第一次使用python做游戏,有什么不足的地方望大佬斧正. 游戏思路 首先我们分析飞机大战这个游戏属于一个平

  • pygame实现简易飞机大战

    利用pygame实现了简易版飞机大战.源代码如下: # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import * from pygame.font import * import time import random class Hero(object): #玩家 英雄类 def __init__(self, screen_temp): self.x = 210 self.y = 700 self.life

  • java实战之飞机大战小游戏(源码加注释)

    一.工程文件 二.Main.java 主函数,实现类 package ui; //主函数实现 public class Main { public static void main(String[] args) { //创建窗体 GameFrame frame = new GameFrame(); //创建面板 GamePanel panel = new GamePanel(frame); //调用开始游戏的方法启动游戏 panel.action(); //将面板加入到窗体中 frame.add

随机推荐