搜索
您的当前位置:首页正文

游戏开发__一些简单的函数操作——二阶段

来源:二三娱乐

接上一章内容,不懂的看一阶段

Rect函数

PYGAME模块中,提供了一个特殊的类型:用于封装2D游戏中的游戏资源:长方形Rect
2D游戏中,所有的游戏资源都有四个具体的数据表示它在屏幕中的展示
距离屏幕左边的距离:left 也称为x坐标
距离屏幕上边的距离:top 也称为y坐标
资源本身的宽度:width
资源本省的高度:height
pygame中提供了一个用于表示这四个数据的对象:位置对象:pygame.Rect
rect = pygame.Rect(x, y, width, height)
获取左边的距离:rect.left | rect.x
获取上边的距离:rect.top | rect.y
获取元素的尺寸:rect.size
获取中间的位置:rect.centerx | rect.centery
代码如下

import pygame
#英雄飞机的:宽度。高度
HERO_X = 196
HERO_Y = 500
HERO_WIDTH = 120
HERO_HEIGHT = 79

#以上代码可以写成如下代码
hero_rect = pygame.Rect(196,500,120,79)

精灵对象——很重要!很重要!很重要!

3)游戏核心操作
游戏运行过程中-> 核心~图片在运动-> 大量的图片在运动
抽象:图片在运动
游戏:图片、位置、速度
pygame将所有的任意的游戏操作开发中用到的对象:封装一个类型
精灵对象[图片、位置、速度][更新]
pygame.sprite.Sprite
QUSTION:如果游戏中出现了大量的图片每个图片都是一个精灵对象
精灵组对象[添加精灵]->更新->渲染->将组中的所有精灵,全部渲染到窗口中!
pygame.sprite.Group
更新(update->调用所有精灵对象update)、渲染draw(screen)
所有的2D游戏开发:都是图片的转换!
图片对象[图片路径、位置、运动速度][ 更新位置 ]
游戏精灵对象——表示2D游戏中,任意的一个游戏元素
为了方便我们操作大量的游戏元素[游戏精灵]:精灵组对象
精灵组对象管理游戏中出现的所有精灵对象!

上代码

'''
version 3.0:精灵对象、精灵组对象
    精灵~一个游戏元素
'''
import pygame


class GameSprite(pygame.sprite.Sprite):
    '''游戏精灵对象'''

    def __init__(self, image_path, speed=1):
        # 调用父类初始化函数
        super().__init__()

        # 创建一个图片对象
        self.image = pygame.image.load(image_path)
        # 获取精灵位置对象
        self.rect = self.image.get_rect()
        # 速度
        self.speed = speed

    def update(self):
        self.rect.y += self.speed

##########################################################
##########################################################
##########################################################
# 正常游戏开发
# 初始化所有模块
pygame.init()

screen = pygame.display.set_mode((512, 768), 0, 32)

# 游戏背景:精灵对象
background = GameSprite("./images/bg_img_1.jpg", speed=0)

# 英雄飞机
hero = GameSprite("./images/hero.png", speed=5)

# 添加精灵对象到精灵组中
resource = pygame.sprite.Group(background, hero)

# 游戏循环
while True:
    # 精灵组 刷新渲染所有包含的精灵
    resource.update()

    resource.draw(screen)

    # 当前屏幕刷新
    pygame.display.update()

Top