forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Как всегда смена оружия (http://forum.boolean.name/showthread.php?t=9390)

Ganociy 09.10.2009 21:52

Как всегда смена оружия
 
Хм... Тут я сам неожидая столкнулся с вышеназванной проблемой.
Вот смотрите у меня есть два вида оружия (пока два) : пистолет и молот.
и мне хочется сделать
Function CreatePistol (x#,y#,z#)
pistol=LoadAnimMesh ("pistol.b3d")
fire=LoadAnimSeq (pistol,"fire.b3d")
PostionEntity pistol,x#,y#,z#
ScaleEntity pistol,0.5,0.5,0.5
EndFunction
(к коду не придирайтесь , писал в сокращении)

Второй выгляди так же , но CreatPistol (x#,y#,z#) заменено на CreateMolot(x#,Y#,z#)ну и вмест pistol=LoadMesh , molot=Loadmesh
ладно это не важно .

Важно то что как реализовать их смену ?
Ведь перед репитом есть такая загагулина , как cam=CreateCamera(pistol)
Вот как реализовать смену??? Объясните. И если можете хоть кусочек кода выложите.

DeadElf 09.10.2009 22:44

Ответ: Как всегда смена оружия
 
самое простое:

в начале
Global weapon
в цикле
If weapon=0 then
showentity molot
hideentity pistol
elseif weapon=1
showentity pistol
hideentity molot
endif
if keyhit(2) then weapon=0
if keyhit(3) then weapon=1

можно доработать, даже сделать так, чтобы оружие как бы снизу выезжало, как будто реально меняешь, но это уже детали

Nuprahtor 09.10.2009 23:01

Ответ: Как всегда смена оружия
 
Оружие лучше делать типом
Type Weapon
Field Weapon_name% -тут текстовое название оружия (нужно для проверок)
Field Weapon_model - Здесь модель
Type End

Загружаем все модели оружия. Затем проверяем переменную weapon\weapon_name
Если переменная равна "Pistol"
В поле weapon\weapon_model загружаем модель пистолета
Если "Hammer" - загружаем модель молота.
Это основной алгоритм, у меня успешно работает.

Цитата:

можно доработать, даже сделать так, чтобы оружие как бы снизу выезжало, как будто реально меняешь, но это уже детали
Ну, это либо анимацией, либо вручную менять позицию оружия.
Заведя в типе weapon поле weapon_state можно это сделать -
Если weapon_state равен "Drawing" - играем анимацией доставания, по окончании анимации weapon_state меняем на нужный (типа "Ready" и т.п)

NitE 11.10.2009 00:51

Ответ: Как всегда смена оружия
 
ещё проще
if weapon=molotok and keyhit(x)
weapon=pistol
delete molotok
createpistol()
elseif
weapon=pistol and keyhit(x)
weapon=molotok
delete pistol
createmolotok()
endif

ABTOMAT 11.10.2009 01:17

Ответ: Как всегда смена оружия
 
Нее, оружия должны быть типами иначе это будет говнокод)

Dream 11.10.2009 15:46

Ответ: Как всегда смена оружия
 
а не проще привязывать оружие к камере а не камеру к оружию?


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

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