Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
14-96348
Феликс
2003-09-09 21:24
2003.09.29
Подскажите баннерообменную сеть (100x100)


6-96325
Кодер
2003-07-30 20:54
2003.09.29
Кто есть кто? (TServerSocket)


3-96086
Nick-From
2003-09-09 23:06
2003.09.29
Не могу создать домен


14-96382
cyborg
2003-09-11 17:57
2003.09.29
Как у FreePascal-я передаются параметры функции?


1-96202
Vasily_Ts
2003-09-14 13:27
2003.09.29
Вопрос по серверам MS Office закладка компонентов Servers





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский