buf := Player.GetPause;
dec(buf);
Player.SetPause(buf);
if Player.GetPause < 0 then Player.SetPause(0);
if (Player.GetPause = 0) and (diks[DIK_SPACE] and $80 <> 0) and (bullCount<MaxBulets-1) then
begin
Bulets[BullCount].Create(Player.Xpos,Player.Ypos,Player.GetDirection);
if BullCount< MaxBulets then
BullCount := BullCount + 1;
Player.SetPause(100);
ClearWiev;
end;
Непонятная ошибка
Код:
А вот продседура создания пули:
Код:
constructor TBullet.Create(x,y : integer; dir : Tdirection);
begin
XPos := x;
YPos := y;
Direction := dir;
LiveTime := MaxLiveTime;
Height := 32;
width := 32;
Time := 0;
Live := TRue;
SetRect(sprRect,XPos,YPos, XPos + width, YPos + Height);
end;
begin
XPos := x;
YPos := y;
Direction := dir;
LiveTime := MaxLiveTime;
Height := 32;
width := 32;
Time := 0;
Live := TRue;
SetRect(sprRect,XPos,YPos, XPos + width, YPos + Height);
end;
При нажатии пробела должна появиться пуля, вместо этого вылетает ошибка AccessViolation
блок try except ошибку не видит, но происходит смена на ошибку в библиотеке User32...
Уже неделю бьюсь, думаю, и ничего не приходит на ум. Мож вы что увидите...
Удаление блока помогает))), но как-то без пуль танк не убьешь)))
Код:
Bulets[BullCount].Create(Player.Xpos,Player.Ypos,Player.GetDirection);
100 пудово не так.... ;)
Кстати, проверь выход за границы массива.
Цитата:
Originally posted by hardcase
Парень, как вызывается конструктор в Делфи?
100 пудово не так.... ;)
Кстати, проверь выход за границы массива.
Парень, как вызывается конструктор в Делфи?
Код:
Bulets[BullCount].Create(Player.Xpos,Player.Ypos,Player.GetDirection);
100 пудово не так.... ;)
Кстати, проверь выход за границы массива.
Выхода нету, массив 0..49, Счетчик на 0,
констуртор у меня есть точно такойже рабочий, и тож с параметрами!!!! КОНСТУРТОР!!! эта таже продседура!
Цитата:
Originally posted by LaStRicK
Выхода нету, массив 0..49, Счетчик на 0,
констуртор у меня есть точно такойже рабочий, и тож с параметрами!!!! КОНСТУРТОР!!! эта таже продседура!
Выхода нету, массив 0..49, Счетчик на 0,
констуртор у меня есть точно такойже рабочий, и тож с параметрами!!!! КОНСТУРТОР!!! эта таже продседура!
Все я нашел ошибку - неправильный вызов))))
Цитата:
Originally posted by LaStRicK
Все я нашел ошибку - неправильный вызов))))
Все я нашел ошибку - неправильный вызов))))
Небось должно быть:
Bulets[BullCount]:=TBullet.Create(Player.Xpos,Player.Ypos,Player.GetDirection);
;)