![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Sprite [Delphi]
Fog © (2003-01-03 19:21:00)Дайте пожалуйста конкретный пример того как сделать так чтобы спрайт НЕ изчезал уходя за края.(DelphiX)
Daddy (2003-01-08 16:16:00) [1]http://daddy.h1.ru/index.shtml?dxarticle4:
Решение 1. В пропетиес DXDraw (при этих значениях работает)
Align = alClient
AutoSize = False
doFlip = False
doCenter = True
Значения SurfaceHeight и SurfaceWidth делаем больше значений Height и Width на ширину тайла
Решение 2. Сделать рамку с шириной в пол-спрайта.
Решение 3. Написать новую процедуру отрисовки, где вычисляется положение тайлов. Если хоть часть тайла видна, то рисуем спрайт.
JB (2003-01-06 09:43:00) [2]люди, а чё вообще надо-то.
Fog если тебе надо нипускать спрайт (это если гама типа tetris), то
if (spx>DXW) then spx:=DXW; //DXW - ширина твоего DXDraw"a,
//spx - координата спрайта;
MRB_SPB (2003-01-05 10:53:00) [3]Рисовать конеxо незачем просто соответственно при уходе за правый край проверяем ScreenX<SpritreX
для левого края SpritreX+SpritreWidth>0
Для SpritreУ соответственно
Mirovodin (2003-01-04 22:54:00) [4]2 Fog ©
Правильно, само то обрезает но зачем рисовать спрайт с координатами X:=1000 Y:=1000l если в данный момент видно только окно (0,500; 0,300);
Владимир Васильев (2003-01-04 16:47:00) [5]>Подождите... У спрайта X,Y это его центр ......
Нет, это TOP-LEFT
MRB_SPB (2003-01-04 16:07:00) [6]Невидел ещё описаного тобой случая насколько я знаю DXDraw физически сам по себе обрезает пиксели только за пределами области просмотра так что такого быть не может.
А примеров по исчезанию спрайиов почти каждый второй в поставке демок.
Fog (2003-01-04 12:04:00) [7]Подождите... У спрайта X,Y это его центр. Когда они уходят за приделы DXDraw"a спрайт исчезает. Как этого избежать. Чтобы спрайт уходил за края до последнего пиксела.
Mirovodin (2003-01-03 23:25:00) [8]проверять координаты спрайта перед выводом, доп-м:
размер DX X(0;500) и Y(0;500)
Спрайт имеет координаты sprX и sprY
if (sprX>DX.X) or (sprX<0) - вышел за пределы X оси
так же для Y;
Fog (2003-01-03 20:35:00) [9]Края DXDraw"a.
Ketmar (2003-01-03 20:20:00) [10]то тогда и вопрос задавать надо понятно. откуда мы знаем, что там за края такие?
Satanas Nobiscum! 03-Jan-XXXVIII A.S.
Fog (2003-01-03 20:03:00) [11]Ну а если надо чтобы он уходил за края?
Ketmar (2003-01-03 19:43:00) [12]не выпускать его за края %-)
Satanas Nobiscum! 03-Jan-XXXVIII A.S.