Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание своих типов...


Agent[007] ©   (2003-09-10 15:04:00) 

У нас есть тип(выстрел из базуки):

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;


Agent[007]   (2003-09-13 20:52:00) [1]

.................................................................
Я все понял... надо бало Z:=1 написать...
.................................................................

А можете подсказать, как сделать зеркальное отражение TImageSprite?


Agent[007]   (2003-09-13 09:36:00) [2]

Так в примере на GameDev было... И так у меня ниче не тормозит...
К тому же так рациональнее, ести неизвестно, сколько объектов TBaz надо...


MeF88   (2003-09-13 09:18:00) [3]

Кстати, а как она у тя отрисовывается? Я DelphiX конечно не помню, но не лучше было бы создать Baz:TBaz и уже потом делать Baz:=TBaz.Create...


Agent[007]   (2003-09-12 19:11:00) [4]

Оно обрабатывается... Но не создается... Я и так до вас это проверил...
К тому же картинка не создается в DXTimerTimerи TPlayerSprite.DoMoveпосле if is... in DXInput.States...


MeF88   (2003-09-12 10:30:00) [5]

Есть такая полезные кнопки, как F7 и F8. А также есть такая очень полезная вещь, как брэкпоинты, breakpoints(что-то вроде). Вот их и юзай.

Кстати, а почему MouseUp, а не MouseDown.

P.S. Прикалывает меня эта тема. Похоже на случай, когда кто-то звонит по сотовому и спрашивает: "Ты где?" А он отвечает: "Здесь."


cyborg   (2003-09-12 08:20:00) [6]

Всё должно работать. Поставь в начале проигрывание звука Beep например или ещё какой нибудь, если будет бибикать, значит обрабатывается, затем его в mbLeft помести и опять послушай.


Agent[007]   (2003-09-12 07:26:00) [7]

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-11 21:51:00) [8]

Ты исходник покажешь или нет?
Давай DXDrawMouseUp сюда полностью.


Agent[007]   (2003-09-11 21:20:00) [9]

Это юмор такой?


cyborg   (2003-09-11 21:08:00) [10]

А, ну тогда на 17 строке ошибка.


Agent[007]   (2003-09-11 19:49:00) [11]

1000 строк...


cyborg   (2003-09-11 16:26:00) [12]

Из проекта, который не работает.


Agent[007]   (2003-09-11 13:00:00) [13]

px и py = 0... А какой именно код?


cyborg   (2003-09-11 08:18:00) [14]

Ты покажи кусок кода, где не работает, а не вырезанную часть.
Координаты XY ставятся в 0, может поэтому ты их не видишь?


Agent[007]   (2003-09-11 06:02:00) [15]

Народ! Ну помогите мне, бедняге...


Agent[007]   (2003-09-10 16:17:00) [16]

У меня там есть ещё

if Button=mbRight then
 begin
  ...
 end;

И это обрабатывается...

PS: 0.711111111112 - коэффициент для нормальных поворотов


Agent[007]   (2003-09-10 16:15:00) [17]

У меня там есть ещё

if Button=mbRight then
 begin
  ...
 end;

И это обрабатывается...


cyborg   (2003-09-10 15:15:00) [18]

Не работает как?

Если вообще не обрабатывается событие при отпускании кнопки, то мышка была нажата не на форме.


Наверх

Титульная страница Поиск, карта сайта Написать письмо