-
Подскажите, как можно в DelphiX осуществить зеркальное отражение спрайтов ? К примеру, есть спрайт(робот) он смотрит вправо, по нажатии клавиши спрайт разворачивается и робот смотрит влево. Спасибо !
-
В GLScene - это MirrorV и MirrorU. Может лучше перейти на GLScene.
-
либо меняеш текстурные координаты на спрайте ну или вершины треугольников двигаеш....
-
ой блин про DelphiX совсем не приметил, хз как том устроенно всё...
-
> [1] Хелпер (29.06.07 01:39)
Может лучше на OpenGL перейти? ;)
-
На DelphiX проще будет заранее приготовить отраженные спрайты в граф. редакторе. Хотя, вроде можно попробовать при отрисовке указать отрицательные высоту/ширину. Не помню уже. Действительно, лучше перейти на OpenGL. Или на работу с D3D напрямую.
-
-
Просто берёшь и поворачиваешь на 180 градусов. ;) Знаешь как там поворачивать спрайт?
-
> [7] Б (20.01.09 11:56)
Вопросу полтора года... :))
-
> Вопросу полтора года... :))
А я.... хотел тут поумничать... ;) Долбанный спам, поднял вопрос из воды... ;)
-
Вот процедура которая рисует спрайт из тайлсэта в указанных координатах, а так же отражает его если надо. Знаю что вопросу мильен лет, но малоли вдруг кому пригодится.
// Процедура выводит спрайт (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;
-
Форекс портал wmforex.info для нацинающих, у нас вы можете скачать http://wmforex.info/, все о заработке на форекс.
-
а не пошел бы ты?
-
Удалено модератором
-
Now I feel stiupd. That's cleared it up for me
|