用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的(子)层级,循环不断的刷新