|
3D-программирование Вопросы, касающиеся программирования 3D мира |
13.12.2011, 18:11
|
#1
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Смена оружия
пасаны, у меня есть два оружия(две модельки). требуется при прокручивании колеса мышки менять оружия. Помогите мне, пасаны, а то у меня ерунда получается.
|
(Offline)
|
|
13.12.2011, 18:23
|
#2
|
ПроЭктировщик
Регистрация: 11.10.2011
Адрес: Мурманск
Сообщений: 154
Написано 74 полезных сообщений (для 218 пользователей)
|
Ответ: Смена оружия
Ну есть же в хелпе всё =)
Graphics 640, 480, 0, 2
SetBuffer BackBuffer ()
Repeat
Cls
Select MouseZSpeed ()
Case -1
result$ = "Backwards"
Case 0
; result$ = "No movement"
Case 1
result$ = "Forwards"
End Select
Text 20, 10, "NOTE: MouseZSpeed () = 0 is not listed here, to avoid confusion!"
Text 20, 40, result$
Flip
Until KeyHit (1)
End
__________________
Острый психоз- это когда вы разговариваете с кошкой.
Острый галлюцинаторный психоз - вы говорите с кошкой, которой не существует.
Паранойя - вы боитесь ляпнуть лишнего при кошке.
Шизофрения - иногда у вас появляется кошка, которая разговаривает.
Неврастения - вы жалуетесь кошке, она молчит, игнорирует вас и это для вас невыносимо!!!
Навязчивый невроз - вы уверены, что кошка не одна и они что-то замышляют!
|
(Offline)
|
|
13.12.2011, 22:07
|
#3
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
я так и делал, только на if, только вот как именно оружие загружать? если загрузить заранее,
model1 = loadanimmesh("model1") model2 = loadanimmesh("model2") ... if mousezspeed() = -1 drawmodel = model1 elseif mousezspeed() = 1 drawmodel = model2 endif
то вот фигня получается, оружие не видно
drawmodel привязан к камере , какмера привязана к хитбоксу игрока
|
(Offline)
|
|
13.12.2011, 23:42
|
#4
|
Оператор ЭВМ
Регистрация: 15.11.2010
Сообщений: 43
Написано 19 полезных сообщений (для 45 пользователей)
|
Ответ: Смена оружия
Если ты привязываешь какую-нибудь модель к камере, то ты должен поставить её ПЕРЕД камерой. Если ты привязал модель к камере и модель была не в зоне видимости, то она при повороте камеры будет уезжать. И вообще почему бы не использовать Hideentity в таком простом случае? не повредит также переменная, хранящая номер отображаемой пушки и количество пушек всего. Для дальнейшего развития. А модели пушек запихнуть в массив
global NomerPushki=1
global VsegoPushek=2
global model(VsegoPushek)
global cam=createCamera()
positionentity cam,0,0,0
global model(1) = loadanimmesh("model1",cam) ;не забываем привязывать пушку к камере
positionentity model(1),0,0,-100
global model(2) = loadanimmesh("model2",cam);не забываем привязывать пушку к камере
positionentity model(2),0,0,-100
hideentity model(2)
...
if mousezspeed() = -1
hideentity(Model(NomerPushki))
NomerPushki=NomerPushki+1
If NomerPushki>vsegopushek then NomerPushki=1
showentity(Model(NomerPushki))
elseif mousezspeed() = 1
hideentity(Model(NomerPushki))
NomerPushki=NomerPushki-1
If NomerPushki<1 then NomerPushki=vsegopushek
showentity(Model(NomerPushki))
endif
Как-то так, под рукой нет блица, чтоб проверить
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.12.2011, 18:12
|
#5
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
Сообщение от A_Z
global NomerPushki=1
global VsegoPushek=2
global model(VsegoPushek)
global cam=createCamera()
positionentity cam,0,0,0
global model(1) = loadanimmesh("model1",cam) ;не забываем привязывать пушку к камере
positionentity model(1),0,0,-100
global model(2) = loadanimmesh("model2",cam);не забываем привязывать пушку к камере
positionentity model(2),0,0,-100
hideentity model(2)
...
if mousezspeed() = -1
hideentity(Model(NomerPushki))
NomerPushki=NomerPushki+1
If NomerPushki>vsegopushek then NomerPushki=1
showentity(Model(NomerPushki))
elseif mousezspeed() = 1
hideentity(Model(NomerPushki))
NomerPushki=NomerPushki-1
If NomerPushki<1 then NomerPushki=vsegopushek
showentity(Model(NomerPushki))
endif
|
костыль детектед
|
(Offline)
|
|
14.12.2011, 18:14
|
#6
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
Применил данный костыль, все работает, прикольно получилось
код смены оружия немного изменил
If MouseZSpeed() <> 0
player\weapon = player\weapon + 1
If player\weapon => 2
player\weapon = 0
Endif
EndIf
If player\weapon = 0
HideEntity player\model2
ShowEntity player\model
player\ats = LoadSound("sounds\1.wav")
ElseIf player\weapon = 1
HideEntity player\model
ShowEntity player\model2
player\ats = LoadSound("sounds\2.wav")
endif
только у меня еще проблема: оружие сделал в соответствии с моделями мира, и оно проходит сквозь текстуры. как это пофиксить?
и вот же я нуууб, не посмотрел в поиске, наплодил кучу тем
дайте мне бан на 2 часа
Последний раз редактировалось reumep, 14.12.2011 в 18:27.
Причина: я нуб
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.12.2011, 18:59
|
#7
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
и еще, пасаны: есть костевая анимация, но при импорте через пайплайн ее нет, что делать?
|
(Offline)
|
|
14.12.2011, 19:27
|
#8
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Смена оружия
читать хелп опять же, там все элементарно как банановая кожура:
сначала экспортишь меш, с в пайплайне убираешь галочку с Bone Mesh (или как их там) экспортишь моделю, а потом тупо в редакторе хайдишь модель оставляя ток кости, и экспортишь, поставив галочку там где ты ее убирал ) вуаля)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
14.12.2011, 20:09
|
#9
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
Сообщение от Colossus
читать хелп опять же, там все элементарно как банановая кожура:
сначала экспортишь меш, с в пайплайне убираешь галочку с Bone Mesh (или как их там) экспортишь моделю, а потом тупо в редакторе хайдишь модель оставляя ток кости, и экспортишь, поставив галочку там где ты ее убирал ) вуаля)
|
не работает
|
(Offline)
|
|
15.12.2011, 19:32
|
#10
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
|
(Offline)
|
|
15.12.2011, 20:49
|
#11
|
ПроЭктировщик
Регистрация: 11.10.2011
Адрес: Мурманск
Сообщений: 154
Написано 74 полезных сообщений (для 218 пользователей)
|
Ответ: Смена оружия
Сообщение от reumep
|
Ватафак =)) Это же спам =)) ты что в место хелпа спам читаешь =)) ну ты даешь!
__________________
Острый психоз- это когда вы разговариваете с кошкой.
Острый галлюцинаторный психоз - вы говорите с кошкой, которой не существует.
Паранойя - вы боитесь ляпнуть лишнего при кошке.
Шизофрения - иногда у вас появляется кошка, которая разговаривает.
Неврастения - вы жалуетесь кошке, она молчит, игнорирует вас и это для вас невыносимо!!!
Навязчивый невроз - вы уверены, что кошка не одна и они что-то замышляют!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.12.2011, 23:03
|
#12
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Смена оружия
Сообщение от reumep
|
Character=loadanimmesh("MyCharacter.b3d")
Charactermesh=findchild(Character,"Model")
CharacterSkeleton=findchild(Character,"Bones")
Animate Charactermesh,1,1,0,0;Анимируем модель с сохраненной анимацией
|
Щито за ламер это писал - анимировать надо главную кость, а не сетку.
|
(Offline)
|
|
15.12.2011, 23:49
|
#13
|
ПроЭктировщик
Регистрация: 11.10.2011
Адрес: Мурманск
Сообщений: 154
Написано 74 полезных сообщений (для 218 пользователей)
|
Ответ: Смена оружия
Не можно и так анимировать, только вот… если бы он написал статью и раскрыл бы при этом тайну какую, а тут просто у него что-то там не получилось и он решил через задний проход всё сделать.
Тут на форуме есть поиск достаточно ввести Animate чтобы все тайны этого слова сочетания открылись =))
__________________
Острый психоз- это когда вы разговариваете с кошкой.
Острый галлюцинаторный психоз - вы говорите с кошкой, которой не существует.
Паранойя - вы боитесь ляпнуть лишнего при кошке.
Шизофрения - иногда у вас появляется кошка, которая разговаривает.
Неврастения - вы жалуетесь кошке, она молчит, игнорирует вас и это для вас невыносимо!!!
Навязчивый невроз - вы уверены, что кошка не одна и они что-то замышляют!
|
(Offline)
|
|
16.12.2011, 12:24
|
#14
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: Смена оружия
Сообщение от reumep
Применил данный костыль, все работает, прикольно получилось
код смены оружия немного изменил
If MouseZSpeed() <> 0
player\weapon = player\weapon + 1
If player\weapon => 2
player\weapon = 0
Endif
EndIf
If player\weapon = 0
HideEntity player\model2
ShowEntity player\model
player\ats = LoadSound("sounds\1.wav")
ElseIf player\weapon = 1
HideEntity player\model
ShowEntity player\model2
player\ats = LoadSound("sounds\2.wav")
endif
только у меня еще проблема: оружие сделал в соответствии с моделями мира, и оно проходит сквозь текстуры. как это пофиксить?
|
Зачем загружаешь звук постоянно? А старый не сгружаешь.
Массивом делайте группу орудий.
Сквозь текстуры проходит только трол. А в твоем случае EntityOrder ent,-1.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.12.2011, 16:32
|
#15
|
Знающий
Регистрация: 04.11.2011
Сообщений: 285
Написано 66 полезных сообщений (для 159 пользователей)
|
Ответ: Смена оружия
entityorder не работает
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:20.
|