【问题标题】:how to ignore mouse hold on SDL2?如何忽略 SDL2 上的鼠标按住?
【发布时间】:2014-10-25 23:10:51
【问题描述】:

问题:

我想在单击鼠标左键时更改我的角色的动画。如果我按住按钮,它会不断改变动画,但我不需要那个。我希望动画只更改一次。我试图做这样的事情:

if (csdl_setup->GetMainEvent()->type == SDL_MOUSEBUTTONDOWN) {
        if (csdl_setup->GetMainEvent()->button.button == SDL_BUTTON_LEFT) {
                LeftMouseClicked = true;
        }
    }
    if (LeftMouseClicked == true) {
        LeftMouseClicked = false;
        bob->PlayAnimation(0, 1, 1, 1);
    }

但它不起作用。有什么想法吗?

【问题讨论】:

    标签: sdl mouse sdl-2


    【解决方案1】:

    使用两组变量,一组表示按钮是否被按住,另一组表示按钮是否在当前帧中被按下。

    LeftMouseClicked = false ;    //is set to false every frame
    
    if (csdl_setup->GetMainEvent()->type == SDL_MOUSEBUTTONDOWN) {
        if (csdl_setup->GetMainEvent()->button.button == SDL_BUTTON_LEFT) {
             if( LeftMouseHeld == false ) {
                 LeftMouseClicked = true ;
             }
                LeftMouseHeld = true;
        }
    }
    if (LeftMouseClicked == true) {
        bob->PlayAnimation(0, 1, 1, 1);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多