Denisson

Созданные ответы форума

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Сообщения
  • в ответ на: Пролагивают спрайты #2633
    +1

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    Проблема решена, с помощью загрузки спрайтов всех элементов карты из отдельных png

    в ответ на: Пролагивают спрайты #2629

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    Потыкался… Если ставить 49 или 51, то появляются черные полосы.

    в ответ на: Пролагивают спрайты #2627

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    Я что-то недопонимаю… Скиньте исправленный код. Если я ставлю с 51, то перед каждым спрайтом белая полоса

    в ответ на: Пролагивают спрайты #2625

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    Сразу не нашел кнопку для оформления кода… Первый кадр у меня идет от 0 до 49, да и как я понял дело не в самих спрайтах, а именно в коде или самой библиотеке.

    в ответ на: Пролагивают спрайты #2623

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    Тем не менее, есть идеи?

    в ответ на: Пролагивают спрайты #2621

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    кусок отрисовки в цикле игры

    h.update(time);
    window.clear();
    window.setView(view1);
    // рисуем карту
    for (int i = 0; i < HEIGHT_MAP; i++)
    for (int j = 0; j < WIDTH_MAP; j++)
    {
    if (TileMap[i][j] == ‘ ‘) s_map.setTextureRect(IntRect(0, 0, 50, 50));
    if (TileMap[i][j] == ‘s’ || TileMap[i][j] == ‘0’) s_map.setTextureRect(IntRect(50, 0, 50, 50));
    if (TileMap[i][j] == ‘t’) s_map.setTextureRect(IntRect(50*2, 0, 50, 50));
    if (TileMap[i][j] == ‘k’) s_map.setTextureRect(IntRect(50*3, 0, 50, 50));
    s_map.setPosition(j * 50, i * 50);
    window.draw(s_map);
    }
    //игровые элементы
    for (int i = 0; i < box_k; i++)
    window.draw(box[i].sprite);
    for (int i = 0; i < h.bullet_k; i++)
    window.draw(h.bullet[i].sprite);
    for (int i = 0; i < enemy_k; i++)
    window.draw(enemy[i].sprite1);
    //
    window.draw(h.sprite1); // спрайт героя
    // игровой интерфейс (сверху слева)
    cursor_sprite.setPosition(window.mapPixelToCoords(Mouse::getPosition(window)).x, window.mapPixelToCoords(Mouse::getPosition(window)).y);
    text.setString(inttostr(h.ammo_k) + ‘/’);
    text.setPosition(view1.getCenter().x-375, view1.getCenter().y-250);
    icon_pistolet.setPosition(view1.getCenter().x-300, view1.getCenter().y-227);
    icon_pistolet.rotate(0.18);
    hp_bar_sprite.setPosition(view1.getCenter().x-400, view1.getCenter().y-290);
    window.draw(hp_bar_sprite);
    window.draw(icon_pistolet);
    window.draw(text);
    window.draw(cursor_sprite);
    //
    window.display();

    ниже h.update();

    void setPosition(db x1, db y1)
    {
    view1.setCenter(x1, y1);
    x = x1;
    y = y1;
    sprite1.setPosition(x1, y1);
    }
    void update(db time)
    {
    if (dx == 0 || dy == 0)
    setPosition(x + dx * time, y + dy * time);
    else
    setPosition(x + time * dx / sqrt(2), y + time * dy / sqrt(2));
    dx = 0; dy = 0;
    }

    в ответ на: Пролагивают спрайты #2619

    Denisson
    Участник
    Сообщений:7

    Зарегистрирован:
    31.12.2015

    Репутация:1

    Причем это происходит не с одним конкретным местом, а во время движения камеры с разными спрайтами… Попробовал поизменять размер окна – ничего не дало. Размер спрайтов 50×50, окна на скрине 640×480

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)