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

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

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

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

Ответ
 
Опции темы
Старый 18.09.2005, 23:10   #1
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
Вот код меню:
Function knopka(x1,x2,y1,y2,vImage);nujno v opredelenii funktsii sozdat' peremennuyu dlya kartinki 
If MouseX()>x1 And MouseX()<x2 And MouseY()>y1 And MouseY()<y2 Then
DrawImage vImage,x1,y1
Return True
EndIf
End Function

Function DrawMenu(n)
DrawImage mainpict,0,0

DrawImage newg,450,300
DrawImage options,450,340
DrawImage quit,450,380

If n=1 Then
If knopka(450,590,300,330,newg2)=True Then
If MouseDown(1) Then
poloz=1

newgAlt=True;nuzhno po-drugomu nazvat' peremennuyu, potomuchto v "newg" u tebya uzhe est' kartinka
EndIf
EndIf
Если здесь не хватает какой-то части кода для понимания можете посмотреть здесь - www.forcing.nm.ru в разделе статьи

Так вот, нужно, чтобы при нажатии кнопки загрузался блицовский файл с самой игрой
(Offline)
 
Ответить с цитированием
Старый 18.09.2005, 23:22   #2
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
а зачем тебе такое??? это ведь будет возможно только на этапе тестирования игры, скомпилировать ты такой процесс не сможешь, другое дело если бы все бб-модули были скомпилированы в один файл (типа Include или вручную все в один файл запихать) и при нажатии на элемент меню передавалось бы управление соответствующей гаме (вызывалась функция определенной гамы)...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 18.09.2005, 23:32   #3
jimon
 
Сообщений: n/a
Function knopka(x1,x2,y1,y2,vImage);nujno v opredelenii funktsii sozdat' peremennuyu dlya kartinki 
If MouseX()>x1 And MouseX()<x2 And MouseY()>y1 And MouseY()<y2 Then
DrawImage vImage,x1,y1
..........................................
вот здесь грузи че хочеш и как хочеш
..........................................
Return True
EndIf
End Function

ps. )
 
Ответить с цитированием
Старый 18.09.2005, 23:38   #4
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Originally posted by jimon@Sep 18 2005, 09:32 PM
Function knopka(x1,x2,y1,y2,vImage);nujno v opredelenii funktsii sozdat' peremennuyu dlya kartinki 
If MouseX()>x1 And MouseX()<x2 And MouseY()>y1 And MouseY()<y2 Then
DrawImage vImage,x1,y1
..........................................
вот здесь грузи че хочеш и как хочеш
..........................................
Return True
EndIf
End Function

ps. )
Jimon! по логике вопрос был "как", а не "в какое место кода запихать процедуру загрузки"... (или мне так только показалось)... можно было написать процедуру загрузки, только мы еще не знаем что грузить, скомпиленный файл или ББ...

и по поводу твоего примера. а зачем по твоему функция knopka возвращает true в случае нажатия?? тогда стоило сделать вызов процедуры и проверять если она вернула true то грузить...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 19.09.2005, 13:41   #5
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
Originally posted by jimon@Sep 18 2005, 09:32 PM
Function knopka(x1,x2,y1,y2,vImage);nujno v opredelenii funktsii sozdat' peremennuyu dlya kartinki 
If MouseX()>x1 And MouseX()<x2 And MouseY()>y1 And MouseY()<y2 Then
DrawImage vImage,x1,y1
..........................................
вот здесь грузи че хочеш и как хочеш
..........................................
Return True
EndIf
End Function

ps. )
Где грузить - я знаю, а вот как грузить?
Теперь отвечу на вопрос SubZer0: грузить надо файл *.bb а потом я уже сделаю отдельный файл для компиляции(по этому вопросу я вас потом еще помучаю)
(Offline)
 
Ответить с цитированием
Старый 19.09.2005, 14:59   #6
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Originally posted by Dizels@Sep 19 2005, 11:41 AM
грузить надо файл *.bb а потом я уже сделаю отдельный файл для компиляции(по этому вопросу я вас потом еще помучаю)
заранее хочу извиниться, поскольку знаю, что человек обижается если ему не даешь то, что он хочет...

а теперь ответ: такой процесс практически невозможен, такой команды нет... можно только если написать свой компилятор...

поподробнее:

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

теперь смотри: когда ты находишься в игре и нажимаешь кнопку (игра в которой ты находишься уже проверена на ошибки и преобразована в машинный код), теперь нам нужно прицепить ББ-файл, но кто-ж его будет проверять на ошибки и компилировать? такой команды нет, если только написать свой мини движок который будет проверять ошибки и компилировать...

можно подгружать уже готовые EXE, которые уже проверены и откомпилены, НО это будет супер-нерациональный метод, потому, что компилятор Блиц кладет в каждый екзешник основные функции обращения к DirectX и если мы будем подгружать готовый екзешник, то получится что у нас в первом екзешнике эти функции есть и в том который подгружаем тоже есть, а они нам нужны два раза??.. получается нерациональное использование оперативной памяти...

еще раз извиняюсь, обычно мы не отвечаем отрицательно на поставленные вопросы, но в этом случае я не вижу другого решения
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 19.09.2005, 23:11   #7
jimon
 
Сообщений: n/a
я чет торможу ?!
ето зачем тебе подгружать bb файлы ?
ты хоть представляеш что будет за фича ?!

file aa.bb : "
function error()
runtimeerror ":/"
end function
"

main file : "
if ..=.. then
include "aa.bb"
end if
"

и смотрим как ето превратится после прекомпиляции : "
if ..=.. then
function error()
runtimeerror ":/"
end function
end if
"

так как в нашем случае include окажется внутри функции то получится что функция окажется внутри другой функции и произойдет error :o

просто грузи все bb файлы вначале основного и будет все

ps. )
 
Ответить с цитированием
Старый 19.09.2005, 23:48   #8
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
Тоесть мне надо все сейчас соединить в один файл? Или как? Подскажите, мне все равно что-куда пихать, лишь бы работало!Поэтому помогите пожалуйста, я так понимаю, мне сейчас надо будет в файл с меню перенести всю игру, так вот вопрос то все равно остаеться: как подгрузить(что конкретно написать)
Простите если непонятно объясняю или надоел.
(Offline)
 
Ответить с цитированием
Старый 19.09.2005, 23:56   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Выложи конкретно свои файлы в одном аттаче, пл3 - гляну
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 20.09.2005, 08:45   #10
jimon
 
Сообщений: n/a
мдя...

у тебя в файле menu.bb есть вот такой код :
function menu()
....
end function
и что же тебе мешает перенести ету функцию в другой файл и ее там юзать ?
 
Ответить с цитированием
Старый 20.09.2005, 14:12   #11
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
2 Dizels

выложи, плиз, свои наработки, тогда мы точно скажем как и что делать.
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 20.09.2005, 15:33   #12
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
(Только теория)

Чтобы проще было работать с меню и прочим, делаешь глобальную переменную состояния игры, типа flagGameStatus. Уже есть? - Отлично.
Вводишь для себя условности относительно этой переменной, например:
если flagGameStatus равен 0 - выход из проги, 1 - главное меню, 2 - игра, 3 - игровое меню, вобщем ясно уже...

Когда твоя функция knopka вернула ИСТИНУ, ты меняешь значение этой переменной.
По значению переменной определяешь что нужно делать (выйти, рисовать меню, крутить игровой цикл и прочее)

Пример:
Запустил свою игру - flagGameStatus = 1 - меню рисуешь
Нажал кнопку Новая игра
{
flagGameStatus = 2
также грузишь первый (или другой) уровень игры, т.е. все что к нему относится
}

В главном цикле проверяешь значение flagGameStatus через IF или SELECT/CASE и делаешь соответствующие полученному значению действия...
(Offline)
 
Ответить с цитированием
Старый 21.09.2005, 13:27   #13
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
Вот мои наработки так сказать.
(Offline)
 
Ответить с цитированием
Старый 21.09.2005, 16:06   #14
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
И по ходу дела сразу же еще один вопрос, что нужно поменять в моем коде, чтобы игра быстрее грузилась?А то по моему мнению - она долго грузиться - секунд 10, при том, что у меня оперативы - 1ГБ
(Offline)
 
Ответить с цитированием
Старый 21.09.2005, 16:49   #15
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
к сожалению мы не сможем протестить код без остальных файлов (без моделей и картинок)... сделай, плиз, аттач со всеми ресурсами...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема: глючное меню DJ PhoeniX MidletPascal 3 23.07.2009 21:53
Как программно узнать имя пункта меню который был выбран (Обычное/стандартные меню)? Richik Основной форум 5 25.05.2009 23:20
Меню AndruXa Blitz3D 18 05.10.2007 21:44


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


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