http://blog.sysuschool.com/u/mygod/index.html
请稍候,载入中。。。
 
请稍候,载入中。。。
2019-5-9 8:53:00
博文:pygame续(一)event巧用

 

网上找了些pygame的资料,今天开始继续补充pygame模块。

前面的event的事件判断不能执行的原因找到了,先要对pygame进行初始化,一是执行pygame.init(),二是导入pygame的常量from pygame.locals import *

看-will的博客,看到事件的一种写法,挺有意思,今天就小结这个。

需求:游戏中需要用上下左右方向键来控制角色hero的移动,

——由于python没有switch case语法,-will用python的字典,然后用in判断

——用到的事件类型(event.type)有键盘按下和抬起(pygame.KEYDOWN \ pyagme.KEYUP),按键event.key判断(pygame.K_LEFT、pygame.K_RIGHT、pygame.K_UP、pygame.K_DOWN

代码如下:

offset={ pygame.K_LEFT:0, pygame.K_RIGHT,pygame.K_UP, pygame.K_DOWN:0 }

...

while True:

    ...

    for event in pygame.event.get():

        if event.type == pygame.KEYDOWN:

            if event.key in offset:

                offset[ event.key ] = 3

        elif event.type == pygame.KEYUP:

            if event.key in offset:

                offset[ event.key ] = 0

    offset_x = offset[ pygame.K_RIGHT] - offset [ pygame.k_LEFT]

    offset_y = offset[ pygame.K_DOWN] - offset [ pygame.K_UP]

    hero_pos = [ hero_pos[0]+offset_x, hero_pos[1]+offset_y ]

——判断键盘是否按下,如果键盘被按下,再判断是否是“上下左右”键,是的话将offset字典中相应的key赋值为3,如左方向键按下的话,offset[ pygame.K_LEFT]=3,按键抬起时offset字典所有项的值归0;这样可以计算键盘按下时的一个循环中,角色x和y方向的移动量(上面最后三句,有正负)。

mygod | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
请稍候,载入中。。。
公告
请稍候,载入中。。。
时间记忆
请稍候,载入中。。。
最新日志
请稍候,载入中。。。
最新评论
请稍候,载入中。。。
最新回复
请稍候,载入中。。。
我的好友
我的相册
站点信息
请稍候,载入中。。。
生活因感动而精彩,理想在创造中放飞
Powered by Oblog.