Форум: "Игры";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Внизобработка клавишь в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c