首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我停止按一个特定的键后,我如何使pacman继续移动?

当我停止按一个特定的键后,我如何使pacman继续移动?
EN

Stack Overflow用户
提问于 2022-05-26 10:13:22
回答 1查看 39关注 0票数 1

我希望主角继续朝着我选择的特定方向移动,直到我按下另一个键。这就是我所做的事情的代码:

代码语言:javascript
复制
for event in pygame.event.get():
    if event.type==pygame.KEYDOWN:
        if event.key==pygame.K_q:
            pygame.quit()
        elif event.key==pygame.K_w:
            dir="Up"
        elif event.key==pygame.K_s:
            dir="Down"
        elif event.key==pygame.K_d:
            dir="Right"

        if dir=="Up":
            if valid_move((ChY-45)//size, (ChX)//size):
                ChY-=15
        if dir=="Down":
            if valid_move((ChY+45)//size, (ChX)//size):
                ChY+=15
        if dir=="Right":
            if valid_move((ChY)//size, (ChX+45)//size):
                ChX+=15
        if dir=="Left":
            if valid_move((ChY)//size, (ChX-45)//size):
                ChX-=15
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-26 12:08:02

这是压痕的问题。您必须在应用程序循环中连续移动Pacman,而不是事件循环:

代码语言:javascript
复制
# application loop
run = True
while run:

    # event loop 
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key==pygame.K_q:
                run = False
            elif event.key==pygame.K_w:
                dir="Up"
            elif event.key==pygame.K_s:
                dir="Down"
            elif event.key==pygame.K_d:
                dir="Right"
            elif event.key==pygame.K_a:
                dir="Left"

    # INDENTATION
    #<--|

    if dir=="Up":
        if valid_move((ChY-45)//size, (ChX)//size):
            ChY-=15
    if dir=="Down":
        if valid_move((ChY+45)//size, (ChX)//size):
            ChY+=15
    if dir=="Right":
        if valid_move((ChY)//size, (ChX+45)//size):
            ChX+=15
    if dir=="Left":
        if valid_move((ChY)//size, (ChX-45)//size):
            ChX-=15

    # [...]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72390189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档