火车头伪原创设置【php源码】

本篇文章给大家谈谈python游戏编程代码大全,以及python编写的游戏有哪些,希望对各位有所帮助,不要忘了收藏本站喔。

火车头采集ai伪原创插件截图:

为了能在开学后更好地融入实验室,本人计划用一个月的时间进行python3语言入门,该系列笔记适合已经有一门编程语言基础的朋友参考使用,欢迎同道者前来交流~

使用教材:
1.《python从入门到精通》清华大学出版社;(自带教学视频【二维码形式】)
2.《机器学习》周志华(西瓜书) 清华大学出版社;
3.《python机器学习手册》 [美]Xhris Albon;
4. BiliBili 《和美女老师一起学python》视频。

………………………………

Pygame——游戏编程

pygame是跨平台python模块,专为电子游戏设计,包含图像和声音。

(一)安装Pygame

pygame的网址是www.pygame.org,在网址中有pygame的相关文档。
在cmd中输入下面这行,就安装上pygame了。

pip install pygame

运行结果如图:
火车头伪原创设置【php源码】_第1张图片
………………………………

(二)Pygame常用模块

pygame做游戏的优点在于不需要考虑过多和底层相关的内容,可以更多地把工作重心放在游戏逻辑里。

pygame有很多和底层相关的模块,如下表所示:

———— pygame 底层工作模块 ————

模块名 说明
pygame.cdrom 访问光驱
pygame.cursors 加载光标
pygame.display 访问显示设备
pygame.draw 绘制形状、线、点
pygame.event 管理事件
pygame.font 使用字体
pygame.image 加载和存储图片
pygame.joystick 使用游戏手柄或者类似的东西
pygame.key 读取键盘按键
pygame.mixer 声音
pygame.mouse 鼠标
pygame.movie 播放视频
pygame.music 播放音频
pygame.overplay 访问高级视频叠加
pygame.rect 管理矩形区域
pygame.sndarray 操作声音数据
pygame.sprite 操作移动图像
pygame.surface 管理图像和屏幕
pygame.time 管理时间和帧信息
pygame.transform 缩放和移动图像

下面使用 Pygame 的 display 模块event模块 创建一个 pygame窗口,代码如下:

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =320,240    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口

pygame.quit()   #退出pygame

………………………………

(三)Pygame 的基本使用

下面将引入一个“跳跃的小球”的游戏实例,在实例中总结pygame的基本使用方法。

【实例要求说明】
创建一个游戏窗口,并在窗口内创建一个小球。以一定的速度移动小球,当小球碰到游戏窗口的边缘时,小球弹回,继续移动。

【分步骤实现细解】

①创建一个游戏窗口,宽和高设置为 640 * 480。

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =640,480    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口


display模块用于显示窗口,它的常用方法如下:
———— display模块常用方法 ————

方法名 功能
pygame.display.init 初始化display模块
pygame.display.quit 结束display模块
pygame.display.get_init 如果display模块已经被初始化,则返回true
pygame.display.set_mode 初始化一个准备显示的界面
pygame.display.get_surface 获取当前的Surface对象
pygame.display.flip 更新整个待显示的Surface对象到屏幕上
pygame.display.update 更新部分内容显示到屏幕上,如果没有参数则与flip功能相同

………………………………

②如果执行上述代码,则窗口会一闪而过,因为程序执行后会自动关闭。如果要让窗口一直显示,就要使用一个死循环。

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =640,480    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口

#执行死循环,让窗口一直显示
'''while True:
    #检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:   #如果单击关闭窗口,则退出
            sys.exit()'''

pygame.quit()   #退出pygame

结果演示:
火车头伪原创设置【php源码】_第2张图片
………………………………

③在窗口中添加小球(事件)。我们要实现准备好一张小球的图片 ball.png ,然后加载该图片,最后将图片显示在窗口中。
具体代码如下:

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =640,480    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口   

color = (0,0,0)#设置颜色

ball = pygame.image.load("E:\\ball.png")
ballrect = ball.get_rect()

#执行死循环,让窗口一直显示
# '''
while True:
    #检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:   #如果单击关闭窗口,则退出
            sys.exit()
 
    screen.fill(color)    #填充颜色
    screen.blit(ball, ballrect)   #将图片画到窗口上
    pygame.display.flip()   #更新全部显示

# '''

pygame.quit()   #退出pygame

效果展示: (在这里我用的是一张黑色背景的拉布拉多图片)
火车头伪原创设置【php源码】_第3张图片………………………………

④让狗子动起来。
1) ball.get_rect方法犯规之ballrect是一个rect对象,该对象有一个move方法可以用于移动矩形。

move(x,y)函数有两个参数,第一个是x轴移动的距离,第二个是y轴移动的距离。窗体左上角的坐标为(0,0)

2) 为了实现让狗子不停移动,将move()函数添加到while循环中。

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =640,480    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口   

color = (0,0,0)#设置颜色

ball = pygame.image.load("E:\\ball.png")  #加载图片
ballrect = ball.get_rect()  #获得矩形区域
speed = [5,5]


#执行死循环,让窗口一直显示
# '''
while True:
    #检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:   #如果单击关闭窗口,则退出
            sys.exit()
 
    ballrect = ballrect.move(speed)   #移动小球
    screen.fill(color)    #填充颜色
    screen.blit(ball, ballrect)   #将图片画到窗口上
    pygame.display.flip()   #更新全部显示

# '''

pygame.quit()   #退出pygame

这个代码运行后,狗子会从左上角向右下角飞掠而过。
………………………………

⑤添加碰撞检测功能,让狗子来回飞
【当小球与窗体任意一边的边缘发生碰撞时,更改小球的移动方向。】

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =800,800    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口   

color = (0,0,0)#设置颜色

ball = pygame.image.load("E:\\ball.png")  #加载图片
ballrect = ball.get_rect()  #获得矩形区域
speed = [5,5]


#执行死循环,让窗口一直显示
# '''
while True:
    #检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:   #如果单击关闭窗口,则退出
            sys.exit()
 
    ballrect = ballrect.move(speed)   #移动小球
    #如果碰到左右边缘
    if ballrect.left <0 or ballrect.right >width:
        speed[0] = -speed[0]  #改变方向
    #如果碰到上下边缘
    if ballrect.top < 0 or ballrect.bottom >height:
        speed[1] = -speed[1]

        
    screen.fill(color)    #填充颜色
    screen.blit(ball, ballrect)   #将图片画到窗口上
    pygame.display.flip()   #更新全部显示

# '''

pygame.quit()   #退出pygame

这个时候就已经实现狗子在屏幕中四处乱晃的样子了(太傻了我笑了hhhhhhh):
【效果展示】
火车头伪原创设置【php源码】_第4张图片
………………………………

⑤如果需要一个“时钟”来控制时间
这个时候就要用到pygame的time模块,使用pygame之前,必须先创建Clock对象的一个实例,然后在while循环中设置多长时间运行一次。
代码如下:

# -*- coding:utf-8 -*-

import sys    #导入sys模块
import pygame  #导入pygame 模块

pygame.init()    #初始化 pygame
size= width,height =800,800    #初始化窗口
screen = pygame.display.set_mode(size)    #显示窗口   

color = (0,0,0)#设置颜色

ball = pygame.image.load("E:\\ball.png")  #加载图片
ballrect = ball.get_rect()  #获得矩形区域
speed = [5,5]
clock = pygame.time.Clock()   #设置时钟


#执行死循环,让窗口一直显示
# '''
while True:
    clock.tick(60)   #每秒执行六十次
    #检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:   #如果单击关闭窗口,则退出
            sys.exit()
 
    ballrect = ballrect.move(speed)   #移动小球
    #如果碰到左右边缘
    if ballrect.left <0 or ballrect.right >width:
        speed[0] = -speed[0]  #改变方向
    #如果碰到上下边缘
    if ballrect.top < 0 or ballrect.bottom >height:
        speed[1] = -speed[1]

        
    screen.fill(color)    #填充颜色
    screen.blit(ball, ballrect)   #将图片画到窗口上
    pygame.display.flip()   #更新全部显示

# '''

pygame.quit()   #退出pygame

效果展示:

火车头伪原创设置【php源码】_第5张图片

【狗子乱飞】实例到这里就演示完毕啦!
………………………………

(四)开发Flappy Bird游戏

【要学习开发完整游戏惹!激动!】

游戏规则简介:
Flappy 是一款鸟类飞行游戏(障碍躲避类),玩家单击屏幕,小鸟就向上飞;否则小鸟下降,以此来躲避障碍(管道),每通过一组管道就得一分。

游戏分析:

  1. 游戏的主体是小鸟和管道,所以建立两个主要的类: Bird类Pineline类
  2. 因为小鸟要上下飞行来躲避管道,所以在Bird类中家里一个控制小鸟上行的方法:birdUpdate();
  3. 如果要让小鸟看起来像是在管道里飞行,也可让管道不断向左移动,视觉上是统一的。因此要在管道类中添加一个 updatePipeline() 方法,实现管道不断向左移动。
  4. 此外还有三个函数:绘制地图,判断小鸟生命状态,获取最后分数。

———— 用到的类名及方法名————

名称 使用说明
Bird 【类】小鸟类
Pineline 【类】管道类
birdUpdate() 【小鸟类方法】控制小鸟向上飞行
updatePineline() 【管道类方法】控制管道不断向左
createMap() 方法——用于绘制地图
checkDead() 方法——用户判断小鸟的生命状态
getResult() 方法——用于获取最终分数

………………………………

1. 搭建主框架

先创建两个类,具体实现方法可以用pass语句替代,然后创建一个绘制地图的函数createMap() ;最后,在侏罗纪中绘制背景图片。

关键代码如下:

import pygame
import sys
import random

class Bird(object):
    '''小鸟类'''
    def __init__(self):
        '''定义初始化方法'''
        pass

    def birdUpdate(self):
        pass


class Pipeline(object):
    '''定义一个管道类'''
    def __init__(self):
        '''定义初始化方法'''
        pass

    def updatePipeline(self):
        '''水平移动'''
        pass
def createMap():
    '''定义创建地图的方法'''
    screen.fill((255,255,255))  #填充颜色
    screen.blit(background,(0,0))    # 填入到背景
    pygame.display.update()   #更新显示

if __name__ == '__main__':
    '''主程序'''
    pygame.init()                                   #初始化pygame
    size = width, height = 500,493                 #设置窗口
    screen = pygame.display.set_mode(size)          #显示窗口
    clock = pygame.time.Clock()                     #设置时钟
    Pipeline = Pipeline()           #实例化管道类
    Bird = Bird()                   #实例化小鸟类

    while True:
        clock.tick(60)      #每秒执行六十次
        #轮询事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        background = pygame.image.load("E:\\background.png")  #加载背景图片
        createMap()       #绘制地图

    pygame.quit()         #退出
       

效果演示(是我自己用画图做的丑图hhhh):

火车头伪原创设置【php源码】_第6张图片

2. 创建小鸟类

对小鸟类的编辑中应该完成以下几个任务:

  1. 构造函数进行参数初始化;
  2. 定义birdUpdate方法,实现小鸟的跳跃和坠落;
  3. 在主逻辑轮询实践中添加键盘按下事件和鼠标单击事件(按下某个键小鸟高度提升);
  4. 最后,在createMap中显示小鸟的图像。

关键代码如下:

import pygame
import sys
import random

class Bird(object):
    '''小鸟类'''
    def __init__(self):
        '''定义初始化方法'''
        self.birdRect = pygame.Rect(65,50,50,50) #鸟的矩形
        #定义鸟的三种状态列表
        self.birdStatus = [pygame.image.load("E://bao1.png"),
                           pygame.image.load("E://bao2.png"),
                           pygame.image.load("E://bao3.png")]

        self.status = 0  #默认飞行状态
        self.birdX = 120  #鸟所在X轴坐标
        self.birdY = 350  #鸟所在Y轴坐标,即上下飞行高度
        self.jump = False  #默认情况小鸟自动降落
        self.jumpSpeed = 100  #跳跃高度
        self.gravity = 2    #重力
        self.dead = False   #默认小鸟状态为活着

    def birdUpdate(self):
        if self.jump:
            #小鸟跳跃
            self.jumpSpeed -=1   #速度递减,上升越来越慢
            self.birdY -= self.jumpSpeed  #鸟Y轴坐标减小,小鸟上升
        else:
            #小鸟坠落
            self.gravity += 0.0   #重力递增,下降越来越快
            self.birdY += self.gravity   #鸟Y轴坐标增加,小鸟下降
        self.birdRect[1] = self.birdY   #更改Y轴位置
        
   

class Pipeline(object):
    '''定义一个管道类'''
    def __init__(self):
        '''定义初始化方法'''
        pass

    def updatePipeline(self):
        '''水平移动'''
        pass
    
def createMap():
    '''定义创建地图的方法'''
    screen.fill((255,255,255))  #填充颜色
    screen.blit(background,(0,0))    # 填入到背景

    #显示小鸟
    if Bird.dead:
        Bird.status = 2   #撞到管道的状态
    elif Bird.jump:
        Bird.status = 1  #起飞状态
    screen.blit(Bird.birdStatus[Bird.status],(Bird.birdX,Bird.birdY)) #设置小鸟的坐标
    Bird.birdUpdate()  #鸟移动    
    pygame.display.update()   #更新显示

if __name__ == '__main__':
    '''主程序'''
    pygame.init()                                   #初始化pygame
    size = width, height = 400,720                #设置窗口
    screen = pygame.display.set_mode(size)          #显示窗口
    clock = pygame.time.Clock()                     #设置时钟
    Pipeline = Pipeline()           #实例化管道类
    Bird = Bird()                   #实例化小鸟类

    while True:
        clock.tick(60)      #每秒执行六十次
        #轮询事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if (event.type == pygame.KEYDOWN)and not Bird.dead:
                Bird.jump = True  #跳跃
                Bird.gravity = 5
                Bird.jumpSpeed = 10

        background = pygame.image.load("E:\\background.png")  #加载背景图片
        createMap()       #绘制地图

    pygame.quit()         #退出
        

效果展示:
(我有很努力地截gif了)
火车头伪原创设置【php源码】_第7张图片

3. 创建管道类

对管道类的编辑中应该完成以下几个任务:

  1. 管道类构造函数对参数进行初始化;
  2. 在updatePipeline方法中,定义管道向左移动的速度;且当管道移出屏幕时,会出现下一组管道;
  3. 最后,在createMap()函数中显示管道。

关键代码如下:

import pygame
import sys
import random

class Bird(object):
    '''小鸟类'''
    def __init__(self):
        '''定义初始化方法'''
        self.birdRect = pygame.Rect(65,50,50,50) #鸟的矩形
        #定义鸟的三种状态列表
        self.birdStatus = [pygame.image.load("E://bao1.png"),
                           pygame.image.load("E://bao2.png"),
                           pygame.image.load("E://bao3.png")]

        self.status = 0  #默认飞行状态
        self.birdX = 120  #鸟所在X轴坐标
        self.birdY = 350  #鸟所在Y轴坐标,即上下飞行高度
        self.jump = False  #默认情况小鸟自动降落
        self.jumpSpeed = 100  #跳跃高度
        self.gravity = 2    #重力
        self.dead = False   #默认小鸟状态为活着

    def birdUpdate(self):
        if self.jump:
            #小鸟跳跃
            self.jumpSpeed -=1   #速度递减,上升越来越慢
            self.birdY -= self.jumpSpeed  #鸟Y轴坐标减小,小鸟上升
        else:
            #小鸟坠落
            self.gravity += 0.0   #重力递增,下降越来越快
            self.birdY += self.gravity   #鸟Y轴坐标增加,小鸟下降
        self.birdRect[1] = self.birdY   #更改Y轴位置
        
   

class Pipeline(object):
    '''定义一个管道类'''
    def __init__(self):
        '''定义初始化方法'''
        self.wallx = 400    #管道所在的X坐标
        self.pineUp = pygame.image.load("E://pinedown.png")  #加载上管道图片
        self.pineDown = pygame.image.load("E://pine.png")  #加载下管道图片
        


    def updatePipeline(self):
        '''水平移动'''
        self.wallx -=5   #管道X轴坐标递减,即管道向左移动
        if self.wallx <  -80:    #管道运行到一定位置,小鸟飞跃管道,分数加一
            self.wallx = 400
    
def createMap():
    '''定义创建地图的方法'''
    screen.fill((255,255,255))  #填充颜色
    screen.blit(background,(0,0))    # 填入到背景

    #显示管道
    screen.blit(Pipeline.pineUp,(Pipeline.wallx,0))   #上管道坐标位置
    screen.blit(Pipeline.pineDown,(Pipeline.wallx,350))  #下管道坐标位置
    Pipeline.updatePipeline()  #管道移动

    #显示小鸟
    if Bird.dead:
        Bird.status = 2   #撞到管道的状态
    elif Bird.jump:
        Bird.status = 1  #起飞状态
    screen.blit(Bird.birdStatus[Bird.status],(Bird.birdX,Bird.birdY)) #设置小鸟的坐标
    Bird.birdUpdate()  #鸟移动    
    pygame.display.update()   #更新显示

if __name__ == '__main__':
    '''主程序'''
    pygame.init()                                   #初始化pygame
    size = width, height = 900,550               #设置窗口
    screen = pygame.display.set_mode(size)          #显示窗口
    clock = pygame.time.Clock()                     #设置时钟
    Pipeline = Pipeline()           #实例化管道类
    Bird = Bird()                   #实例化小鸟类

    while True:
        clock.tick(60)      #每秒执行六十次
        #轮询事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if (event.type == pygame.KEYDOWN)and not Bird.dead:
                Bird.jump = True  #跳跃
                Bird.gravity = 5
                Bird.jumpSpeed = 10

        background = pygame.image.load("E:\\background.png")  #加载背景图片
        createMap()       #绘制地图

    pygame.quit()         #退出
        

展现效果演示:(中间的是我家狗子,管道依然是我自己在画图里画的【注意尺寸】)
火车头伪原创设置【php源码】_第8张图片

拟解决问题:
①两个管道用不同速度出现;
②同一界面多管道;
③管道长度随机。

4.计算得分和碰撞检测

在这一部分需要满足的功能有以下几点:

  1. 狗子与管道相撞,狗子变成灰色,游戏结束并显示分数。
  2. 在 checkDead()函数中通过pygame.Rect()可以分别获取狗子的矩形区域对象和管道的矩形区域对象,该对象有一个coliderect()方法可以判断两个矩形区域是否相撞。
  3. 如果相撞,设置Bird.dead属性为True。此外,如果小鸟飞出窗体,该属性也为true
  4. 最后用两行文字显示总成绩。

关键代码:

import pygame
import sys
import random

class Bird(object):
    '''小鸟类'''
    def __init__(self):
        '''定义初始化方法'''
        self.birdRect = pygame.Rect(65,50,50,50) #鸟的矩形
        #定义鸟的三种状态列表
        self.birdStatus = [pygame.image.load("E://bao1.png"),
                           pygame.image.load("E://bao2.png"),
                           pygame.image.load("E://bao3.png")]

        self.status = 0  #默认飞行状态
        self.birdX = 120  #鸟所在X轴坐标
        self.birdY = 350  #鸟所在Y轴坐标,即上下飞行高度
        self.jump = False  #默认情况小鸟自动降落
        self.jumpSpeed = 100  #跳跃高度
        self.gravity = 2    #重力
        self.dead = False   #默认小鸟状态为活着

    def birdUpdate(self):
        if self.jump:
            #小鸟跳跃
            self.jumpSpeed -=1   #速度递减,上升越来越慢
            self.birdY -= self.jumpSpeed  #鸟Y轴坐标减小,小鸟上升
        else:
            #小鸟坠落
            self.gravity += 0.0   #重力递增,下降越来越快
            self.birdY += self.gravity   #鸟Y轴坐标增加,小鸟下降
        self.birdRect[1] = self.birdY   #更改Y轴位置
        
   

class Pipeline(object):
    '''定义一个管道类'''
    def __init__(self):
        '''定义初始化方法'''
        self.wallx = 400    #管道所在的X坐标
        self.pineUp = pygame.image.load("E://pinedown.png")  #加载上管道图片
        self.pineDown = pygame.image.load("E://pine.png")  #加载下管道图片
        


    def updatePipeline(self):
        '''水平移动'''
        self.wallx -=5   #管道X轴坐标递减,即管道向左移动
        if self.wallx <  -80:    #管道运行到一定位置,小鸟飞跃管道,分数加一
            global score
            score += 1
            self.wallx = 400
    
def createMap():
    '''定义创建地图的方法'''
    screen.fill((255,255,255))  #填充颜色
    screen.blit(background,(0,0))    # 填入到背景

    #显示管道
    screen.blit(Pipeline.pineUp,(Pipeline.wallx,0))   #上管道坐标位置
    screen.blit(Pipeline.pineDown,(Pipeline.wallx,350))  #下管道坐标位置
    Pipeline.updatePipeline()  #管道移动

    #显示小鸟
    if Bird.dead:
        Bird.status = 2   #撞到管道的状态
    elif Bird.jump:
        Bird.status = 1  #起飞状态
    screen.blit(Bird.birdStatus[Bird.status],(Bird.birdX,Bird.birdY)) #设置小鸟的坐标
    Bird.birdUpdate()  #鸟移动

    #显示分数
    screen.blit(font.render(str(score),3,(255,255,255)),(200,50)) #设置颜色及位置坐标
    pygame.display.update()   #更新显示

def checkDead():
    #上方管子的矩形位置
    upRect = pygame.Rect(Pipeline.wallx,500,Pipeline.pineDown.get_width()-10,Pipeline.pineDown.get_height())

    #检测小鸟是否与上下方管子碰撞
    if upRect.colliderect(Bird.birdRect):
        Bird.dead = True

    #检测小鸟是否飞出上下边界
    if not 0 < Bird.birdRect[1] < height:
        Bird.dead = True
        return True
    else:
        return False

def getResult():
    final_text1 = "Game Over"
    final_text2 = "Your final score is: " + str(score)
    ft1_font = pygame.font.SysFont("Arial",70)
    ft1_surf = font.render(final_text1,1,(242,3,36))
    
    ft2_font = pygame.font.SysFont("Arial",50)
    ft2_surf = font.render(final_text2,1,(253,177,6))

    #设置第一行文字显示位置
    screen.blit(ft1_surf,[screen.get_width()/2 - ft1_surf.get_width()/2,100])

    #设置第二行文字显示位置
    screen.blit(ft2_surf,[screen.get_width()/2 - ft2_surf.get_width()/2,200])
    pygame.display.flip()

if __name__ == '__main__':
    '''主程序'''
    pygame.init()                                   #初始化pygame
    pygame.font.init()  #初始化字体
    font = pygame.font.SysFont(None,50)  #设置默认字体和大小
    size = width, height = 900,550               #设置窗口
    screen = pygame.display.set_mode(size)          #显示窗口
    clock = pygame.time.Clock()                     #设置时钟
    Pipeline = Pipeline()           #实例化管道类
    Bird = Bird()                   #实例化小鸟类
    score = 0

    while True:
        clock.tick(60)      #每秒执行六十次
        #轮询事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if (event.type == pygame.KEYDOWN)and not Bird.dead:
                Bird.jump = True  #跳跃
                Bird.gravity = 5
                Bird.jumpSpeed = 10

        background = pygame.image.load("E:\\background.png")  #加载背景图片
        if checkDead():
            getResult()
        else:
            createMap()       #绘制地图

    pygame.quit()         #退出
       

效果展示:
火车头伪原创设置【php源码】_第9张图片

火车头伪原创设置【php源码】_第10张图片

———— pygame游戏编程部分入门完成!————

你可能感兴趣的:(服务器)