2018-11-27 Pygame

Pygame的简单应用

import pygame                   # 导入pygame库
from pygame.locals import *     # 导入pygame库中的一些常量
from sys import exit            # 导入sys库中的exit函数

# 定义窗口的分辨率
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 640

# 计数ticks == new add ==
ticks = 0
# 计数ticks == new add ==
  
# 初始化游戏
pygame.init()                   # 初始化pygame
screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])     # 初始化窗口
pygame.display.set_caption('This is my first pygame-program')       # 设置窗口标题

# 载入背景图
background = pygame.image.load('resources/image/background.png')

# 载入资源图片 == new add ==
shoot_img = pygame.image.load('resources/image/shoot.png')
# 用subsurface剪切读入的图片
hero1_rect = pygame.Rect(0, 99, 102, 126)
hero2_rect = pygame.Rect(165, 360, 102, 126)
hero1 = shoot_img.subsurface(hero1_rect)
hero2 = shoot_img.subsurface(hero2_rect)
hero_pos = [200, 500]
# 载入资源图片 == new add ==

# 事件循环(main loop)
while True:

    # 绘制背景
    screen.blit(background, (0, 0))
    
    # 绘制飞机 == new add ==
    if ticks % 50 < 25:
        screen.blit(hero1, hero_pos)
    else:
        screen.blit(hero2, hero_pos)
    ticks += 1
    # 绘制飞机  == new add ==
    
    # 更新屏幕
    pygame.display.update()                                         
    
    # 处理游戏退出
    # 从消息队列中循环取
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

游戏的设计思想就是一种在主循环之中,并且每次循环都获取在这次循环之中产生的事件,然后循环读取事件然后匹配解决方案直到quit。且在每次循环结束都要刷新屏幕以更新情况,希望获得一个动态的游戏交互效果,并且以帧数仿制动图,虽然这本来就是动图的原理。

你可能感兴趣的:(2018-11-27 Pygame)