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

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

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

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

Ответ
 
Опции темы
Старый 21.09.2005, 17:08   #16
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
А можете вставить свои - мои на данном этапе много весят, и поэтому передать их проблематично!Вставьте любые другие модели, я думаю у Вас много различных заготовок
(Offline)
 
Ответить с цитированием
Старый 21.09.2005, 20:32   #17
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
чесно сказать... очень сложно разобраться в коде, я не знаю какого размера объекты и где они должны стоять... короче для меня было проще написать свою маленькую реализацию подгрузки файлов игр, смотри аттач.

код главного меню:
; делаем файл первой игры как функцию
; ПРИМЕЧАНИЕ: в файле game1.bb должна отсутствовать команда END, 
; иначе мы не сможем вернуться в главное меню
function game1()
 include "game1.bb"
end Function

; делаем файл второй игры как функцию
; ПРИМЕЧАНИЕ: в файле game2.bb должна отсутствовать команда END, 
; иначе мы не сможем вернуться в главное меню
function game2()
 Include "game2.bb"
End Function
 
; теперь функция меню
Function mainmenu%()

 определяем граф.режим и выставляем буфер
 graphics3d 800,600,32,2
 setbuffer BackBuffer()

; загружаем и устанавливаем шрифт
 font=LoadFont("Arial",20,True,False,False) 
 SetFont font
 
; цикл меню
Repeat
 
; проверяем если мышка внутри первого пункта
 If MouseX()>250 And MouseY()>100 And MouseX()<550 And MouseY()<150
; изменяем его цвет
  Color 100,255,100
; а если еще и кнопка нажата, то запускаем игру1
  If MouseDown(1) 
  game1():return 1:exit
; выходим из функции меню вернув положительное значение
 EndIf
 Else
 Color 255,100,100
 EndIf
; рисуем сам квадрат первого пункта меню
 Rect 250,100,300,50,1


; точно так-же для второго пункта меню	
 If MouseX()>250 And MouseY()>250 And MouseX()<550 And MouseY()<300
 Color 100,255,100
 If MouseDown(1) 
  game2():return 1:exit
 EndIf
 Else
 Color 255,100,100
 EndIf
	
 Rect 250,250,300,50,1

; и так-же для третьего пункта
 If MouseX()>250 And MouseY()>400 And MouseX()<550 And MouseY()<450
 If MouseDown(1) 
; только тут нам ничего запускать не нужно, нужно только вернуть ложь
  return 0:exit
 EndIf
 Color 100,255,100
 Else
 Color 255,100,100
 EndIf

 Rect 250,400,300,50,1

; выводим надписи меню на экран
 Color 255,255,255
 Text 350,117,"First game"
 Text 342,267,"Second game"
 Text 385,417,"Exit"
	
; еще если нажата ESC, то возвращаем ложь и выходим 	
 If KeyHit(1) Then Return 0:exit
 
 Flip
 
Forever
 
end function


; теперь главный цикл программы,
; запускаем меню пока оно не возвратит ложь, как только ложь, так сразу END
while mainmenu()
wend

end
теперь маленько поподробнее, зачем такой гемор с функцией меню спросите вы, ответ прост, функция Graphics3d очищает мир полностью, удаляет все объекты и текстуры из памяти... и чтоб это все всегда подгружалось нужно делать такую меню-функцию (не тащить-же все объекты меню (если меню 3Д например) через всю игру)

надеюсь, что тебе это поможет в твоей проблеме
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 21.09.2005, 23:52   #18
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
Большое спасибо, я вроде разобрался
(Offline)
 
Ответить с цитированием
Старый 22.09.2005, 00:23   #19
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
 game1():return 1:exit
Ну exit после return писать совсем не нужно.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 13.10.2005, 14:48   #20
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
Это опять я
Собрался наконец, сделать альфа-версию так сказать, а для этого мне надо все скомпоновать в один файл, теоретически я все понял, что нужно сделать(Ваши объяснения на 2х страницах не прошли даром ), а вот на практике опять проблемы, я прописываю, чтобы подгружалась игра,вроде все нормально, но как только запускаю - выводит ошибку, что мол в файле который я подгружаю находяться глобальные переменные и функции, так вот вопрос, как их объявить в "главном файле" и где именно?
И еще один вопрос, мне надо, чтобы воспроизводился файл:intro.mpg как правильно об этом сказать Блитцу? )
(Offline)
 
Ответить с цитированием
Старый 13.10.2005, 18:30   #21
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
на счет видео (цитата из старого форума):
Видео проигрывается следующим обрзом:

;устанавливаем графический режим и выставляем текущим невидимый банк памяти
Graphics 640,480
SetBuffer BackBuffer()

;грузим наш фильм (путь ессно можно указать и без диска)
movie=OpenMovie("1.avi")

;запускаем цикл до нажатия ESC 
Repeat

;выводим очередной кадр нашего видео
DrawMovie movie,100,100,MovieWidth(movie),MovieHeight(movie)

;переключаем банки видеопамяти, чтоб увидеть что туда нарисовала DrawMovie
Flip

Until KeyHit(1)

;закрываем видео 
CloseMovie (movie)

;конец программы
end
некоторые замечания:

В функцию DrawMovie передаются пять параметров:
1. Идентификатор фильма (возвращается функцией OpenMovie)
2. X Координата левого верхнего угла просматриваемого видео
3. Y Координата левого верхнего угла просматриваемого видео
4. Ширина видео, можно установить в ручную тогда оно будет сжато или растянуто или-же можно использовать функцию MovieWidth для определения ширины видео.
5. Высота видео, точно так-же как и в ширине только функция соответственно по другому называется MovieHeight

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

что насчет меню, то попробуй выложить свои наработки, мы к сожалению не можем представить что там и как не видя кода...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 13.10.2005, 20:42   #22
axel186
Знающий
 
Регистрация: 07.09.2005
Сообщений: 238
Написано 2 полезных сообщений
(для 2 пользователей)
ТО Dizels

посмотрел скиношты на вашем сайте форсинг, понравилось, давай скорее альфу выкладывай )
(Offline)
 
Ответить с цитированием
Старый 13.10.2005, 23:38   #23
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
To SubZer0: написал письмо на e-mail, надеюсь ответишь.
To axel186: спасибо за проявленный интерес!Скоро должен буду выложить!
(Offline)
 
Ответить с цитированием
Старый 15.10.2005, 04:18   #24
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Originally posted by Dizels@Oct 13 2005, 09:38 PM
To SubZer0: написал письмо на e-mail.....
Да, получил я письмо... посидел... посмотрел... подумал...
тут надо наверное весь код переписывать...

тут нужно соблюдать несколько правил:

1. Внутри функции нельзя определить функцию, пусть тебе любители функций и ненавистники ГОТО, говорят что что угодно, но здесь это не ООП. Здесь все функции должны лежать в главном файле.

2. Внутри функции нельзя определить глобальную переменную, все глобальные переменные должны быть объявлены в главном файле.

3. Команда Graphics3D очищает мир полностью, удаляет все загруженные объекты и картинки (текстуры)...

__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 08.11.2005, 11:53   #25
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
ОК, с меню я вроде разобрался, спасибо, а вот с проигрыванием заставки - проблемы - пишет Function not found в строке:
movie=OpenMovie("1.mpeg")
Что делать?
(Offline)
 
Ответить с цитированием
Старый 08.11.2005, 18:50   #26
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Originally posted by Dizels@Nov 8 2005, 10:53 AM
ОК, с меню я вроде разобрался, спасибо, а вот с проигрыванием заставки - проблемы - пишет Function not found в строке:
movie=OpenMovie("1.mpeg")
Что делать?
Возможно ( вероятно даже) у тебя старая версия Blitz.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.11.2005, 19:18   #27
jimon
 
Сообщений: n/a
или блиц иногда так лагает - перезапусти камп
или лагает visual ide - переделай файл комманд
или protean тоже так лагет
 
Ответить с цитированием
Старый 08.11.2005, 21:25   #28
Dizels
Нуждающийся
 
Регистрация: 18.09.2005
Сообщений: 58
Написано 0 полезных сообщений
(для 0 пользователей)
IDE V1.66 - Linker V1.64 - Runtime V1.66

C нее можно запустить?У меня другой нет!но вроде и эта не плохо работает и меня пока устраивает, есть еще обновлениее до 1,88 но оно после переустановки системы не хочет запускаться, ошибку выбает
(Offline)
 
Ответить с цитированием
Старый 08.11.2005, 22:08   #29
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Originally posted by Dizels@Nov 8 2005, 08:25 PM
IDE V1.66 - Linker V1.64 - Runtime V1.66

C нее можно запустить?У меня другой нет!но вроде и эта не плохо работает и меня пока устраивает, есть еще обновлениее до 1,88 но оно после переустановки системы не хочет запускаться, ошибку выбает
ОГО :o
вот это антиквариат. Обновляй.
Что интересно - хелп новый, а компилер старый, обычно, встречал наоборот.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.11.2005, 22:34   #30
alcosholik
 
Сообщений: n/a
Тут новая версия:
http://community.boolean.name/index.php?showtopic=149
 
Ответить с цитированием
Ответ


Опции темы

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

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, время: 21:24.


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