Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 14.01.2010, 00:07   #136
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Сообщений: 1,701
Написано 658 полезных сообщений
(для 1,963 пользователей)
Ответ: Вопросы очередного новичка

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 нужными координатами. Конечно, есть решение попроще Но мне в голову пришло только это.

Если я неправильно тебя понял, я извиняюсь
__________________
осталось 7
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 16:46   #137
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: Вопросы очередного новичка

Baton4 я ему ето писал, ему чемто не понравилось))

Eanub никто не поймет в чем проблема, дай хоть код
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 17:37   #138
RlexGm
ПроЭктировщик
 
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений
(для 34 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от Baton4 Посмотреть сообщение
Eanub Если я правильно понял, тебе надо ПРЯМО В ЦИКЛЕ переместить игрока в точку?
так оно и есть

Сообщение от KingMaks Посмотреть сообщение
Baton4 я ему ето писал, ему чемто не понравилось))
при i=2 он возвращяет кординату которая была раньше
Вот новая вещ, не давно обнаружил: если ты стоишь в той комнате куда надо переместиться то это вполне работает... а когда не в этой то на милисикунду (наверно ) игрок переползает куда надо а потом назад где был

и еще на досуге пришел вопрос
как в blitz3D проверить столкновение с объектом

Последний раз редактировалось RlexGm, 14.01.2010 в 19:20.
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 19:56   #139
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Вопросы очередного новичка

ЕаНуб код в студию
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 19:58   #140
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: Вопросы очередного новичка

EaNub

EntityCollided
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 20:28   #141
RlexGm
ПроЭктировщик
 
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений
(для 34 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от KingMaks Посмотреть сообщение
EaNub

EntityCollided
If KeyHit(Jump) And EntityCollided(Player,TypeFloor) Then MoveEntity Player,0,20,0

Но прыжка не происходит вообще(
Код в сокращении:

Graphics3D 0,0,32,1
SetBuffer BackBuffer()
Global Menusost=1 ; меню при старте программы
Global PlX#,PlY#,PlZ# ; координаты игрока
PositionEntity Player,50,60,60

While
; ну вообщем там поиграли и ....ну скажем захотели еще раз последний момент позыреть
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
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 20:37   #142
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от EaNub Посмотреть сообщение
вот я делаю как вы мне посоветовали..
как мы посоветовали лутше не делать.Слушайся советов опытных програмистов

Зделай при столкновении плеера с полом прыжок = ноль

если прыжок = ноль и нажать пробел то игрок прыгет и прыжок = один
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 20:51   #143
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от EaNub Посмотреть сообщение
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
Истинный кошмар
If KeyHit(Jump) And EntityCollided(Player,TypeFloor) Then MoveEntity Player,0,20,0
Собсно проблема хде-то сдесь прячется. Есть уже уйма предположений:
Для начала напиши так
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(), не исключен вариант что твой игрок прыгает "в пол" а колизии его выталкивают обратно => ничего не просиходит. Солюшн: Поиграть со значениями MoveEntity
Таким образом БАХ может быть в любой части If'a.
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 21:12   #144
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Сообщений: 1,701
Написано 658 полезных сообщений
(для 1,963 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от EaNub Посмотреть сообщение
If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0
Вот в этом месте видимо и трабла! (где обновляется). Выкладывай ВЕСЬ КОД! А то не видать тебе фикса
__________________
осталось 7
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 21:15   #145
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Сообщений: 1,701
Написано 658 полезных сообщений
(для 1,963 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от EaNub Посмотреть сообщение
при i=2 он возвращяет кординату которая была раньше
Трабла в коде! Значит, где-то в цикле у тебя есть

if i=2 then moveentity player,startx,starty,startz
__________________
осталось 7
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 22:18   #146
RlexGm
ПроЭктировщик
 
Регистрация: 11.11.2009
Сообщений: 172
Написано 17 полезных сообщений
(для 34 пользователей)
Ответ: Вопросы очередного новичка

я узнал причину оставания на месте при загрузки и она меня ужаснула!=)
я это все проверял в узких коридорах и не заметил..
при позиционровании он ударяется в стену всторону той точки...
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 22:58   #147
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Сообщений: 1,701
Написано 658 полезных сообщений
(для 1,963 пользователей)
Ответ: Вопросы очередного новичка

Сообщение от EaNub Посмотреть сообщение
я узнал причину оставания на месте при загрузки и она меня ужаснула!=)
я это все проверял в узких коридорах и не заметил..
при позиционровании он ударяется в стену всторону той точки...
Почему-то меня преследует острое ощущение дежа-вю...
__________________
осталось 7
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 23:05   #148
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы очередного новичка

Вопрос - а можно из типов Type делать массивы...
Например:
Type Body
Field x,y,
End Type
...
Dim Body(100)

...или типы работают только как связанные списки...?
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 23:14   #149
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Ответ: Вопросы очередного новичка

Field somethimg[100];
(по памяти)
* пардон, неверно прочитал вопрос.
См. след пост
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 14.01.2010, 23:27   #150
wolfhound512
Знающий
 
Аватар для wolfhound512
 
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений
(для 299 пользователей)
Ответ: Вопросы очередного новичка

Можно:
Type Body
	Field x,y,z
End Type

Dim array.Body(10)

For i=0 To 10
	array(i) = New Body
	array(i)\x=Rnd(1,10)
	array(i)\y=Rnd(1,10)
	array(i)\z=Rnd(1,10)
Next

For i=0 To 10
	Text 10, i*10, array(i)\x
	Text 100, i*10, array(i)\y
	Text 200, i*10, array(i)\z
Next

WaitKey()
__________________
GUI, GUIw512, AlbaLynx, Форум
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Morganolla (14.01.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я новичок! alcosholik Blitz3D 123 02.08.2014 22:55
Вопросы новичка в БМаксе ELIAS 2D-программирование 14 08.02.2010 10:43
Re: Я новичок! evel Болтовня 60 30.09.2007 11:23
Помогите новичку _maxim_ 3D-программирование 7 17.09.2006 15:48
Вопросы...помогите новичку Round 3D-программирование 3 10.09.2006 21:47


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com