![]() |
Ответ: Вопросы очередного новичка
Цитата:
А если место 0,0,0 поставить переменные то если переменные изменятся позиция так называемого "player" :) не изменится |
Ответ: Вопросы очередного новичка
EaNub
переменная = скокко там переменная2 = скокко там переменная3 = скокко там While not keydown(1) PositionEntity player,переменная,переменная2,переменная3 и при нажатии вперед меняй значение переменной и т.д. |
Ответ: Вопросы очередного новичка
Цитата:
ShowEntity entity |
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
positionentity позиционирует объект, им нельзя двигать. для этого есть moveentity чтобы перемещать объект относительно себя, translateentity для перемещения объекта относительно мира.
и естественно если нужно чтобы объект шел туда куда смотрит камера надо двигать объект вместе с камерой (entityparent). |
Ответ: Вопросы очередного новичка
я это знаю, Nite посмотри предыдущие посты...
а MoveEntity не работает когда PositionEntity находится в цикле... |
Ответ: Вопросы очередного новичка
чета я вообще запутался - напиши конкретно и кратко в чем трабла, помогу исправить.
|
Ответ: Вопросы очередного новичка
Eanub, не знаю, как другие, а я не понял, ЗАЧЕМ ТЕБЕ ПОЗИЦИОНИРОВАТЬ В ЦИКЛЕ? :) PositionEntity заюзай до цикла, а в цикле двигай!
Хотя... Если я правильно понял, тебе надо ПРЯМО В ЦИКЛЕ переместить игрока в точку? :) Если так, то... хм... Ну мне ничего умнее этого в голову не пришло: i=1 ... repeat ;начало цикла ... if i=1 then positionentity player,x,y,z i=2 endif ... Until KeyHit(1) И каждый раз, когда надо переместить таким же образом делай i=1, а x, y, z нужными координатами. Конечно, есть решение попроще :-D Но мне в голову пришло только это. Если я неправильно тебя понял, я извиняюсь |
Ответ: Вопросы очередного новичка
Baton4 я ему ето писал, ему чемто не понравилось))
Eanub никто не поймет в чем проблема, дай хоть код :) |
Ответ: Вопросы очередного новичка
Цитата:
Цитата:
Вот новая вещ, не давно обнаружил: если ты стоишь в той комнате куда надо переместиться то это вполне работает... а когда не в этой то на милисикунду (наверно:) ) игрок переползает куда надо а потом назад где был:( и еще на досуге пришел вопрос :( как в blitz3D проверить столкновение с объектом |
Ответ: Вопросы очередного новичка
ЕаНуб код в студию :)
|
Ответ: Вопросы очередного новичка
EaNub
EntityCollided |
Ответ: Вопросы очередного новичка
Цитата:
Но прыжка не происходит вообще( Код в сокращении: Graphics3D 0,0,32,1 SetBuffer BackBuffer() Global Menusost=1 ; меню при старте программы Global PlX#,PlY#,PlZ# ; координаты игрока PositionEntity Player,50,60,60 While ; ну вообщем там поиграли и ....ну скажем захотели еще раз последний момент позыреть :-D If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0 Menusost=4 PlX#=50 ; PlY#=60 ; PlZ#=60 ; корды тестовые, потом они из файла считываться будут... EndIf If MenuSost=4 PositionEntity Player,PlX#,PlY#,PlZ# Menusost=2 EndIf ; вот я делаю как вы мне посоветовали.. RenderWorld UpdateWorld Flip Wend End |
Ответ: Вопросы очередного новичка
Цитата:
Зделай при столкновении плеера с полом прыжок = ноль если прыжок = ноль и нажать пробел то игрок прыгет и прыжок = один |
Ответ: Вопросы очередного новичка
Цитата:
гыг зачем выносить MenuSost за пределы KnopkaLoadGame при такой логике? Достаточно If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0 PlX#=50 ; PlY#=60 ; PlZ#=60 ; корды тестовые, потом они из файла считываться будут... PositionEntity Player,PlX#,PlY#,PlZ# Menusost=2 EndIf ; вот я делаю как вы мне посоветовали.. -2 лишних переменных и минус лишний if Истинный кошмар :-D :-D :-D Цитата:
Для начала напиши так If KeyHit(Jump) And EntityCollided(Player,TypeFloor) MoveEntity Player,0,20,0 Stop; EndIF При нажатии пробела(или чем ты там прыгаешь) программа должна "зависнуть". Тоесть она как-бэ закончится на этом моменте и больше не будет выполнятся. Если при нажатии пробела игра не останавливается - ошибка в условиях: 1)Бах в EntityCollided(Player,TypeFloor). Плееру не задан тип, а может и колизии с полом - EntityCollided работает лишь при заданных коллизиях. Солюшн: Убрать And EntityCollided(Player,TypeFloor) и попробовать прыгать. 2)Бах в If KeyHit(Jump) - переменная Jump задана неправильно. Солюшн: открыть код, нажать Ctrl+F ввести в поле Jump и посмотреть действительно ли там сканкод 57. 3)Бах в MoveEntity Player,0,20,0 кроме того что для прыжка он двигается по оси Y(:4to:), не исключен вариант что твой игрок прыгает "в пол" а колизии его выталкивают обратно => ничего не просиходит. Солюшн: Поиграть со значениями MoveEntity Таким образом БАХ может быть в любой части If'a. |
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
Цитата:
if i=2 then moveentity player,startx,starty,startz |
Ответ: Вопросы очередного новичка
я узнал причину оставания на месте при загрузки и она меня ужаснула!=)
я это все проверял в узких коридорах и не заметил.. при позиционровании он ударяется в стену всторону той точки... |
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
Вопрос - а можно из типов Type делать массивы...
Например: Type Body Field x,y, End Type ... Dim Body(100) ...или типы работают только как связанные списки...? |
Ответ: Вопросы очередного новичка
Field somethimg[100];
(по памяти) * пардон, неверно прочитал вопрос. См. след пост |
Ответ: Вопросы очередного новичка
Можно:
Код:
Type Body |
Ответ: Вопросы очередного новичка
Может кто знает?
Rand (1,128 ) - только чтобы могли попасться только ети числа : 16,32,48,64,80,96,112,128 Чтобы лучше объяснить подам не правильный код : "Rand (1,128 ) Step 16" |
Ответ: Вопросы очередного новичка
боже мой... где твой абстрактное мышление ? почему всегда надо всё пытатся сделать через как можно большую жопу ?
Код:
i=Rand(1,8) |
Ответ: Вопросы очередного новичка
если нужно чтобы из рандома совпал ряд чисел, то делай через Select :
Код:
result = false |
Ответ: Вопросы очередного новичка
Цитата:
i=Rand(1,8) n=i*16 :cool: Вообще зависит от того для каких целей ты будешь применять. Если тебе нужно чтобы було True если значение кратно 16, то делай i=Rand(1,128) If i mod 16 = 0 Then allisgood=True |
Ответ: Вопросы очередного новичка
Блин вот только что хотел написать это :):)
|
Ответ: Вопросы очередного новичка
чет я не допёр а как воспроизвести звук топота(подскажите плз
когда удерживаю бежать то он начинает звук многократно повторять причем до конца доигрывает только 1 раз а потом как получается как дрелью... |
Ответ: Вопросы очередного новичка
Создай в типе поле Sount_TOP_TOP :) И делай так:
if чувак_перемещается If soundPlaying(P\Sound_TOP_TOP) Then P\Sound_TOP_TOP=PlaySound(Sound_TOP_TOP) endif endif |
Ответ: Вопросы очередного новичка
ЕаНуб, ну вот я например примерно так делаю: (хоть это и не правильно:) )
sound=loadsound("sound.mp3") ;цикл while not keyhit(1) if keydown(30)=1 or keydown (32)=1 then if snd_rn=1 then playsound (sound) snd_rn=0 endif endif if keydown(30)=0 and keydown (32)=0 then snd_rn=1 endif wend |
Ответ: Вопросы очередного новичка
PackegerX
Ох...Сколько же народу на булку прет. Боюсь количество недопроЭктов вскоре увеличится вдвое:-D Ты откуда к нам заявился? Поисковик или вики? |
Ответ: Вопросы очередного новичка
Rexxar, я с Земли такая планета третья от солнца :) (поисковик)
Я сейчас в процессе - марио в 3д помоему многие начинают с этого хотя я думал что идею хорошую придумал)) |
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
Нет в прогрессе, но был цельный конкурс ажно в 2007-м году...
|
Ответ: Вопросы очередного новичка
Еще вопросик - а как в блитце уберечься от повторных инклудов? В сях писали типа If no define... #define.... А?
|
Ответ: Вопросы очередного новичка
Всё инклудить в главный файл, т.к. блитз в отличие от с++ не имеет раздельной компиляции исходников, и рассматривает весь код в целом.
Здесь инклуд - просто добавление исходника в проект. |
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
EaNub я же тебе написал ? Что тебе не ясно? Сморти проигрывается ли канал, если нет то нагружай канал звуком :):)
|
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
Еа, а у тебя юниты или кто там, разве не через типы?
а если в первый раз про каналы слышишь - поясню Команда PlaySound возвращает хэндл канала, то есть так: Sound=PlaySound(MtSound) Здесь Sound - это канал. Теперь этим каналом можно управлять: ChannelVolume(Sound,Volume#) Volume - в пределах от 0 до 1, это громкость канала ChannelPlaying(Sound) - вернет 0, если твой канал Sound не проигрывается, и 1, если это не так ChannelPitch(Sound,Pitch) - с этим я сам не разобрался, но это регулирует частоту звука(тон, высоту пргоще говоря) Ну остальное в справке прочтешь |
Ответ: Вопросы очередного новичка
что то не могу разобраться, мож кодик подкинеш?)
|
Ответ: Вопросы очередного новичка
Цитата:
Ты даже не попробовал разобраться:) |
Ответ: Вопросы очередного новичка
10 мин это далеко не мало=)
мож всетаки кто нить даст код? |
Ответ: Вопросы очередного новичка
Цитата:
я ещо со звуком не работал но думаю так: Код:
if ChannelPlaying(шаги) = 0 then |
Ответ: Вопросы очередного новичка
А где у тебя звук то отключается? Нигде?
|
Ответ: Вопросы очередного новичка
Цитата:
Код:
if keydown(200) then |
Ответ: Вопросы очередного новичка
А можно как нибудь сделать тыкание по объекту, если карта сделана в Cartography shop?
я пробывал чето не получилось(: If Instr(name$,"knon"); определяем кнопку... EntityPickMode child, 2 NameEntity child,"knone" ; именуем объект EndIf If KeyHit(Use) = True enti = CameraPick(camplayer,MouseX(),MouseY()) If enti If EntityDistance(enti, player) < 20 names$ = EntityName(enti) If names = "knone" и сюда действие EndIf EndIf .... EndIf и нечего не происходит когда по нему тыкаеш, помогите! |
Ответ: Вопросы очередного новичка
Код:
If Instr(name$,"knon"); определяем кнопку... Код:
If Instr(name$,"knon"); определяем кнопку... |
Ответ: Вопросы очередного новичка
( у меня дебагер показывает только главный код, а это у меня все в инклудах(
вообщем вопрос таков: есть код определения отдельных частей карты: Function OprObj(ent) For i=1 To CountChildren(ent) child=GetChild(ent,i) name$=Lower(EntityName(child)) If Instr(name$,"knon") EntityPickMode child, 2 EndIf Next End Function и код для нажатия If keyHit(use) = True ent = CameraPick(camplayer,MouseX(),MouseY()) If ent If EntityDistance(ent, player) < 100 name$ = EntityName(ent) If name = "knon" EndIf EndIf EndIf EndIf И так вопрос господа: как совместить эти два кода? |
Ответ: Вопросы очередного новичка
Для совмещения этих кусочков кода, надо один кусочек вписать в другой. Ваш К.О.
|
Ответ: Вопросы очередного новичка
А что "супер управление мышей" уже закрыли? Я только боян нарыл на тему :(
|
Ответ: Вопросы очередного новичка
|
Ответ: Вопросы очередного новичка
|
Ответ: Вопросы очередного новичка
|
Ответ: Вопросы очередного новичка
|
Ответ: Вопросы очередного новичка
Нужна идея!
Сделал Игрока и управление от 3 лица.Работает Отлично! Только если подойти к стене и прокрутить камерой вокруг игрока, то камера проходит сквозь стену и игрока не видно. Делал колизию камеры со стеной,а когда нет колизии камера возвращается в прежнее положение, но таким способом есть баги. Может кто знает способ,чтобы камера не уходила за твердые предметы, а допустим приближалась к игроку, а потом вновь отдалялась. |
Ответ: Вопросы очередного новичка
Самый простой способ так сделать - заменить камеру на пивот, тыкать в его сторону от игрока и ставить камеру в пикнутое место, либо, если пикнулось слишком далеко, либо вообще не пикнулось, то ставить в позицию пивота.
Но неплохо бы избавиться от пивота вообще. |
Ответ: Вопросы очередного новичка
читай справку -> EntityInView спасет тебя
|
Ответ: Вопросы очередного новичка
Цитата:
в координатах видимости камеры, по етому камера видит его как бы и через стену:) |
Ответ: Вопросы очередного новичка
А проходимость/непроходимость для кого придумали?)
|
Ответ: Вопросы очередного новичка
Цитата:
|
Ответ: Вопросы очередного новичка
http://www.policyalmanac.org/games/a...torial_rus.htm
Бугога! Кури и незакурим будешь. Вродь как юзается и чтоб ИИ делать, и чтоб в стены не лазать |
Ответ: Вопросы очередного новичка
А вообще я страшный извращенец, думаю можно сделать и полегче
|
Ответ: Вопросы очередного новичка
KingMaks, EntityInView лишь проверяет, попадает ли точка тела в проекцию камеры. И от стен это не зависит. Есть жутко медленная команда EntityVisible() - вот в ней реализовано именно то что тебе надо :) Тока стенам надо EntityPickMode прописывать. В общем, дерзай :)
|
Часовой пояс GMT +4, время: 04:33. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot