forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Переключение оружия (http://forum.boolean.name/showthread.php?t=1100)

smaller 04.07.2006 23:17

Переключение оружия
 
Пожалуйста объясните как сделать переключение,мне надо сделать пистолет и автомат
P.S В поиск и начать с тетриса не предлогать
ПОЖАЛУЙСТА!!!!!!!!:''((

SubZer0 05.07.2006 04:00

хммм... поиск полюбому мастдай, а тетрис не помешал бы... там тоже заковырок много... ну это чисто символически (аля правила: посылать в поиск - строго воспрещается)

значит так:

даже не могу представить, что в переключении может быть сложного...

берем переменную которая будет отвечать за тип заюзанного оружия. допустим weapon

присваиваем этой переменной изначально значение 0 (допустим код оружия "пистолет", код 1 будет "автомат".

а в теле главного цикла игры пишем

Код:

If KeyHit(57) Then weapon=1-weapon
итого получаем что при каждом нажатии пробела будет изменено значение переменной weapon то на ноль, то на 1

из этого уже можно кое-что выудить, но это еще не все... както нам надо перехватывать момент изменения оружия... для этого вводим дополнительную переменную, допустим "w" и присваиваем ей значение "weapon" до момента опроса клавиатуры на изменение оружия.

Код:

w=weapon
If KeyHit(57) Then weapon=1-weapon

теперь после этого пишем такое условие

Код:

If w<>weapon Then
 
; здесь помещаем код изменяющий оружие на оружие с кодом
;  хранящимся в переменной weapon

endif

вот впринципе и всего делов. ;)

если нужно будет много оружий, не два а например 5, то программа превратится примерно в это:

Код:

w=weapon

 If KeyHit(200) Then
  weapon=weapon+1
  If weapon>5 Then weapon=1
 EndIf

 If KeyHit(208) Then
  weapon=weapon-1
  If weapon<1 Then weapon=5
 EndIf

If w<>weapon Then

 код по смене оружия, номер оружия в переменной weapon

EndIf


smaller 05.07.2006 10:27

Ну это мне понятно,Спасибо! А вот чтоб при выборе пистолета были выстрелы пистолета,как звуки добавлять каждому оружию

SubZer0 05.07.2006 11:41

теперь переменную weapon можно гденить в самом начале объявить глобальной, чтоб ее отовсюду (из всех функций) было видно, делается это так:

Код:

Global weapon
потом пишется функция стрельбы оружием:

Код:

If KeyHit(57) ;можно заюзать любую кнопку (чисто для примера пробел)

 Select weapon
  Case 0

; описание стрельбы пистолетными пулями

  Case 1

; описание стрельбы автоматными пулями

 End Select
EndIf

теперь про звук:

чтобы воспроизвести звук, его, если он в другом формате, надо сперва привести в нормальный вид, тобишь переконвертировать в простой wav (Windows PCM).

далее его следует гденить в начале программы загрузить, делается это так:

Код:

Play=LoadSound("музыка.wav")
при этом файл звука должен лежать в каталоге с программой, если нет, то:
1. если в подкаталоге, то пишется относительный путь к файлу например "sounds/effect/shot.wav", таким образом становится неважно в каком каталоге лежит сама игра, звук будет воспроизведен в любом случае
2. если совсем в другом каталоге, то пишется полный путь начиная с диска например "c:\myprogs\game\sounds\shot.wav"

переменную Play нужно тоже объявить глобальной, чтоб ее отовсюду было видно, сделать это надо гденить в сааамом начале

Код:

Global Play
так, теперь мы звук загрузили. теперь переменная play содержит номер канала и таким образом "ссылку" на этот звук который теперь гдето в оперативной памяти. попробуем проиграть этот звук:

Код:

PlaySound Play
здесь просто указываем переменную в которую мы "загружали" звук командой LoadSound и всё


кроме этого есть еще команды:

StopChannel - остановить звук
PauseChannel - приостановить звук
ResumeChannel - возобновить приостановленный звук
ChannelPitch - изменить качество воспроизведения (частоту оцифровки)
ChannelVolume - установить громкость звука
ChannelPan - баланс (-1 левая колонка, 0 центр, 1 правая)
ChannelPlaying - посмотреть играет ли сейчас звук


:)

smaller 05.07.2006 14:34

Огромное спасибо,очень полезная ветка получилась, многим новичкам пригодится!!!:super:

SubZer0 05.07.2006 14:46

Цитата:

Сообщение от smaller
Огромное спасибо,очень полезная ветка получилась, многим новичкам пригодится!!!:super:

незачто, спрашивай если что... если не я, то тут есть еще куча народу которые ответят, а кто в поиск пошлет, того собственноручно застрелю из баномета ибо он нарушит первое святое правило.

PS

снизу каждого сообщения есть кнопочка "сказать спасибо" :@ не забываем юзать если ктонить ченить комунить сделал полезное. ;)

impersonalis 05.07.2006 16:29

http://www.boolean.name/forumdisplay.php?f=38
тут ещё перевод большого кол-ва команд.

..::SERGO::.. 05.07.2006 18:16

Цитата:

PS

снизу каждого сообщения есть кнопочка "сказать спасибо" :@ не забываем юзать если ктонить ченить комунить сделал полезное. ;)

[megaofftop]:lol: высокая самооценка[/megaofftop]

SubZer0 05.07.2006 23:47

так!

не думаем, что теги offtop позволяют нам флудить если флудить то сюда :ment:

хммм.. а я думал, что я заслужил один клик мышью :@

impersonalis 06.07.2006 01:06

У тебя их и так больше всех.
Я тоже знаешь ли тут без дела не сижу за статью про ФПМ ни одного спс не видел..


Часовой пояс GMT +4, время: 20:53.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot