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

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

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

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

Ответ
 
Опции темы
Старый 12.09.2007, 07:01   #1
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Вопрос

Здравствуйте!
Столкнулся с проблемой не решаемой на моём уровне знаний блитца )
Даж незнаю как объяснить...

Ну короче например у меня 2 функции. Первая создаёт объект и камеру которую привязывает к нему. Вторая функция реализует управление объектом с клавиш.

Если они у меня одновременно запущенны гденибудь под
While Not KeyDown(1)
функция1()
функция2()
то всё нештяк объект есть всё управляется всё зашибись.
Но вдруг решил я что объекта не должно быть при старте игры и что он должен вызываться ну например на клавишу.
И вот значит так клавишей вызывается функция создающая объект и камеру.
If KeyHit(16) Then 
функция()
End If
Но проблема при например такой системе
While Not KeyDown(1)
If KeyHit(16) Then 
функция()
End If
функция2()
Будет сразу вылазить ошибка ибо функция с управлением объекта запускается и грит чувак а чем я буду управлять? нету такого объекта нафиг! усё ошибка клосед виндо =)
Знач пробую решить это запуском обоих функций с клавиши
 While Not KeyDown(1)
If KeyHit(16) Then 
 функция()
 функция2()
 End If
Итак объект с камерой загрузился, ошибок не вылазиет. НО!
Управление объектом именнуемое функция2 непашет ибо чтобы создать объект достаточно один раз вызвать функцию, но чтобы управлять объектом с помощю другой функции нужно чтобы эта функция не на миллисикунду вызвалась а работала постоянно!

Так вот суть вопроса:
Надо мне чтобы оби функции вызывались с 1 клавиши и чтобы первая функция сработала 1 раз а не плодила мне новые объекты с новыми камерами убивая блитц а вторая функция наоборот постоянно должна работать чтобы обеспечить объект управлением.

Подскажите пожалуйста как реализовать?
Я уверен что это очень просто но я незнаю как...

Кстати сам объект в моей подписи =)

О вот ещё забыл спросить. И как потом после остановить эту функцию с управлением? выключить нафиг.
И как можно удалить объекты созданные функцией?


Это всё мне нужно для того чтобы можно было не на одном корабле всю игру летать а на разных, и у всех должны быть разные характеристики, тобиш надо избавляться от функций1 и 2 и уже загружать новые 2 функции с кораблём и новым управлением.


Вопщем жду помощи товарисчи!
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 07:35   #2
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Функции (

Вызываешь функцию №1, и перед вызовом второй проверяешь, есть ли объект, и еще, зачем создавать каждый раз новую камеру? Создай одну, а потом привязывай. Функцию тебе нужно сделать чтоб, создавался объект, к нему привязывать камеру, и если надо камеру передвинуть в его положение.
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 07:39   #3
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Функции (

Нуу там камеру ещё на разное расстояние отдалять надо у каждого объекта...

Можно пример по проверке есть ли объект?
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 08:46   #4
jimon
 
Сообщений: n/a
Re: Функции (

if Blablabla = Null then обьекта нету
 
Ответить с цитированием
Старый 12.09.2007, 12:37   #5
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Функции (

player_est = 0

While Not KeyDown(1)
If KeyHit(16) Then
функция()
player_est = 1
End If
if player_est = 1 then функция2()
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 12:48   #6
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Функции (

или каждой функции свою клавишу, или постав счётчик на одну клавишу и тогда функции будут поочереди заменять друг друга когда будеш нажимать на эту клавишу !!
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 14:49   #7
LD
ПроЭктировщик
 
Регистрация: 18.11.2006
Сообщений: 179
Написано 7 полезных сообщений
(для 16 пользователей)
Re: Функции (

Итак:
в начале создаешь камеру
и событие, по которому должна выполняться функция обработки, в функции обработки пишешь: if твое событие истино then
if твой обьект <> 0
здесь работа над объдктом
ендиф
ендиф
потом в цикле вызываешь эту функцию, не забудь когда надо присвоить значение твоего усковия выполнения обработки когда тебе надо, если обьекра нет то функция не выполняеться
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 15:36   #8
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Функции (


Не в обиду, но ты ещё собирался ММОРПГ писать?
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 17:18   #9
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Функции (

Сообщение от Raiter

Не в обиду, но ты ещё собирался ММОРПГ писать?
Я?

Я предложил команде рпгешников с той темы ммо писать.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 17:25   #10
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Функции (

Сообщение от Raiter
player_est = 0

While Not KeyDown(1)
If KeyHit(16) Then
функция()
player_est = 1
End If
if player_est = 1 then функция2()
чёто неработает (
вторая функйия не может найти объект ибо объект не в глобале. а в глобал я его из функции поставить немогу...

походу надо както делать и создане объекта и его управление в одной функции

я тут просто решил заново подругому делать игру которую делал
так вот в старой версии у меня объекты грузились вообще не из функций а напрямую с цикла, при включении игры все объёкты уже стояли и функции с управлением тоже были загружены.
а вот чтобы объект и его управление грузился не при старте игра а когда я захочу и всё работало у меня не получается (

Ниже предоставлю части кода которые мы щас обсуждаем

Global speedk1#=0
Global mXSp#
Global mYSp#
;тот объект (щас не в функции)
Global k1 = LoadMesh("Data\object\ships\k1\k1.b3d")
ScaleEntity k1,1,1,1
PositionEntity k1,0,0,0
RotateEntity k1, 0, 0, 0
;камера его
Camera = CreateCamera(k1)
PositionEntity Camera,3,60,-320
RotateEntity Camera, 0, 0, 0
CameraRange Camera,1.0,100000000
;функция управление
Function k1u()
Zkrenk1#=0.5
XYkrenk1#=0.5
TSpeed#=0.010
    TurnEntity k1,mYSp*TSpeed,0,0
    TurnEntity k1,0,-mXSp*TSpeed,0
    MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
    MoveEntity k1,0,0,+speedk1#
If KeyDown(30) Then TurnEntity k1,0,0,+Zkrenk1#
If KeyDown(32) Then TurnEntity k1,0,0,-Zkrenk1#
If KeyDown(200) Then TurnEntity k1,+XYkrenk1#,0,0
If KeyDown(208) Then TurnEntity k1,-XYkrenk1#,0,0
If KeyDown(203) Then TurnEntity k1,0,+XYkrenk1#,0
If KeyDown(205) Then TurnEntity k1,0,-XYkrenk1#,0
If KeyHit(17) Then 
speedk1#=speedk1#+15
End If
If KeyHit(31) Then 
speedk1#=speedk1#-15
End If
If speedk1#=60 Then
speedk1#=45
EndIf
If speedk1#=-15 Then
speedk1#=0
EndIf
End Function
While Not KeyDown(1)
; вызываю функцию управление
k1u()
mXSp=MouseXSpeed()
mYSp=MouseYSpeed()
UpdateWorld
RenderWorld
Flip
Wend
End
В таком виде работает. Но мне надо сделать както чтобы не сразу работало а по какомуто событию, нарпимер нажатие Q как писал выше.


Скрин
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 17:27   #11
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Функции (

не может такого быть. опять что-ьл не правильно делаеш
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 17:50   #12
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Функции (

Сообщение от Raiter
не может такого быть. опять что-ьл не правильно делаеш
Посмотри части кода сверху.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 18:07   #13
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Функции (

Ща посмотрю

вторая функйия не может найти объект ибо объект не в глобале. а в глобал я его из функции поставить немогу...
ты можеш объявить его глобальным в начале програмы

Вообще всё елеметарно. Выложи код с медией - сделаю всё

ЗЫЖ первый скрин напоминает мне разукрашеного пингвина, который приложил "крылья" к телу и пригнул вперед....
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 18:45   #14
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Функции (

Господа, а не проще ли в аське пообщаться?
(Offline)
 
Ответить с цитированием
Старый 12.09.2007, 20:12   #15
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Функции (

Сообщение от dimanche13
Господа, а не проще ли в аське пообщаться?
Мистер диманче
Вообщето мы пишем по теме в нужном разделе.
Почему это мы должны через асю? форум для чего?
Быть может вообще не будем заходить на форум а будем все в асях общяться?
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
API Функции maxturbo Библиотеки 8 18.09.2009 02:38
функций NitE BlitzMax 16 17.08.2009 00:39
Функции pipns Основной форум 1 23.04.2007 11:54
Где функции? root 3D-программирование 12 02.01.2006 23:34


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


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