Jack_Xiaoliu 2022-03-11 00:04 采纳率: 14.3%
浏览 47

setTimer为什么用了没有效果

void AMapleStoryCharacter::Sword()
{
Swording = true;
GetWorldTimerManager().SetTimer(TimerHandle, this, &AMapleStoryCharacter::AtkSword, 2.0f, true);
Swording = false;
}

void AMapleStoryCharacter::AtkSword()
{
GetSprite()->SetFlipbook(AttackAnimation);
//GetWorld()->GetTimerManager().ClearTimer(TimerHandle);
}

为什么这样子写按j的时候角色并没有攻击
GetWorldTimerManager().SetTimer(TimerHandle, this, &AMapleStoryCharacter::AtkSword, 2.0f, true); 这句话我在tick里面放过,在beginplay里面放过,可是好像都没有效果
我是想让他攻击的时候delay个几秒,让攻击动画放完

P.S:我做的是一个2d游戏

img

img

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-03-11 08:50
    关注

    仅供参考:

    #pragma comment(lib,"user32")
    #include <stdio.h>
    #include <time.h>
    #include <sys/timeb.h>
    #include <windows.h>
    CRITICAL_SECTION cs_log;
    char datestr[16];
    char timestr[16];
    char mss[4];
    void log(char *s) {
        struct tm *now;
        struct timeb tb;
    
        EnterCriticalSection(&cs_log);
        ftime(&tb);
        now=localtime(&tb.time);
        sprintf(datestr,"%04d-%02d-%02d",now->tm_year+1900,now->tm_mon+1,now->tm_mday);
        sprintf(timestr,"%02d:%02d:%02d",now->tm_hour     ,now->tm_min  ,now->tm_sec );
        sprintf(mss,"%03d",tb.millitm);
        printf("%s %s.%s %s",datestr,timestr,mss,s);
        LeaveCriticalSection(&cs_log);
    }
    VOID CALLBACK myTimerProc1(
      HWND hwnd, // handle of window for timer messages
      UINT uMsg, // WM_TIMER message
      UINT idEvent, // timer identifier
      DWORD dwTime // current system time
    ) {
     log("In myTimerProc1\n");
    }
    VOID CALLBACK myTimerProc2(
      HWND hwnd, // handle of window for timer messages
      UINT uMsg, // WM_TIMER message
      UINT idEvent, // timer identifier
      DWORD dwTime // current system time
    ) {
     log("In myTimerProc2\n");
    }
    int main() {
        int i;
        MSG msg;
    
        InitializeCriticalSection(&cs_log);
        SetTimer(NULL,0,1000,myTimerProc1);
        SetTimer(NULL,0,2000,myTimerProc2);
        for (i=0;i<20;i++) {
            Sleep(500);
            log("In main\n");
            if (GetMessage(&msg,NULL,0,0)) {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
    
        }
        DeleteCriticalSection(&cs_log);
        return 0;
    }
    //2018-04-17 10:07:54.218 In main
    //2018-04-17 10:07:54.718 In myTimerProc1
    //2018-04-17 10:07:55.218 In main
    //2018-04-17 10:07:55.718 In myTimerProc2
    //2018-04-17 10:07:56.218 In main
    //2018-04-17 10:07:56.218 In myTimerProc1
    //2018-04-17 10:07:56.718 In main
    //2018-04-17 10:07:56.718 In myTimerProc1
    //2018-04-17 10:07:57.218 In main
    //2018-04-17 10:07:57.718 In myTimerProc2
    //2018-04-17 10:07:58.218 In main
    //2018-04-17 10:07:58.218 In myTimerProc1
    //2018-04-17 10:07:58.718 In main
    //2018-04-17 10:07:58.718 In myTimerProc1
    //2018-04-17 10:07:59.218 In main
    //2018-04-17 10:07:59.718 In myTimerProc2
    //2018-04-17 10:08:00.218 In main
    //2018-04-17 10:08:00.218 In myTimerProc1
    //2018-04-17 10:08:00.718 In main
    //2018-04-17 10:08:00.718 In myTimerProc1
    //2018-04-17 10:08:01.218 In main
    //2018-04-17 10:08:01.718 In myTimerProc2
    //2018-04-17 10:08:02.218 In main
    //2018-04-17 10:08:02.218 In myTimerProc1
    //2018-04-17 10:08:02.718 In main
    //2018-04-17 10:08:02.718 In myTimerProc1
    //2018-04-17 10:08:03.218 In main
    //2018-04-17 10:08:03.718 In myTimerProc2
    //2018-04-17 10:08:04.218 In main
    //2018-04-17 10:08:04.218 In myTimerProc1
    //2018-04-17 10:08:04.718 In main
    //2018-04-17 10:08:04.718 In myTimerProc1
    //2018-04-17 10:08:05.218 In main
    //2018-04-17 10:08:05.718 In myTimerProc2
    //2018-04-17 10:08:06.218 In main
    //2018-04-17 10:08:06.218 In myTimerProc1
    //2018-04-17 10:08:06.718 In main
    //2018-04-17 10:08:06.718 In myTimerProc1
    //2018-04-17 10:08:07.218 In main
    //2018-04-17 10:08:07.718 In myTimerProc2
    
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月11日

悬赏问题

  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调