用python的pygame,但每次程序一运行,pygame window窗口能出现,但是下图这种状态。

event英文翻译是事件 get 获取? type是样式,类型的意思,所以他这个都是有规律的,但是有顺序事件在前,后面跟属性

同时也有父子(层级)关系

event.get() 获取到的事件

event.type() 事件类型

event.key() 按键事件

一般都是写在while里面,因为这是个不断循环的过程,不然,只执行一便达不到实际要求,这是Pygame里面设定好的

这是贪吃蛇游戏的一段代码(一部分):

txt?=?font.render('GAME?OVER',?True,?(255,?0,?0))

screen.blit(txt,?(size[0]/6,?size[1]*2/5-20))#?(0,?0)(size[0]/6,?size[1]*2/5)100号字中心位置

direction?=?'right'#?初始方向,向右

changeDirection?=?direction#?定义一个改变方向的变量,按键

running?=?True

while?Trunning:

for?event?in?pygame.event.get():#?从队列中获取事件

if?event.type?==?QUIT:#?判断事件类型是否为退出事件

#?pygame.quit()

sys.exit()

elif?event.type?==?KEYDOWN:#?如果按键被按下(事件)

if?event.key?==?K_RIGHT?or?event.key?==?K_d:?#?如果是右键头或者是d,蛇向右移动

changeDirection?=?'right'

if?event.key?==?K_LEFT?or?event.key?==?K_a:?#?如果是左键头或者是a,蛇向左移动

changeDirection?=?'left'

if?event.key?==?K_UP?or?event.key?==?K_w:

changeDirection?=?'up'

if?event.key?==?K_DOWN?or?event.key?==?K_s:

changeDirection?=?'down'

#这下面一行可以忽略,

if?event.key?==?K_ESCAPE:#?对应键盘上的Esc键,表示退出

pygame.event.post(pygame.event.Event(QUIT))

#?绘制文本,刷新显示

screen.blit(txt,?(20,?10))

screen.fill(blackColor)?#放在for语句一列,属于while的(子)层级,循环不断的刷新