|
3D-программирование Вопросы, касающиеся программирования 3D мира |
04.06.2009, 14:15
|
#1
|
ПроЭктировщик
Регистрация: 14.05.2009
Сообщений: 101
Написано 31 полезных сообщений (для 67 пользователей)
|
Вопрос: Препятствия на пути игрока
Я управляю игроком с помощью CamPick'a. Т.е где кликаю по плэйну туда идёт игрок. Вопрос: Если на пути игрока есть припятствия например куб или стена или здание. Если я кликну за кубом или персонаж должен остановиться. Я так понимаю нужно использовать LinePick но непонимаю как именно.. Подскажите пожалуйста! Заранее огромное спасибо!
|
(Offline)
|
|
04.06.2009, 16:36
|
#2
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Вопрос: Препятствия на пути игрока
LinePick ( x#,y#,z#,dx#,dy#,dz#[,radius#] )
1) x,y,z - координаты персонажа
2) dx,dy,dz - вектор пика. например
dx=px-x dy=py-y dz=pz-z , где px,py,pz - координаты точки, куда должен дойти персонаж, а x,y,z - координаты персонажа
3) radius - толщина линии пика
|
(Offline)
|
|
04.06.2009, 18:03
|
#3
|
ПроЭктировщик
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений (для 22 пользователей)
|
Ответ: Вопрос: Препятствия на пути игрока
не понял, он у тебя должен дойти до препятствия и остановится или после клика просто не двигатся если есть препядствие ?
|
(Offline)
|
|
04.06.2009, 18:26
|
#4
|
ПроЭктировщик
Регистрация: 14.05.2009
Сообщений: 101
Написано 31 полезных сообщений (для 67 пользователей)
|
Ответ: Вопрос: Препятствия на пути игрока
оО Amatsu спасибо) Я фан твоей JRPG) Помоги мне правильно реализовать это сдесь :
MH1=MouseHit(1)
MH2=MouseHit(2)
MH3=MouseHit(3)
If MH1
CameraPick (Camera, MouseX(),MouseY())
If PickedEntity()=plane
PX#=PickedX ()
PZ#=PickedZ ()
PositionEntity PPick,PX,0,PZ
PointEntity(Player,PPick)
TurnEntity Player,0,180,0
EndIf
EndIf
If EntityDistance(Player,PPick)>.1
If AnimSeq(Player)=0
Animate Player,1,.5,1,10
EndIf
MoveEntity Player,0,0,-0.16
Else
If AnimSeq(Player)=1
Animate Player,2,1,0,10
EndIf
EndIf
Дополни пожалуйста как будет правильно! Заранее огромное тебе спасибо)
Sleepybear Мне нужно если перед игроком здание или любой обьект если я кликну на плейн дальше здания - он стоял на месте)
|
(Offline)
|
|
04.06.2009, 19:26
|
#5
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Вопрос: Препятствия на пути игрока
Я еще ни одной JRPG не сделал 0_о
По поводу кода, не силен я в разбирании чужих текстов. Но, если уж просишь, я бы сделал так:
MH1%=MouseHit(1)
MH2%=MouseHit(2)
MH3%=MouseHit(3)
If MH1 Then
CameraPick (Camera, MouseX(),MouseY())
If PickedEntity()=plane Then
PX#=PickedX ()
PZ#=PickedZ ()
PositionEntity PPick,PX,0,PZ
PointEntity(Player,PPick)
EndIf
EndIf
If LinePick(EntityX(Player,1),EntityY(Player,1),EntityZ(Player,1),EntityX(PPick,1)-EntityX(Player,1),EntityY(PPick,1)-EntityY(Player,1),EntityZ(PPick,1)-EntityZ(Player,1)) Then
If Sqr((PickedX()-EntityX(Player,1))^2+(PickedY()-EntityY(Player,1))^2+(PickedZ()-EntityZ(Player,1))^2)>0.16 Then
If AnimSeq(Player)<>1 Then Animate Player,1,.5,1,10
MoveEntity Player,0,0,0.16
Else
If AnimSeq(Player)<>0 Then Animate Player,2,1,0,10
EndIf
Else
If EntityDistance(Player,PPick)>0.16 Then
If AnimSeq(Player)<>1 Then Animate Player,1,.5,1,10
MoveEntity Player,0,0,0.16
Else
If AnimSeq(Player)<>0 Then Animate Player,2,1,0,10
EndIf
EndIf
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:22.
|