首页 > 编程知识 正文

基于python的游戏设计与实现,python小游戏代码飞机大战

时间:2023-05-06 06:03:58 阅读:26556 作者:2702

本文中的示例介绍了python飞机大战pygame游戏框架的构建操作。 分享仅供参考。 具体如下。

目标

明确主流程的责任

实现主程序类

准备游戏向导组

01 .明确主控进程的责任

回顾快速入门案例,一个游戏大师的作用分为两个部分。

游戏初始化

游戏循环

基于明确的责任,PlaneGame类设计如下:

通过暗示根据职责封装私有方法,可以避免某个方法的代码过于冗长

某个方法太长,很难读,也很难维护!

游戏初始化—— init ()调用以下方法:

游戏循环—— start_game ()调用以下方法:

02 .实现飞机大战主游戏类

2.1明确文件职责

plane_main

封装主游戏类

创建游戏对象

启动游戏

plane_sprites

封装游戏中使用的所有向导子类

提供与游戏相关的工具

代码实现

将创建新的plane_main.py文件,并将其设置为可执行

写基本代码

导入页面

from plane_sprites import *

classplanegame (对象) :

“”飞机大战主游戏“”

def __init__(self ) :

打印(“游戏初始化”) )。

defstart_game(self ) :

print ('游戏开始.')

if __name__=='__main__':

#创建游戏对象

game=PlaneGame (

#开始游戏

game.start_game (

2.3游戏初始化部

完成init ) )代码如下。

def __init__(self ) :

打印(“游戏初始化”) )。

# 1.创建游戏的窗口

self.screen=pygame.display.set _ mode ((480,700 ) )

# 2.制作游戏时钟

self.clock=pygame.time.Clock (

# 3.调用专用方法创建向导和向导组

self.__create_sprites (

def_create_sprites(self ) :

传球

使用常数代替固定值

常数——不变化的量

变量——可以变化量

适用场景

开发时,可能需要使用固定的数值,例如屏幕高度为700

此时,建议不要直接使用固定值,而使用常数

开发时,为了保证代码的维护性,请不要使用魔法数字

常数的定义

定义常量的语法与定义变量的语法完全相同,使用赋值语句

命名常量时,所有字符都必须大写,并在单词和单词之间用下划线连接

常数的好处

读码时,用定名看名字的意思,不需要猜测数字的意思

需要调整值时,只需修改常数定义即可进行统一修改

提示: Python没有真正意义上的常数。 根据命名约定,——所有字符都是大写的是常量。 开发时不要轻易修改。

代码调整

将常量定义添加到plane_sprites.py

导入页面

#游戏画面尺寸

screen _ rect=pygame.rect (0,0,480,700 ) )。

更改plane_main.py的窗口大小

self.screen=pygame.display.set _ mode (screen _ rect.size )。

2.4游戏周期部分

start_game (的基本代码如下:

defstart_game(self ) :

'''游戏开始' '

print ('游戏开始.')

while True:

# 1.设置刷新帧率

self.clock.tick(60 ) )。

# 2.事件拦截

self.__event_handler () ) ) ) ) )。

# 3.冲突检测

self.__check_collide (

# 4.更新向导组

self.__update_sprites (

# 5.更新画面显示

pygame.display.update (

def_event_Handler(self ) :

“”事件侦听“”

for event in pygame.event.get () :

if event.type==pygame.QUIT:

PlaneGame.__game_over (

def_check_collide(self ) :

“”冲突检测“”

传球

def__update_sprites(self ) :

更新“”向导组“”

传球

@静态方法

def __game_over () :

' '游戏结束' '

打印(“游戏结束”)

pygame.quit (

exit () )

03 .准备游戏向导组

3.1确定向导组

3.2代码实现

如何创建向导组

def_create_sprites(self ) :

“”创建向导组“”

#背景组

self.back _ group=pygame.sprite.group (

#敌方单位

self.enemy _ group=pygame.sprite.group (

#英雄集团

self.hero _ group=pygame.sprite.group (

如何更新向导组

def__update_sprites(self ) :

更新“”向导组“”

for group in [self.back_group,self.enemy_group,self.hero_group]:

group.update (

group.draw (自.屏幕) )。

本文希望对大家的Python编程有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。