python从入门到实践12-1,12-2

12-1 蓝色天空:创建一个背景为蓝色的Pygame窗口

import sys
import pygame

def run_game():
    # 初始化游戏,并创建一个屏幕对象
    pygame.init()
    screen = pygame.display.set_mode((1200, 600))
    pygame.display.set_caption("this is a test!")

    #背景颜色
    bg_color = (0, 0, 255)

    # 开始游戏主循环
    while True:
        # 监听鼠标和事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        # 每次循环重绘屏幕
        screen.fill(bg_color)

        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()

注:在写监听的时候,判断语句漏写了.type导致程序无法退出。要注意是event.type == pygame.QUIT

12-2 游戏角色:找一副你喜欢的游戏角色位图图像或将一副图像转换为位图。创建一个类,将该角色绘制到屏幕中央,并将该图像的背景色设置为屏幕背景色。

import sys
import pygame
from classjianji import Jianji

def run_game():
    # 初始化游戏,并创建一个屏幕对象
    pygame.init()
    #设置窗口大小
    screen = pygame.display.set_mode((1200, 600))
    #设置窗口标题
    pygame.display.set_caption("this is a test!")

    #背景颜色:天蓝色
    bg_color = (87, 250, 255)

    # 创建游戏角色
    jianji = Jianji(screen)

    # 开始游戏主循环
    while True:
        # 监听鼠标和事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

        # 每次循环重绘屏幕
        screen.fill(bg_color)
        #将游戏人物绘画出来
        jianji.blitme()


        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()
# Jianji.py
import pygame

class Jianji():
    def __init__(self, screen):
        """初始化游戏人物并设置其位置"""
        self.screen = screen

        # 加载图像并获取其外接矩形
        self.image = pygame.image.load('untitled.bmp')
        self.rect = self.image.get_rect()
        self.screen_rect = self.screen.get_rect()

        # 将每个游戏人物放在屏幕中央
        self.rect.centerx = self.screen_rect.centerx
        self.rect.centery = self.screen_rect.centery

    def blitme(self):
        """在指定位置绘制游戏人物"""
        self.screen.blit(self.image, self.rect)

这里要理解surface对象,图像数据都将转化为surface对象。blit的参数有两个,一个是图片即self.image是一个surface对象,另一个是要画的位置即self.rect

.get_rect()获得一个对象的rect,以便于设置其坐标位置

你可能感兴趣的:(pygame,游戏)