飞机大战之Python(面向过程)

运用PyCharm编译程序,以Python语言为开发语言,最终实现飞机大战游戏相应的游戏操作功能。

        Python是一种跨平台的、开源的、免费的、解释型的高级编程语言。它具有丰富的、强大的库, 能够把其他语言制作的各种模块很轻松地联结在一起, 所以Python常被称为“胶水”语言。Python语言近几年发展势头迅猛, 应用领域也非常广泛, 在Web编程、图形处理、黑客编程、大数据处理、网络爬虫、科学计算和游戏编程等领域都能找到Python的应用。

        其中Pygame是Python的一个第三方库, 搭载了基于OpenGL的图形库和优质的音频库, 可以快速上手制作2D游戏的原型。Pygame的API比较偏底层, 开发人员在编程时具有很大的自由度, 同时具有了很强的可定制性。Python语言的研究和发明主要是为了便于学习和应用, 因此Python语言是开源的, 并且语法非常简单、容易编写和理解。本文通过对飞机大战游戏的设计与分析, 掌握Python语言在游戏开发领域的优势。


飞机大战游戏设计开发是面向对象程序设计的一次运用:

主要设计原则如下:

        (1)简单性,在实现软件的功能的同时, 尽量让软件操作简单易懂;

        (2)针对性,基于Python软件, 实现飞机大战游戏的各种要求;

        (3)一致性,类型、变量和其他元素的命名规则保持一致;


        完成同样的功能应该尽量使用同样的元素;界面元素的外观风格、摆放位置在同一个界面和不同界面之间是一致的。可以使其基本类库Pygame的基本函数和功能模块的调用操作实现python语言在课程设计中的运用。

        通过对飞机大战游戏设计的实现,要求我们进一步理解和掌握课堂上所学各种基本类型的变量、数据类型、类、用户输入和文件操作实现面向对象的游戏开发,以及它们在程序中的使用方法;掌握Python软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力;掌握使用各种计算机资料和有关参考资料,提高我们进行程序设计的基本能力,逐步熟悉程序设计的方法,并养成良好的编程习惯。

        本次设计为了使飞机大战游戏具有更加丰富的功能,基于面向对象和面向过程的方法,使用Python编程语言提供资源结构,以Pygame模块对游戏进行研发,提出了飞机大战游戏开发方案。通过各种优化调整,实现了飞机的飞行移动、击落,计分等功能,实现了飞机大战的开发,增加游戏体验。

项目设计内容


开发一款飞机大战游戏,要求:

(1)实现飞机的移动、子弹发射,对本次游戏有一个初步的编写及认识。
(2)飞机的持续按键移动和飞机自爆优化。
(3)进行基类的抽取,使代码更具有层次性和简化重复代码。
(4)对判断以及删除越界子弹、敌机发射子弹进行扩展优化。


(纯面向过程 初级版,窗口、飞机属性、键盘事件、背景图、背景音乐等功能的实现)

import pygame
from pygame.locals import *
def main():
    # 创建一个窗口
    create=pygame.display.set_mode((600,700),depth=100)
    # 设定一个背景图
    background=pygame.image.load('./sucai/背景图.jpg')
    # 设计一个小标题
    pygame.display.set_caption('全民飞机大战')

    #载入玩家对象
    hero=pygame.image.load('./sucai/飞机_英雄.gif')
    #初始化玩家位置
    x,y=250,625

    #设计背景音乐
    pygame.mixer.init()
    pygame.mixer.music.load('./sucai/全民飞机大战游戏音乐.mp3')
    pygame.mixer.music.set_volume(0.3)       #自定义设置音量
    pygame.mixer.music.play(-1)   #-1表示无限循环

    # 显示玩家对象
    # 循环刷新
    while True:
        #显示背景图片
        create.blit(background,(0,0))

        #显示玩家对象
        create.blit(hero,(x,y))

        #获取键盘事件
        eventlist=pygame.event.get()
        for event in eventlist:
            if event.type==QUIT:
                print('程序退出!')
                exit()
                pass
            elif event.type==KEYDOWN:
                if event.key==K_a or event.key==K_LEFT:
                    #A D 键盘按钮为大写
                    print('left')     #左键

                        #移动玩家属性位置
                    # if x>=0 and x<=600:
                    if x>=10:
                        x-=10
                    else:
                        break
                elif event.key==K_d or event.key==K_RIGHT:
                    print('right')    #右键

                    # if x >= 0 and x <= 600:
                    if x<=530:
                        x+=10      #移动玩家属性位置
                    else:
                        break
                    pass
                elif event.key==K_SPACE:
                    print('k_space')    #空键
                pass

        # 更新显示内容
        pygame.display.update()
        pass
    pass
if __name__ == '__main__':
    main()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值