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

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

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

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

Ответ
 
Опции темы
Старый 02.05.2006, 21:50   #46
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
понял! Буду пробовать!) если что - напишу сюда)
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 11:43   #47
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Function fnMenuGame()
Repeat
mhit1= MouseHit(1) 
mhit2= MouseHit(2) 
EnterKey = KeyHit(28)

Delay 2

Text 0,320,"Проверка"

Flip
Until enterkey

End Function
Воткнул это в код, но цикл игры как бы продолжается, то есть например если включить ИИ, нажать esc
	If KeyHit(1) fnMenuGame()
это у меня в цикле игры
ТО ии, почему-то продолжает деятельность, да и бомба взорвется, хотя визуально все "останавливается, конечно
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 14:34   #48
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Вероятно все события у тебя происходят по времени - следовательно всё "просиженное" в меню время будет учтено и обработано сразу же после возврата в игру.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 14:51   #49
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
да! Мне SBJoker предложил сделать так:

В цикле:

If KeyHit(1) Then
      fnMenuGame
      time#=MilliSecs()-period#
End If
и все остановилось)
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 17:57   #50
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
при нажатии ескейп - ВЫХОДИ из цикла игры совсем !
а не пытайся внутри цикла меню запускать (это сделать можно - но тебе проще выйти)
__________________
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 19:51   #51
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
А как совмем выйти? Я же хочу потом еще продолжить игру...
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 19:52   #52
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
А как выйти совсем? Я же хочу еще и продолжить игру!
Это будет реально?
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 22:46   #53
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Елки палки.
ну элементарно же, переменную заведи и отслеживай состояние: зашел в меню из игры - одно значение. зашел не из игры - другое.
Другую переменную выхода из меню: возврат или начало новой игры.
Если ты такой фигни придумать сам не можешь - что дальше будет ?
__________________
(Offline)
 
Ответить с цитированием
Старый 07.05.2006, 22:50   #54
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
2tormoz:
причём тут это?
Его решение - запоминать состояние времени для необходимых объектов и восстанавливать его при выходе из меню.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.05.2006, 02:12   #55
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Кстати насчет переменных это идея...может они понадобятся?
А то у меня ошибка:

Function fnMenuGame()
ButtonReturn_to_game=LoadImage ("graphics\Return_to_game.png")
	Repeat
	Cls
	mhit1= MouseHit(1) 
	mhit2= MouseHit(2) 
	EnterKey = KeyHit(28)

DrawImage ButtonReturn_to_game ,300,100


Delay 2

If KeyHit(1)=1
	
ClearWorld()
	
	Graphics 640,480,16,2
	SetBuffer BackBuffer() 
	loadimages()
	fnmainmenu()
	End If

Flip
Until enterkey

End Function
Если из этого меню выйти в главное, а потом в игру, то дебаггер будет ругаться, что
DrawImage ButtonReturn_to_game ,300,100
Не сущесвует этого имеджа!

Хотя как видно из кода, я каждый раз при входе в функию, гружу этот имеждж...странно, да?
никто не знает, почему такой косяк? и как его исправить?
(Offline)
 
Ответить с цитированием
Старый 08.05.2006, 02:35   #56
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Графику инициализируй один раз !
До входа в меню:
.точка входа при смене разрешения
инит графика
. точка входа после основного цикла
лоад ресурсы меню
меню
освобождаем ресурсы меню

проверяем выход из менюпеременную)
если игра - грузим ресурсы игры
если возврат в игру - не грузим
если выход из игры то ЕНД
если меняли разрешение в меню то ставим флаг(переменную) и гоу на начало

основной цикл
игра
выход из цикла

возврат в точку меню


=========
Для нормального завершения при повторной инициализации графики создай функцию очистки типов и переменных (которые нужно очистить)
Delete Each MyType - очищает весь тип MyType
__________________
(Offline)
 
Ответить с цитированием
Старый 08.05.2006, 11:55   #57
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
2Tormoz!

наверное ты не совсем разобрался с принципом работы:

1. Инициализирует графику 640 на 480 (работает главное меню)
2. Выбираем одни из 3х режимов, пишем их в файл.
* Если нажали начать новую игру:
1. Удалить все 2D картинки (проваерял лично! Утечек нет!)
2) ClearWorld
3)Инициализирует графику
4)Вызвать функцию, где все объекты игры грузятся (там у меня 3 функции)
5) если нажали esc - начать игровое меню (ну это вы знаете из приведенного здесь кода)
* если вышли совсем, то (2 раза esc)
ClearWorld()
Graphics 640,480,16,2
SetBuffer BackBuffer()
loadimages() - те, которые касаются главного меню
fnmainmenu() - само меню

Но почему-то после такого "полного" выхода, при входе в игру сразу же сробатывает fnMenuGame(), и ругается, что не может нарисовать этот долбанный имедж Хотя по идеи он должен срабатывать по нажатии, esc, разумеется!
(Offline)
 
Ответить с цитированием
Старый 08.05.2006, 17:06   #58
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Делай как я написал - схема отлажена временем.
__________________
(Offline)
 
Ответить с цитированием
Старый 08.05.2006, 21:22   #59
Fant
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 623
Написано 4 полезных сообщений
(для 5 пользователей)
Но я не совсем понял как по вашей схеме делать!?

Как я могу 1 раз инициализировать графику, если в меню она 640 на 480, а в игре - опционально!
?
(Offline)
 
Ответить с цитированием
Старый 08.05.2006, 21:56   #60
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Думаю для самой игры надо сделать новое упрощенное меню дабы не менять разрешение экрана во время игры.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно узнать имя пункта меню который был выбран (Обычное/стандартные меню)? Richik Основной форум 5 25.05.2009 23:20
Меню... KeipL Основной форум 11 26.07.2008 22:02
Меню AndruXa Blitz3D 18 05.10.2007 21:44
Меню S2k Основной форум 1 31.08.2007 23:53


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


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