Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Во время движения персонаж мигает как фонарь =)   Найти похожие ветки 

 
Sos   (2004-01-19 20:02) [0]

DelphiX, Помогите, он создаеться в процедуре

procedure TMainForm.DXTimerTimer(Sender: TObject; LagCount: Integer);
//вот он сам
DXImageList1.Items[8].Draw(DXDraw.Surface,XPos*HW - PosX + (XTemp mod HW) ,YPos * HW - PosY + (YTemp mod HW),0);

Во время хотьбы по миру он мигает все время, тоесть видимо не каждый кадр он рисуеться, может знает что делать надо?


 
ZAROLF ©   (2004-01-19 20:14) [1]

Ну если у тебя кадров меньше чем указано в AnimCount, будет выводиться несуществующий кадр и накрывать остальные.


 
Sos   (2004-01-19 20:37) [2]

это как посмотреть?
у меня просто игрок одна статичная картинка, без анимации.


 
ZAROLF ©   (2004-01-19 20:48) [3]

Поставь в FormCreate DoubleBuffered:=true;


 
Sos   (2004-01-19 20:54) [4]

не помогает =(, причем он не просто мигает, его силует показываеться в соседних клетках бывает, при этом он в них не бывал даже, вообще как то непонятно.


 
pavel_k   (2004-01-19 21:21) [5]

Просьба полный код.
(если не лень, пошли мне на мыло весь исходник, гляну).


 
ZAROLF ©   (2004-01-19 21:22) [6]

Delphix он и есть Delphix. Я сам пожалел что на нём писать начал.
Всё, допишу аркаду и перехожу на PowerDraw, и тебе советую.
Вот когда дойдёш в своей игре до столкновений, поймёшь о чём я.


 
pavel_k   (2004-01-19 21:27) [7]

>ZAROLF ©  
IMHO, в других средствах столкновения обрабатывать не легче, чем в DelphiX.


 
ZAROLF ©   (2004-01-19 21:34) [8]

>pavel_k   (19.01.04 21:27) [7]
>ZAROLF ©  
>IMHO, в других средствах столкновения обрабатывать не легче, >чем в DelphiX.
-----------------------------------------------------------------
Да легко, но зато как глючно.


 
pavel_k   (2004-01-19 21:38) [9]

А проблема в чем?
InterSectRect(temp, r1,r2) возвращает true, если r1 и r2 пересекаются, (все параметры типа TRect), поэтому вполне можно сделать проверку столкновений вручную.
Да и в DelphiX с Collision все работает нормально, только не слишком быстро, но чтобы глючно - я не замечал.


 
ZAROLF ©   (2004-01-19 21:47) [10]

> Да и в DelphiX с Collision все работает нормально, только
> не слишком быстро, но чтобы глючно - я не замечал.
-----------------------------------------------------------------
Вот пример:
У меня в аркаде за убийство чела, даётся УЗИ(вид оружия). И вот если попасть в это оружие пулей, оно присвоится плееру. Хотя об
этом в коде я и не писал - что мне надо именно так.


 
Sos   (2004-01-19 21:57) [11]

Павел, выслал код


 
pavel_k   (2004-01-20 16:10) [12]

>ZAROLF ©
Ну пошли мне полный код, я посмотрю, в 97% случаев виноват программист, а не глючный DelphiX, мастдай, Билл Гейтс, etc.
Так могу только предположить, что у тебя в
TUSI.DoColllision
написано типа
дать игроку узи
.
При столкновении с пулей точно также вызывается TUSI.DoCollision и игроку дается узи.
Хотя это только предположение, найти ошибку не видя кода ну о-о-очень сложно.
>sos
Подробно написал на мыло, коротко - у тебя 2 таймера, работают они не синхронно (т.е. не всегда по-очереди), из-за этого мигание.
Если поможет/не поможет пиши сюда.

ЗЫ Разве Sos это имя? Ты нормальный ник возьми. :) Или расшифровку придумай :) .


 
Jenaxx ©   (2004-01-20 17:03) [13]

Ник нормальный вот он =), спасибо большое за помощь, осталось столкновения сделать, просто в игре я хочу чтоб персонаж ходил курсорами, хочу вспомнить Кингс Баунти и прочие замечательные игры, в тот тип игры что делаю это очень пойдет.
Мигать перестал но теперь при столкновение с домом табличка показывающая что дом найден уже не пропадает =)), щас буду искать из за чего это.


 
ZAROLF ©   (2004-01-20 18:09) [14]

>pavel_k   (20.01.04 16:10) [12]
> Ну пошли мне полный код, я посмотрю, в 97% случаев виноват
> программист, а не глючный DelphiX, мастдай, Билл Гейтс,
> etc.
> Так могу только предположить, что у тебя в
> TUSI.DoColllision
> написано типа
> дать игроку узи
> .
> При столкновении с пулей точно также вызывается TUSI.DoCollision
> и игроку дается узи.
> Хотя это только предположение, найти ошибку не видя кода
> ну о-о-очень сложно.
-----------------------------------------------------------------
//Это пуля
constructor TShoot1.Create(AParent: TSprite);
begin
inherited Create(AParent);
 Image := MainForm.ImageList.Items.Find("Shoot1");
 Width := Image.Width;
 Height := Image.Height;
end;

destructor TShoot1.Destroy;
begin
 inherited Destroy;
end;

procedure TShoot1.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
if Sprite is TPlayer then
begin
life:=life-5;
dead;
end;
if Sprite is TMap then
dead;
if Sprite is TUzi then // пока решил так, но это ни дело
dead;
end;

//здесь УЗИ в подарок
constructor TUzi.Create(AParent: TSprite);
begin
inherited Create(AParent);
Image := MainForm.ImageList.Items.Find("uzi_present");
Width := Image.Width;
Height := Image.Height;
end;

Procedure TUzi.DoMove(MoveCount: Integer);
begin
if life25 <=0 then
dead;
Collision;
end;

destructor TUzi.Destroy;
begin
inherited Destroy;
end;

procedure TUzi.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
if Sprite is TPlayer then
dead;
Gun.Dead;
ample:=+50;
sound8:=cbrg_CreateSound("media\sound8.wav");
cbrg_PlaySound(sound8,false);
if Direct = -1 then
UziLeft := TUziLeft.Create(Engine)
else
if Direct = 1 then
UziRight := TUziRight.Create(Engine);
end;


 
pavel_k   (2004-01-20 19:05) [15]

>ZAROLF ©
Стоило открыть новую ветку, ну да ладно.
Исправь в usi.docollision, у тебя если спрайт - игрок, умираем и выполняем то, что дальше, если не игрок - не умираем (dead только если Sprite is TPlayer), а пушку даем. Поставь begin end; при проверке, вот так:
if Sprite is TPlayer then
begin
//тут все, что у тебя написано
dead;
Gun.Dead;
ample:=+50;
sound8:=cbrg_CreateSound("media\sound8.wav");
cbrg_PlaySound(sound8,false);
if Direct = -1 then
UziLeft := TUziLeft.Create(Engine)
else
if Direct = 1 then
UziRight := TUziRight.Create(Engine);
end;



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.039 c
3-1082991554
Frozzen
2004-04-26 18:59
2004.05.23
Как запрос написать


3-1083223942
r9000
2004-04-29 11:32
2004.05.23
Вопрос по использованию ADO


1-1083871797
Студент_
2004-05-06 23:29
2004.05.23
Свой Object Inspector


1-1084300704
magician
2004-05-11 22:38
2004.05.23
Проблемы с ini


8-1078829750
_none_
2004-03-09 13:55
2004.05.23
как зарегистрировать видео кодек в системе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский