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

Вниз

В очередь!!!   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.027 c
4-96480
shark
2003-07-26 19:19
2003.09.29
FindWindow(... , ...)


14-96427
Dimich1978
2003-09-10 09:50
2003.09.29
Ну блин Церковь во дает!!!


6-96318
IGORYOK
2003-07-31 13:33
2003.09.29
Как получить управление над адресной книгой в OutlookExpress


14-96401
Князь Мышкин
2003-09-11 00:16
2003.09.29
Все. Бросаем есть. Прямо сейчас(23:30). Ни одного пончика.


6-96335
IBSN
2003-08-01 11:05
2003.09.29
ClientSocket