Форум: "Игры";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];
ВнизВ очередь!!! Найти похожие ветки
← →
Jackson (2002-10-14 23:20) [0]Люди,как сделать,чтобы пуля стреляла очередями?
← →
Ketmar (2002-10-15 15:25) [1]сложно. пуля по определению стрелять не может. она только летает и (иногда) куда-то попадает. полагаю, проще всего выкинуть пулю и купить пулемет. должно помочь.
Satanas Nobiscum! 15-Oct-XXXVII A.S.
← →
Jackson (2002-10-15 22:08) [2]исчёрпывающий ответ...
← →
Ketmar (2002-10-16 10:28) [3]какой вопрос, такой и ответ. чем вы, собственно, не довольны?
Satanas Nobiscum! 16-Oct-XXXVII A.S.
← →
Axis_of_evil (2002-10-16 10:49) [4]Чтобы Пуля(мет) стреляло очередями делаешь
LastShootTime: Integer; //Cardinal
Нажали клавишу стрельбы:
if (GetTickCount - LastShootTime) >= dt then
Выстрел = Труп.
dt - промежуток междувылетами пуль = 1/Скорострельность.
← →
misterix (2002-10-16 12:36) [5]Ну блин хитрая пуля. Чо за гамулька? Дай погамиться.
← →
SI-riuss (2002-10-16 15:52) [6]Вопрос: когда пуля стреляет, то что из нее вылетает? Да еще очередями.
← →
Jackson (2002-10-16 22:43) [7]Не придирайтесь к словам!!!
Axis_of_evil - с меня магарыч!!!
← →
SI-riuss (2002-10-17 12:32) [8]Я не придираюсь. Я просто нифига не понял, чего ты хочешь? Только по-русски.
← →
Axis_of_Evil (2002-10-17 16:03) [9]Простите мое незнание:
Чего за магарыч?
Ketmar, догадайся, чего я тебе хочу сказать, да вот цензура ...
...л издеваться!
А ,ты, Jackson, посмотри пример из одной изначальных версий DelphiX.
← →
Ketmar (2002-10-17 20:20) [10]2Axis_of_Evil:
благородный дон чем-то недоволен? пишите в мыло, я его не скрываю.
если вы не заметили, я не издеваюсь. я отвечаю в стиле заданного вопроса. на грамотно заданные вопросы я отвечаю (если отвечаю) соответствующе. кто же доктор спрашивающим, коли они не могут сформулировать вопрос так, чтобы на него можно было ответить?
Satanas Nobiscum! 17-Oct-XXXVII A.S.
← →
Jackson (2002-10-17 22:41) [11]Si-riuss,
Мне надо: нажимаешь на кнопочку - вылетают пули с промежутками между ними.
У меня сейчас: нажимаешь на кнопочку - летит сплошная линия этих пуль!!!
Я надеюсь, ты понял мою проблему!!!
Axis_of_Evil,
(за магарыч забудь:))У меня всё равно не получается!Продолжает идти сплошная линия.Я уже и документацию читал,сделал всё,как у них,и не получается - или вообще нихрена не вылетает, или линия сплошная!Я уже не знаю,что делать...
← →
Ketmar (2002-10-18 10:28) [12]код от Axis_of_Evil, чуть подправленный:
var
LastShootTime: Integer = 0; //Cardinal
if Keys[K_SHOOT] then
begin
// Нажали клавишу стрельбы:
if (GetTickCount - LastShootTime >= dt) then
begin
// уже можно выпускать новую пулю?
LastShootTime := GetTickCount;
DoShoot;
end;
при dt, равном, к примеру 1000 промежуток между выстрелами будет >= одной секунде. comprenez vous?
Satanas Nobiscum! 18-Oct-XXXVII A.S.
← →
Axis_of_Evil (2002-10-18 11:53) [13]2 Ketmar(Getman):
1)В алкогоритме ты прав, упустил я строку
2)Ну тыж понял что он спросил
← →
SI-riuss (2002-10-20 22:55) [14]Ну сделай ты их штук пять. Сколько их успеет вылететь пока первая достигнет самой отдаленной цели? После выхода последней пули первая пусть возвращается в боекомплект. И далее опять по кругу.
← →
Jackson (2002-10-21 22:56) [15]ОГО!!!!Это 3.14здец!!!Нихрена не получается!!!Я в шоке!!!Делал всё , как в справочнике, делал как в примере,делал как Вы мне советовали - НИХРЕНА!!!!Или вобще не стреляет,или сплошная линия... Пойду застрелюсь....
← →
Ketmar (2002-10-22 09:59) [16]2Jackson:
тогда точно - застрелиться. это, видимо, ошибка не в коде, а в ДНК...
Satanas Nobiscum! 22-Oct-XXXVII A.S.
← →
Axis_of_Evil (2002-10-24 14:29) [17]2 Ketmar:
10 баллов, Das Stimmt!
← →
pasha676 (2002-10-24 15:43) [18]Не удивлюсь если паренек сделал все буквально:
var
LastShootTime: Integer = 0; //Cardinal
if Keys[K_SHOOT] then
begin
// Нажали клавишу стрельбы:
if (GetTickCount - LastShootTime >= dt) then
begin
// уже можно выпускать новую пулю?
LastShootTime := GetTickCount;
DoShoot;
end;
То есть объявил LastShootTime как локальную и каждый раз у него
GetTickCount - LastShootTime ессесно получается больше dt :)
← →
Axis_of_evil (2002-10-24 16:20) [19]Если он так написал действительно,
то с ДНК у него проблемы,
но КАК он в I-NET попал ?
← →
Jackson (2002-10-24 21:52) [20]Я описывал эту переменную в описании класса TPlayerSpite.Может её надо,как глобальную?
Axis_of_Evil
Нашёл по карте вход!
← →
pasha676 (2002-10-25 09:35) [21]Джэксон, ты меня радуешь :). То есть для каждого объекта этого класса будет своя переменная :). Первая пуля со своей. Она равна нулю. Вторая пуля со своей, она опять равна нулю, выражение GetTickCount - LastShootTime следовательно будет равно GetTickCount - т.е. очень большое. Как следствие пуля летит сразу. Создаешь третью пулю у нее LastShootTime создается опять заново и опять равна нулю... Понял в чем ошибка и где LastShootTime надо описать?
← →
Alek Aaz (2002-10-25 10:50) [22]Jackson Мож кусок своего кода покажешь. Проще ткнуть носом чем самому сочинять...
← →
Jackson (2002-10-27 21:48) [23]Описание класса:
TPlayerSprite = class(TImageSprite)
private
lngpolet: integer;
oldlngpolet: integer;
protected
procedure DoMove(MoveCount:Integer);override;
end;
Процедура:
Procedure TPlayerSprite.DoMove(MoveCount: Integer);
begin
inherited DoMove(MoveCount);
if isLeft in Form1.DXInput1.States then x:= x-5;
if isRight in Form1.DXInput1.States then x:= x+5;
if x<0 then x:=0;
if isUp in Form1.DXInput1.States then
begin
if lngpolet - oldlngpolet>=250 then
begin
Inc(lngpolet);
with TPlayerFa.Create(Engine) do
begin
PixelCheck := True;
( "Pula") Описание класса:
TPlayerSprite = class(TImageSprite)
private
lngpolet: integer;
oldlngpolet: integer;
protected
procedure DoMove(MoveCount:Integer);override;
end;
Процедура:
Procedure TPlayerSprite.DoMove(MoveCount: Integer);
begin
inherited DoMove(MoveCount);
if isLeft in Form1.DXInput1.States then x:= x-5;
if isRight in Form1.DXInput1.States then x:= x+5;
if x<0 then x:=0;
if isUp in Form1.DXInput1.States then
begin
if lngpolet - oldlngpolet>=250 then
begin
Inc(lngpolet);
with TPlayerFa.Create(Engine) do
begin
PixelCheck := True;
Image := form1.DXImageList1.Items.Find("Pula");
x:= Self.X+Self.Width - 40;
y:= Self.Y+Self.Height - 80;
Width:= Image.Width;
Height:= Image.Height;
end;
end;
end;
if y>= form1.DXDraw1.SurfaceHeight - image.Height then
y:= form1.DXDraw1.SurfaceHeight - image.Height;
if x>= form1.DXDraw1.SurfaceWidth - image.Width then
x:= form1.DXDraw1.SurfaceWidth - image.Width;
if y<= 0 then
y:=1;
if x<=0 then
x:=1;
lngpolet:= lngpolet + MoveCount;
end;
ПОМОГИТЕ!!!ПЛИЗ!!!
← →
pasha676 (2002-10-28 09:26) [24]Никогда не делал спрайтовые феньки - но вот навскидку:
1) И где мы задаем oldlngpolet? Начальное?
2) Inc(lngpolet); - это что за хрен с сутане?
3) ОТкуда задержка в 250? Сколько это будет физически в мс?
4) Для временные задержек, имхо лучше считать не movecount, а GetTickCount, ибо насколько я понимаю мувекаунты могут быть привязаны к аппаратке, а тикикаунты все же привязаны ко времени.
← →
Alek Aaz (2002-10-28 12:20) [25]Попробуй
...
if x<=0 then
x:=1;
oldlngpolet:=lngpolet;
lngpolet:= lngpolet + MoveCount;
end;
Он у тебя лепит когда пытаешься в перед лететь?
Вообще как то все странно выглядит.
Своими словами опиши как ты это понимаешь.
Я понимаю так, кнопка нажата - создаешь спрайт-пулю и посылаешь его к цели. Через некоторое время ее полета, она "гибнет" или попадает в цель. У тебя я чей-то этого не вижу.
← →
pasha676 (2002-10-28 14:17) [26]Короче, Jackson, ты скопировал как я понял кусок кода с www.gamedev.ru; обрати внимание на (с того же сайта)
with TPlayerFa.Create(Engine) do
begin
PixelCheck := True;
( "Pula") Короче, Jackson, ты скопировал как я понял кусок кода с www.gamedev.ru; обрати внимание на (с того же сайта)
with TPlayerFa.Create(Engine) do
begin
PixelCheck := True;
Image := form1.dxImageList1.Items.Find("Pula");
X := Self.X+Self.Width -40;
Y := Self.Y+Self.Height -80;
Width := Image.Width;
Height := Image.Height;
end;
oldlngpolet := lngpolet; //после создания пули - последняя становится первой - тут тут читай!!!!!
end;
← →
Jackson (2002-10-28 16:04) [27]pasha676,
Ууупппссс!!!Ты прав...Теперь получилось...Благодарю!!!
← →
Axis_of_Evil (2002-10-29 16:39) [28]Союз нерушимый республик свободных
Собой объединили великие
pasha676, Alek Aaz, Ketmar, SI-riuss, Axis_of_Evil
← →
Сенченков паша (2003-03-26 13:14) [29]всееееееееееее урооооддддддды!!!!!!!!!!!!
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.009 c