Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

обработка клавишь в DelphiX   Найти похожие ветки 

 
@ndrew ©   (2003-10-13 10:18) [0]

Доброго времени суток! Уважаемые помогите.........

 if isButton1 in Form1.DXInput1.States then
  begin
   if patr<=0 then
     begin
       form1.Timer3.Enabled:=true;
       exit;
     end;
   rast:=rast+1;
      if rast = 10 then
       begin
        rast:=0;


такой код у двух игроков (обработка выстрела), почему одновременно не срабатывает у обоих!?!?!? не пойму....подскажите


 
cyborg ©   (2003-10-13 10:24) [1]

Чего-то непонятный код, чего там делается описал бы чтоли? :)


 
@ndrew ©   (2003-10-13 11:15) [2]


if isButton1 in Form1.DXInput1.States then  // если нажата, то
 begin
  if patr<=0 then                  // если патроны кончились
    begin
      form1.Timer3.Enabled:=true; // вкл. таймер, по таймеру появляются призы с патронами
      exit;
    end;
  rast:=rast+1;  
     if rast = 10 then
      begin
       rast:=0;


 
cyborg ©   (2003-10-13 11:26) [3]

И где тут выстрелы двоих?
что за rast?

Так у тебя постоянно таймер включается, когда патронов нет.


 
@ndrew ©   (2003-10-13 11:30) [4]

это пример для одного игрока, для второго - точно такой же...
rast - это расстояние между патронами, ну чтобы сплошной линией не стреляли, это все работает без проблем, а вот одновременно не работает...почему не пойму...


 
cyborg ©   (2003-10-13 11:39) [5]

Ты извини, но телепатией я не владею, как и многие на этом форуме.
Ты нормально приведи код где не работает.
Поставь, например, beep в месте, где обрабатывается выстрел, обрабатывается ли он вообще?


 
@ndrew ©   (2003-10-13 11:48) [6]

должно вообще-то выглядеть так:

.
.
.

   end;
 rast:=rast+1;  
    if rast = 10 then
     begin
      rast:=0
.
.
.

т.е. на этом код выстрела не кончается...
если нужно все, то вот:

Procedure TPlayertwo.DoMove(MoveCount: Integer);
begin
if cur_life2<=0 then
  begin
   Dead;
   life2:=life2-1;
   Form1.Timer2.Enabled:=true;
    case life2 of
     2 :  form1.Image11.Visible:=false;
     1 :  form1.Image10.Visible:=false;
     0 :  form1.Image9.Visible:=false;
    end;
  end;
 if  y >= form1.DXDraw1.SurfaceHeight-image.Height then
 y := form1.DXDraw1.SurfaceHeight-image.Height;
 if  x >= form1.DXDraw1.SurfaceWidth-image.Width-159  then
 x := form1.DXDraw1.SurfaceWidth -image.Width-159;
 if  y <= 0 then
 y := 1;
 if  x <= 0 then
 x:=1;
  if isButton2 in Form1.DXInput1.States then
     begin
      Player2.X := Player2.X-3-uskor;
      Player2D  := 1;
      Player2.Image := Form1.DXImageList1.Items.Find("t_l2");
      width := Player2.Image.Width;
      height :=Player2.Image.Height
     end;

  if isButton3 in Form1.DXInput1.States then
     begin
      Player2.X := Player2.X+3+uskor;
      Player2D  := 2;
      Player2.Image := Form1.DXImageList1.Items.Find("t_r2");
      width := Player2.Image.Width;
      height :=Player2.Image.Height
     end;

  if isButton4 in Form1.DXInput1.States then
     begin
      Player2.Y := Player2.Y-3-uskor;
      Player2D  := 3;
      Player2.Image := Form1.DXImageList1.Items.Find("t_u2");
      width := Player2.Image.Width;
      height :=Player2.Image.Height
     end;

  if isButton5 in Form1.DXInput1.States then
     begin
      Player2.Y := Player2.Y+3+uskor;
      Player2D  := 4;
      Player2.Image := Form1.DXImageList1.Items.Find("t_d2");
      width := Player2.Image.Width;
      height :=Player2.Image.Height
     end;
   FrameCount := FrameCount+1;
 if isButton6 in Form1.DXInput1.States then
  begin
   if patr2<=0 then
     begin
      Form1.timer3.Enabled:=true;      
      exit;
     end;
   rast:=rast+1;
      if rast = 10 then
       begin
        rast:=0;
      with TPlayer2Fa.Create(form1.DXSpriteEngine1.Engine) do
       begin
         patr2:=patr2-1;
         form1.ProgressCyl3.Position:=patr2;
         Image  := Form1.DXImageList1.Items.Find("Pulya_1");
         Width  := Image.Width;
         Height := Image.Height;
          X := Player2.X + Player2.Image.Width /2;
          Y := Player2.Y+20;
          Z := 2;
          Direction2:=Player2D;
       end
       end
        else exit;
         FrameCount := 0;
         BulletCount:=BulletCount+1;
    end;
   Collision;
end;


 
@ndrew ©   (2003-10-13 13:09) [7]


> cyborg ©   (13.10.03 11:26) [3]
> что за rast?

спасибо cyborg, а я что-то особо не придал значения....
переменную локализовал, и все заработало.....
еще раз спасибо.....



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

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-1080412965
Veon
2004-03-27 21:42
2004.04.18
Как создать форму????


6-1075888689
arhis
2004-02-04 12:58
2004.04.18
Вопрос по TCP/IP а может я вообще ничего не понимаю.


14-1080303245
cypher
2004-03-26 15:14
2004.04.18
Филисофия программирования


1-1080829677
Анатолий Ксюндзский
2004-04-01 18:27
2004.04.18
TListView


8-1072285883
SkySat
2003-12-24 20:11
2004.04.18
OpenGL