pygame做一个简单的打字游戏
1.基本代码
下面的代码完成了每一秒在界面的顶部随机生成一个新的字母
# -*- coding=utf-8 -*-
import pygame
from pygame.locals import KEYDOWN
import random
w,h = 800,600
pygame.init()
screen = pygame.display.set_mode((w, h))
white=255,255,255
black=0,0,0
myfont = pygame.font.Font(None,80)
word_diff_ticks = 1000
word_ticks = pygame.time.get_ticks() + word_diff_ticks
def get_random_word():
color = (random.randint(0, 255),random.randint(0, 255),random.randint(0, 255)) # 颜色随机
x = random.randint(100, w-100) # x坐标从左右边距各100之间随机
y = 0
word = random.randint(65, 90)
return x,y,word,color
arr=[]
arr.append(get_random_word())
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.fill((255, 255, 255))
for i in range(len(arr)): # 绘制这些字母
x, y, word, c = arr[i]
textImage = myfont.render(chr(word), True, c)
screen.blit(textImage, (x, y))
if pygame.time.get_ticks()>=word_ticks: # 计时增加新字母
word_ticks +=word_diff_ticks
arr.append(get_random_word())
pygame.display.update()
复制代码
2.移动字母
先增加一个定时器,设定字母20毫秒移动一格
diff_ticks = 20
ticks = pygame.time.get_ticks() + diff_ticks
复制代码
在主循环中加入移动的代码
if pygame.time.get_ticks() >= ticks:
ticks += diff_ticks
for i in range(len(arr)):
x, y, word, c = arr[i]