我在pygame中的游戏无法正常运行

偷偷摸摸的家伙

我正在尝试用pygame井字游戏。如果单击任何一个正方形,将显示一个x。问题在于,要显示x,需要点击很多。这是代码:

while True:
    for event in pygame.event.get():
        if event == pygame.QUIT:
            pygame.quit()
            sys.exit()
        mouse_pos = pygame.mouse.get_pos()
        event = pygame.event.wait()
        screen.fill(bg_color)
        if event.type == pygame.MOUSEBUTTONDOWN and 250 < mouse_pos[0] < 300 and 250 > mouse_pos[1] > 199:
            mouse_clicked1 = True
        if event.type == pygame.MOUSEBUTTONDOWN and 301 < mouse_pos[0] < 351 and 249 > mouse_pos[1] > 201:
            mouse_clicked2 = True
    if mouse_clicked1:
        screen.blit(x, object_top_left)
    if mouse_clicked2:
        screen.blit(x, object_top)
拉比德76

pygame.event.wait()等待队列中的单个事件。使用从中获取的事件删除该函数pygame.event.get()
如果事件类型为MOUSEBUTTONDOWN(或MOUSEBUTTONUP),则鼠标位置存储在对象pos属性中pygame.event.Event()

while True:
    for event in pygame.event.get():
        if event == pygame.QUIT:
            pygame.quit()
            sys.exit()
        
        if event.type == pygame.MOUSEBUTTONDOWN and 250 < event.pos[0] < 300 and 250 > event.pos[1] > 199:
            mouse_clicked1 = True
        if event.type == pygame.MOUSEBUTTONDOWN and 301 < event.pos[0] < 351 and 249 > event.pos[1] > 201:
            mouse_clicked2 = True
    
    screen.fill(bg_color)
    if mouse_clicked1:
        screen.blit(x, object_top_left)
    if mouse_clicked2:
        screen.blit(x, object_top)

注意,pygame.event.get()获取并从队列中删除所有事件。因此,pygame.event.wait()循环中对的调用将很少返回任何事件。


此外,我建议使用pygame.Rect对象和collidepoint()

while True:
    for event in pygame.event.get():
        if event == pygame.QUIT:
            pygame.quit()
            sys.exit()
        
        if event.type == pygame.MOUSEBUTTONDOWN:
            rect1 = pygameRect(250, 200, 50, 50)
            if rect1.collidepoint(event.pos):
                mouse_clicked1 = True
            rect2 = pygameRect(300, 200, 50, 50)
            if rect2.collidepoint(event.pos):
                mouse_clicked2 = True
    
    screen.fill(bg_color)
    if mouse_clicked1:
        screen.blit(x, object_top_left)
    if mouse_clicked2:
        screen.blit(x, object_top)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

赛车游戏无法在pygame中正常运行

来自分类Dev

我在游戏结束代码中的冲突在pygame中无法正常工作

来自分类Dev

我在游戏结束代码中的冲突在pygame中无法正常工作

来自分类Dev

游戏无法正常运行

来自分类Dev

Pygame无法正常运行

来自分类Dev

旧游戏在Windows 8中无法正常工作/ Windows 8中的旧游戏无法正常运行

来自分类Dev

游戏结束无法正常运行?

来自分类常见问题

Pygame音乐将无法在我的游戏功能中播放

来自分类Dev

Pygame音乐将无法在我的游戏功能中播放

来自分类Dev

我在Matlab中的井字游戏程序无法正常工作

来自分类Dev

我在Matlab中的井字游戏程序无法正常工作

来自分类Dev

碰撞检测在pygame中无法正常运行

来自分类Dev

为什么我的SFML游戏只有在终端机中运行才能正常运行?

来自分类Dev

pygame-pygame无法运行乒乓碰撞游戏

来自分类Dev

我的Java游戏无法正常工作

来自分类Dev

我的循环无法正常运行

来自分类Dev

我的程序无法正常运行

来自分类Dev

如果我的android活动中的控件无法正常运行

来自分类Dev

我运行的命令在sed中无法正常工作

来自分类Dev

我在preg_match中的模式无法正常运行

来自分类Dev

简单版的Game Of Life游戏无法正常运行

来自分类Dev

第二循环,游戏无法正常运行,Sublime Text问题

来自分类Dev

基本的JavaScript剪刀布游戏无法正常运行

来自分类Dev

pygame游戏无法开始

来自分类Dev

pygame游戏无法开始

来自分类Dev

我无法在firefox中运行量角器测试,但在chrome中可以正常运行

来自分类Dev

我应该将我的游戏放置在pygame类中吗?

来自分类Dev

我无法在Pygame中画线

来自分类Dev

我的问答游戏中的draw()函数无法正常工作

Related 相关文章

热门标签

归档