Конференция "Игры" » Зеркальное отражение спрайтов [Delphi, Windows]
 
  • Sacred_Anger (29.06.07 00:42) [0]
    Подскажите, как можно в DelphiX осуществить зеркальное отражение спрайтов ?
    К примеру, есть спрайт(робот) он смотрит вправо, по нажатии клавиши спрайт разворачивается и робот смотрит влево.
    Спасибо !
  • Хелпер (29.06.07 01:39) [1]
    В GLScene - это MirrorV и MirrorU.
    Может лучше перейти на GLScene.
  • Jkot © (29.06.07 05:04) [2]
    либо меняеш текстурные координаты на спрайте ну или  вершины треугольников двигаеш....
  • Jkot © (29.06.07 05:15) [3]
    ой блин про DelphiX совсем не приметил, хз как том устроенно всё...
  • @!!ex © (29.06.07 08:02) [4]
    > [1] Хелпер   (29.06.07 01:39)

    Может лучше на OpenGL перейти? ;)
  • DJ KARIES (29.06.07 09:26) [5]
    На DelphiX проще будет заранее приготовить отраженные спрайты в граф. редакторе.
    Хотя, вроде можно попробовать при отрисовке указать отрицательные высоту/ширину. Не помню уже.
    Действительно, лучше перейти на OpenGL. Или на работу с D3D напрямую.
  • Assusahep (20.01.09 11:01) [6]
  • Б (20.01.09 11:56) [7]
    Просто берёшь и поворачиваешь на 180 градусов. ;)
    Знаешь как там поворачивать спрайт?
  • @!!ex © (20.01.09 12:28) [8]
    > [7] Б   (20.01.09 11:56)

    Вопросу полтора года... :))
  • Б (20.01.09 12:53) [9]
    > Вопросу полтора года... :))

    А я.... хотел тут поумничать...   ;)
    Долбанный спам, поднял вопрос из воды... ;)
  • Ordan (31.10.14 06:21) [10]
    Вот процедура которая рисует спрайт из тайлсэта в указанных координатах, а так же отражает его если надо. Знаю что вопросу мильен лет, но малоли вдруг кому пригодится.

    // Процедура выводит спрайт (sprX,sprY) из текстуры (XSize,YSize)
    procedure TGlavnaya.Kvadrat(XSize, YSize, sprX, sprY, strok, stolb:integer; flip:boolean);
    begin

    if (flip=true) then // вариант с зеркальным отражением
    begin

    glBegin(GL_QUADS);
    glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(0,0);
    glTexCoord2f( (0+(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(sprX,0);
    glTexCoord2f( (0+(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(sprX,sprY);
    glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(0,sprY);
    glEnd;
    end
    else // вариант без зеркального отражения
    begin
    glBegin(GL_QUADS);
    glTexCoord2f( (0   +(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(0,0);
    glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(sprX,0);
    glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(sprX,sprY);
    glTexCoord2f( (0   +(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(0,sprY);
    glEnd;
    end;

    end;
  • demko126 (15.12.14 17:42) [11]
    Форекс портал wmforex.info для нацинающих, у нас вы можете скачать http://wmforex.info/, все о заработке на форекс.
  • brother © (15.12.14 18:04) [12]
    а не пошел бы ты?
  • имя (20.10.15 18:15) [13]
    Удалено модератором
  • Neli (25.11.15 02:50) [14]
    Now I feel stiupd. That's cleared it up for me
 
Конференция "Игры" » Зеркальное отражение спрайтов [Delphi, Windows]
Есть новые Нет новых   [103765   +3][b:0.001][p:0.001]