forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   управление в RPG (http://forum.boolean.name/showthread.php?t=5535)

JeSss 09.01.2008 23:11

управление в RPG
 
Как сделать управление МЫШЬЮ, как это бывает во многих РПГ? Ну а если поточней то ходьбУ!

dector 10.01.2008 00:01

Ответ: управление в RPG
 
Аффатар - юзай blitzetcetera

Суперский журнал!

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 2 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

Raiter 10.01.2008 01:56

Ответ: управление в RPG
 
А ещё юзай поиск по форуму. Обсуждалось уже ... ыыы.... трудно подсчитать даже сколько раз :)

JeSss 10.01.2008 15:58

Re: Ответ: управление в RPG
 
Цитата:

Сообщение от dector (Сообщение 73572)
*** скрытый текст ***

Пишет неудалось найти узел!

H@NON 11.01.2008 23:43

Ответ: управление в RPG
 
Это делается очень просто. Объясняю. Для начала присвоим террейну по которому мы хотим ходить мод 2 EntityPickMode terrain, 2 и еще обозначим нашему террейну имя, чтобы мы смогли его отличить от остальных, при пике NameEntity terrain, "terrain". Терь мы сможем находить пики по полигонно. Далее найдем нашу конечную точку пути. Делается так:
Код:

If mousehit(1) then ent = CameraPick(camera, Mousex(), Mousey())
Это пишеться в главный цикл, перед командой упдейтВорлд. теперь переменая ent нам возратит пикнутый энити, либо если мы никуда не попали, то 0. Далее будем делать условие: если мы попали куда-либо и если мы попали именно в террейн, то ставим наш указатель( это будет просто объект, к которому мы потом заставим перемещаться персонажа ) в точку пика.
Код:

If ent<> 0 then
  pickname$ = EntityName(ent)
  If pickname$="terrain" then
    PositionEntity pointer, PickedX(), pickedY(), pickedz()
  Endif
Endif

Вот и почти все. Нам осталось передвинуть нашего перса к пункту его назначения(pointer).
Код:

If entityDistance(player, pointer) <=1 then
PointEntity player, pointer
moveentity player, 0, 0, 1

ЗЫ ниручаюсь что все сделал правильно, ибо спать хочеться, и время поджимает, так что ошибки исправте сами:)

dector 12.01.2008 00:09

Ответ: Re: Ответ: управление в RPG
 
Цитата:

Сообщение от JeSss (Сообщение 73668)
Пишет неудалось найти узел!

У меня все нормально. ;)

JeSss 12.01.2008 19:06

H@NON , спс, ща опробую...
А ты пока сам ошибки ищи)

а чё за терайны и т.д. я прост в терайнах не врум врум...)(
Но сёравно попробую чёнить замутнуть)

dector 12.01.2008 19:23

Ответ: управление в RPG
 
Чувак - склеивай мессаги!


Если у тебя есть желание набить кол-во сообщений -прекращай это делать. Луче зайди на blitzetcetera.org и почитай там! Там есть много! Read The Folowing Manual!!!

Зайди на http://blitzetcetera.org/index.php/Список_статей и найди статью: "Трудности передвижения (программирование движков)" (она снизу, раздел:" обзоры"). И почитай!(2 раздел)

Прямой линк на статью: http://blitzetcetera.org/index.php/Т...вание_движков)

Прямой линк на статью: http://blitzetcetera.org/index.php/Т...BB. D1.8F_RPG

И ВСЕ пашет и открывается!

====
ЗЫ: террайн - земля(ланшафт(без деревьев и т.п.)) - форма рельефа!

JeSss 12.01.2008 20:07

Re: управление в RPG
 
у меня раньше заходил а теперь нед...
Кста, можете дать функцию создания терайна и т.д. я делал терайн=креатеТерайн а потом про мод Номер 2 и пишет про параметры чёт..

Raiter 12.01.2008 20:15

Ответ: управление в RPG
 
Читай справку и будет тебе счастье!

JeSss 12.01.2008 20:17

Re: управление в RPG
 
а во, на сайт зашёл без ошибок, тока там 1 еврейство, я нечё непонял...

jimon 12.01.2008 21:03

Ответ: управление в RPG
 
JeSss
ну если ты даже то не понял, не подумываешь о том чтобы бросить программирование ?

JeSss 12.01.2008 21:27

А не, я сделал тока по другому способу... там заметил 1 тему)
Ток терь пытаюсь сделать чтобы анимация проигравалась во время передвижения до точки...
jimon: нееа...)

а кста, как ещё сделать чтобы сделать чтобы при 2-ом щелчке мыши чел передвигалсо БЫСТРЕЙ?

IGR 12.01.2008 22:50

Ответ: управление в RPG
 
Цитата:

а кста, как ещё сделать чтобы сделать чтобы при 2-ом щелчке мыши чел передвигалсо БЫСТРЕЙ?
- поставь счетчик кликов !! (ClickCount = 0)
- проверяй значение счетчика !! (If ClickCount = 2 Then ... )
- увеличивай скорость передвижения !! (MoveSpeed = 2*MoveSpeed )
- незабудь поставить ограничение на колличество кликов ( If ClickCount = 2 Then ClickCount = 2 )

dector 12.01.2008 23:07

Ответ: управление в RPG
 
надо ставить детали терайна. и растягивать его по оси у.

а вообще рекомендую не юзать! фпс садит ужос! грузи меш!

JeSss 12.01.2008 23:13

Re: управление в RPG
 
IGR
Непомогло...

dector 12.01.2008 23:19

Ответ: управление в RPG
 
выложи сюда код. и рекомендую начать с чего-то простого.

хелло ворлд писал?

Tadeus 13.01.2008 00:25

Ответ: управление в RPG
 
Цитата:

Сообщение от dector (Сообщение 74088)
надо ставить детали терайна. и растягивать его по оси у.

а вообще рекомендую не юзать! фпс садит ужос! грузи меш!

:4to: Все в точности наоборот

tormoz 13.01.2008 00:31

Ответ: Re: управление в RPG
 
Цитата:

Сообщение от JeSss (Сообщение 74091)
IGR
Непомогло...

И непоможет
Ты уже задолбал глупыми вопросами: берешся за вещи, к которым просто не готов.
Не знаешь синтаксиса, приемов блитца
Не имеешь никакого опыта
Не способен самостоятельно решить даже мелкую проблему.

Иди учись.
Пройди курс молодого бойца на блитццетера сначала.
Пока этого не сделаешь - толку не будет.

Taugeshtu 13.01.2008 00:49

Ответ: управление в RPG
 
Солидарен с tormoz'ом.
Почему:
советую начать-бросить с пару (десятков) СВЕРХМЕЛКИХ проектов. Что это? Ну, это вроде партикл-эмиттера (кстати, на начальных этапах ОЧЕНЬ круто промывает моск, или его заменитель )какашки( ), или же статичные (без геймплея, просто как скринсейвер) SpaceInvaders (c). Действительно может помочь.

JeSss 13.01.2008 19:50

Re: Ответ: Re: управление в RPG
 
Цитата:

Сообщение от tormoz (Сообщение 74107)
И непоможет
Ты уже задолбал глупыми вопросами: берешся за вещи, к которым просто не готов...Не способен самостоятельно решить даже мелкую проблему...

Тут ты ошибаешся, я когда то делал FPS, но забросил решил проверить способнисти создания РПГ, если хочет могу ЛИЧНО для тебя доделать и выложить ДЭМУ той FPS'ки?...
А эту проблему я уже решил...

jimon 13.01.2008 20:14

Ответ: управление в RPG
 
JeSss
сделай играбельную демку rpg без инета :)
это и называется самостоятельно

Raiter 13.01.2008 22:14

Ответ: управление в RPG
 
Цитата:

если хочет могу ЛИЧНО для тебя доделать и выложить ДЭМУ той FPS'ки?...
Хочу это видеть!

tormoz 13.01.2008 22:46

Ответ: управление в RPG
 
С теми вопросами, что ты озадачиваешь форум, и с той понятливостью, думаю что шуттер будет не твой, а скопипасченый с чужого кода.
Иди учи АЗЫ
потом берись за большие проекты

Android 13.01.2008 23:33

Ответ: управление в RPG
 
Цитата:

Сообщение от IGR (Сообщение 74086)
- незабудь поставить ограничение на колличество кликов ( If ClickCount = 2 Then ClickCount = 2 )

- незабудь поставить ограничение на колличество кликов ( If ClickCount = 2 Then ClickCount = 0 );)

HolyDel 14.01.2008 00:42

Ответ: управление в RPG
 
Android, ты неправ.
именно If ClickCount = 2 Then ClickCount = 2

Taugeshtu 14.01.2008 01:26

Ответ: управление в RPG
 
Т0же жажду узреть-с сей-с шутер-с. Очень жажду. Прям вот сильно жажду. JeSss, если сделаешь играбельную демку шутера _СВОИМ КОДОМ_ )no place for copy-pastors!!( - поставлю памятник. Трехмерный. Не шучу. И плюс дюжина "полезно".
Но только при условии оригинальности кода (будет проверяться тщательно) и играбельности. Никакие "а вот тут я просто нидаделал" и "патамушта дема, вот и баги" не принимаются. Даже демо обязана быть хорошо отлаженной и комплексной. Баги позволяются бете, но не демке.
g00d лук, джедай!

Android 14.01.2008 12:58

Ответ: управление в RPG
 
Цитата:

Сообщение от HolyDel (Сообщение 74231)
Android, ты неправ.
именно If ClickCount = 2 Then ClickCount = 2

Да? Надо было все таки заглянуть в справку:pardon:

Raiter 14.01.2008 14:13

Ответ: управление в RPG
 
А куда девался автор? Народ ждёт :)

avel 14.01.2008 19:54

Ответ: управление в RPG
 
Цитата:

хелло ворлд писал?
dector жжошь! :)
tormoz+1
Android и HolyDel народ, вы оба не правы... :) ему после двойного клика надо мышу обнулять, так что: If ClickCount = 2 Then ClickCount = 0

а вообще это все давно уже обсуждалось и не раз!
демку фпс, думаю, стоит доделать, ибо самое важное там явно было упущено...

Raiter 15.01.2008 02:08

Ответ: управление в RPG
 
Цитата:

демку фпс, думаю, стоит доделать, ибо самое важное там явно было упущено...
явно демка вся была спопипастена :)

JeSss 15.01.2008 19:13

Re: Ответ: управление в RPG
 
;Баги позволяются бете, но не демке...
А, незнал, ну тада сделаю Бету уж, т.к. делал не очень много, и без физики...:-)

Raiter 15.01.2008 19:24

Ответ: управление в RPG
 
Ну так показывай что там у тебя :)

Android 15.01.2008 20:18

Ответ: управление в RPG
 
Цитата:

Сообщение от avel (Сообщение 74293)
dector жжошь! :)
tormoz+1
Android и HolyDel народ, вы оба не правы... :) ему после двойного клика надо мышу обнулять, так что: If ClickCount = 2 Then ClickCount = 0

а вообще это все давно уже обсуждалось и не раз!
демку фпс, думаю, стоит доделать, ибо самое важное там явно было упущено...

avel, так я же и говорю:
Цитата:

Сообщение от Android
- незабудь поставить ограничение на колличество кликов ( If ClickCount = 2 Then ClickCount = 0 ;) )


avel 15.01.2008 20:30

Ответ: управление в RPG
 
Android значит меня либо глючит, либо твой пост был исправлен... :)

Android 16.01.2008 10:34

Ответ: управление в RPG
 
Цитата:

Сообщение от avel (Сообщение 74417)
Android значит меня либо глючит, либо твой пост был исправлен... :)

Ёпрст... Если не веришь посмотри на пост HolyDel'a или IGR'a, т.к. их посты я исправить не могу:(

avel 16.01.2008 17:01

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

HolyDel 16.01.2008 18:46

Ответ: управление в RPG
 
по поводу обнуления счетчика. конкретно в его задаче. там нужно ОГРАНИЧИВАТЬ. потому, что если он его обнулит в ТОМ МЕСТЕ, то даблклик не сработает никогда. ОБНУЛЯТЬ счетчик надо при выполнении действия, в завершение вот вам пример счетчков кликов.

на первый квадрат надо кликать один раз
на второй два
на третий три

Код:

Graphics 800,600,32,2
SetBuffer BackBuffer()

SetFont LoadFont("Times New Roman",24,1)
mclick=0 ; Число кликов
While Not KeyDown(1)
       
        ;Копировать отсюда
        md1=MouseDown(1)        ;
        md2=MouseDown(2)        ;
       
        If md1
                mu_tm=0
                md_tm=md_tm+1
                If md_tm>15 Then mclick=0
                If md1_dn
                        mclick=mclick+1
                        If mclick=1 Then mfcx=MouseX():mfcy=MouseY()
                        If mclick=2
                                If Abs(mfcx-MouseX())>3 Or Abs(mfcy-MouseY())>3 Then mclick=0
                        EndIf
                md1_dn=0
                EndIf
        Else
                md1_dn=1
                md_tm=0
                mu_tm=mu_tm+1
                If mu_tm>15 Then mclick=0
        EndIf
        ;И до сюда
       
        If chn1 Then Color 0,255,255 Else Color 255,0,0
        Rect 100,100,100,100
       
        If chn2 Then Color 255,0,255 Else Color 0,255,0
        Rect 300,100,100,100
       
        If chn3 Then Color 255,255,0 Else Color 0,0,255
        Rect 500,100,100,100
       
        Color 0,0,0
       
        Text 150,150,"1",1,1
        Text 350,150,"2",1,1
        Text 550,150,"3",1,1
       
        ;Обработка/ ето важно понять
        If MouseY()>100 And MouseY()<200
       
                If MouseX()>100 And MouseX()<200
                        If mclick=1
                                chn1=1-chn1 ;что то сделаем
                                mclick=0        ;ОБНУЛИМ счетчик здесь! а не где нибудь еще
                        EndIf
                EndIf

                If MouseX()>300 And MouseX()<400
                        If mclick=2
                                chn2=1-chn2 ;что то сделаем
                                mclick=0        ;ОБНУЛИМ счетчик здесь! а не где нибудь еще
                        EndIf
                EndIf
               
                If MouseX()>500 And MouseX()<600
                        If mclick=3
                                chn3=1-chn3 ;что то сделаем
                                mclick=0        ;ОБНУЛИМ счетчик здесь! а не где нибудь еще
                        EndIf
                EndIf
                       
        EndIf
       
        Flip
Wend

здесь откоментен самый главный участок (чуть изминенная версия)
http://likosoft.ucoz.ru/forum/29-116-1


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

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