在使用Pygame制作安卓游戏时,需要在游戏中添加暂停功能,当玩家按下“q”键时,游戏暂停,再按下“q”键时,游戏解除暂停。
2、解决方案
1、导入必要的库和模块
import pygame, sys
from pygame.locals import *
try:
import Android
except ImportError:
Android = None
2、初始化Pygame
pygame.init()
if Android:
android.init()
android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)
3、创建一个游戏窗口
size = width, height = 1276,650
screen = pygame.display.set_mode(size)
4、加载游戏资源
r = 0
bif = pygame.image.load("map.png")
pygame.display.set_caption("Pygame 2D RPG !")
x,y=0,0
movex, movey=0,0
character="boy.png"
player=pygame.image.load(character).convert_alpha()
5、创建游戏循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type==KEYDOWN:
if event.key==K_a:
movex=-1
elif event.key==K_d:
movex=+1
elif event.key==K_w:
movey=-1
elif event.key==K_s:
movey=+1
if event.type==KEYUP:
if event.key==K_a:
movex=0
elif event.key==K_d:
movex=0
elif event.key==K_w:
movey=0
elif event.key==K_s:
movey=0
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
pygame.quit()
sys.exit()
x+=movex
y+=movey
screen.fill((r,0,0))
screen.blit(bif,(0,0))
screen.blit(player,(x,y))
pygame.display.update()
6、添加暂停功能
在游戏循环中添加以下代码:
PAUSED = False
font = pygame.font.SysFont("serif", 72)
text_paused = font.render("PAUSED", True, (255, 0, 0))
while True:
# --- events ---
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type==KEYDOWN:
if event.key == K_ESCAPE:
pygame.quit()
sys.exit()
elif event.key==K_q:
PAUSED = not PAUSED
if not PAUSED:
if event.type==KEYDOWN:
if event.key==K_a:
movex=-1
elif event.key==K_d:
movex=+1
elif event.key==K_w:
movey=-1
elif event.key==K_s:
movey=+1
if event.type==KEYUP:
if event.key==K_a:
movex=0
elif event.key==K_d:
movex=0
elif event.key==K_w:
movey=0
elif event.key==K_s:
movey=0
# --- changing values ---
if not PAUSED:
x+=movex
y+=movey
# --- drawing ---
screen.fill((r,0,0))
screen.blit(bif,(0,0))
screen.blit(player,(x,y))
if PAUSED:
screen.blit(text_paused, (100, 100))
pygame.display.update()
7、运行游戏
if __name__ == '__main__':
Game().run()
当玩家按下“q”键时,游戏将暂停,再按下“q”键时,游戏将解除暂停。