SDL2: плавное движение по сетке 16 x 16 - PullRequest
1 голос
/ 16 марта 2020

Я хочу, чтобы точка перемещалась по сетке от плитки к плитке. Плитки имеют размер 16x16.

Это моя игра l oop:

int nextMoveTime = 0;
while (!quit) //gameloop
{
    //Handle events on queue
    while (SDL_PollEvent(&e) != 0)
    {
        //User requests quit
        if (e.type == SDL_QUIT)
        {
            quit = true;
        }

        //Handle input for the dot
        dot.handleEvent(e);//adjusts velocity in increments of 16
    }
    if (nextMoveTime <= SDL_GetTicks())
    {
        dot.move(tileSet);//applies velocity
        nextMoveTime = SDL_GetTicks() + 100;
    }

     //and some render stuff:
     dot.setCamera(camera);

    //Clear screen
    SDL_SetRenderDrawColor(gRenderer, 0xFF, 0xFF, 0xFF, 0xFF);
    SDL_RenderClear(gRenderer);

    //Render level
    for (int i = 0; i < TOTAL_TILES; ++i)
    {
        tileSet[i]->render(camera);
    }

    //Render dot
    dot.render(camera,frame);
    //Update screen
    SDL_RenderPresent(gRenderer);
}

Мне кажется, что это плохой подход, так как скорость увеличивается на 16, поэтому движение по сетке 16x16 делает не выглядит гладко, я хотел бы сделать точку один раз между плитками.

...