Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
Создание своих типов... Найти похожие ветки
← →
Agent[007] (2003-09-10 15:04) [0]У нас есть тип(выстрел из базуки):
type
TBaz = class(TImageSpriteEx)
protected
procedure DoMove(MoveCount: Integer); override;
public
constructor Create(AParent: TSprite); override;
destructor Destroy; override;
end;
Создание происходит только так:
procedure TMain.FormCreate(Sender: TObject);
begin
with TBaz.Create(DXSpriteEngine.Engine) do
begin
PixelCheck:=True;
X:=px;
Y:=py;
Angle:=Trunc(90*0.711111111112);
end;
end;
Вопрос: почему это не работает в этом случае:
procedure TMain.DXDrawMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
with TBaz.Create(DXSpriteEngine.Engine) do
begin
PixelCheck:=True;
X:=0;
Y:=0;
Angle:=Trunc(90*0.711111111112);
end;
end;
← →
cyborg © (2003-09-10 15:15) [1]Не работает как?
Если вообще не обрабатывается событие при отпускании кнопки, то мышка была нажата не на форме.
← →
Agent[007] (2003-09-10 16:15) [2]У меня там есть ещё
if Button=mbRight then
begin
...
end;
И это обрабатывается...
← →
Agent[007] (2003-09-10 16:17) [3]У меня там есть ещё
if Button=mbRight then
begin
...
end;
И это обрабатывается...
PS: 0.711111111112 - коэффициент для нормальных поворотов
← →
Agent[007] (2003-09-11 06:02) [4]Народ! Ну помогите мне, бедняге...
← →
cyborg © (2003-09-11 08:18) [5]Ты покажи кусок кода, где не работает, а не вырезанную часть.
Координаты XY ставятся в 0, может поэтому ты их не видишь?
← →
Agent[007] (2003-09-11 13:00) [6]px и py = 0... А какой именно код?
← →
cyborg © (2003-09-11 16:26) [7]Из проекта, который не работает.
← →
Agent[007] (2003-09-11 19:49) [8]1000 строк...
← →
cyborg © (2003-09-11 21:08) [9]А, ну тогда на 17 строке ошибка.
← →
Agent[007] (2003-09-11 21:20) [10]Это юмор такой?
← →
cyborg © (2003-09-11 21:51) [11]Ты исходник покажешь или нет?
Давай DXDrawMouseUp сюда полностью.
← →
Agent[007] (2003-09-12 07:26) [12]
procedure TMain.DXDrawMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
begin
Rotat:=not(Rotat);
end;
if Button=mbLeft then
with TBaz.Create(DXSpriteEngine.Engine) do
begin
X:=320;
Y:=240;
Angle:=Trunc(90*0.711111111112);
end;
end;
Rotat - определяет повернут ли игрок спиной вперёд.
← →
cyborg © (2003-09-12 08:20) [13]Всё должно работать. Поставь в начале проигрывание звука Beep например или ещё какой нибудь, если будет бибикать, значит обрабатывается, затем его в mbLeft помести и опять послушай.
← →
MeF88 © (2003-09-12 10:30) [14]Есть такая полезные кнопки, как F7 и F8. А также есть такая очень полезная вещь, как брэкпоинты, breakpoints(что-то вроде). Вот их и юзай.
Кстати, а почему MouseUp, а не MouseDown.
P.S. Прикалывает меня эта тема. Похоже на случай, когда кто-то звонит по сотовому и спрашивает: "Ты где?" А он отвечает: "Здесь."
← →
Agent[007] (2003-09-12 19:11) [15]Оно обрабатывается... Но не создается... Я и так до вас это проверил...
К тому же картинка не создается вDXTimerTimer
иTPlayerSprite.DoMove
послеif is... in DXInput.States
...
← →
MeF88 © (2003-09-13 09:18) [16]Кстати, а как она у тя отрисовывается? Я DelphiX конечно не помню, но не лучше было бы создать Baz:TBaz и уже потом делать Baz:=TBaz.Create...
← →
Agent[007] (2003-09-13 09:36) [17]Так в примере на GameDev было... И так у меня ниче не тормозит...
К тому же так рациональнее, ести неизвестно, сколько объектов TBaz надо...
← →
Agent[007] (2003-09-13 20:52) [18].................................................................
Я все понял... надо бало Z:=1 написать...
.................................................................
А можете подсказать, как сделать зеркальное отражение TImageSprite?
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.021 c