Пауза и свет
Здравствуйте,ув. программисты,недавно начал знакомиться с Blitz3D,а точнее 4 дня как...Так вот,при "расработке своей первой "игры"" , возникла проблема.Не могу сделать меню и паузу.:dontknow: Так же непонятная проблема со светом , почему-то свет не падает на "пол" , в результате чего тот остается темным.:''((
А что бы не писать тут поэму,выкладываю исходник сего "шедевра".Буду очень благодарен , если кто-нибудь сможет помочь мне.Заранее спасибо :) Не получилось прикрепить файл,заливаю на rgost. Исходник |
Ответ: Пауза и свет
RotateEntity light,90,0,0
EntityFx plane,1 По поводу меню и паузы: http://forum.boolean.name/showthread.php?t=13890&page=2 http://forum.boolean.name/showthread...t=%EC%E5%ED%FE http://forum.boolean.name/showthread...t=%EC%E5%ED%FE |
Ответ: Пауза и свет
Помню сам на этом материале учился (твоя игра. Верней не совсем твоя)) )
|
Ответ: Пауза и свет
Спасибо большое,свет заработал.С меню буду разбираться.
Да,игра действительно не моя) Ну,точнее на половину)За то,за эти 4 дня , как родная мне стала :D |
Ответ: Пауза и свет
Нормально!
Только кубики другого цвета, тона нужно, а то при большой скорости и тряске "вслепую" уже играл. Потом модель красного сочного яблока прикрепи! (Или разных цветов с разными бонусами) Модель змейки попробуй анимированую сделать. (Сначала так подумал, чтобы ножками топала, но это уже ящер будет :) ) Можно ещё Terrain как пол сделать.. |
Ответ: Пауза и свет
Спасибо за совет,уже сам начал думать заменить "змейку" и перетянуть текстуры по новой.Еще куча плюх в разработке.бонусы там всякие и т.п. Хочу еще переделать подсчет жизней из текста в спрайт,или картинку.Как прогрессбар только наоборот,ну короче вы поняли)
|
Ответ: Пауза и свет
Динамическая камера (если не будет мешать при обзоре местности)
Код:
PointEntity cam,Player ; после этого места можешь дописать Код:
If KeyHit(208) TurnEntity Player,0,-180,0 |
Ответ: Пауза и свет
Это все хорошо,но я так и не нашел пример реализации паузы.Пробовал делать через WaitTimer , но не вышло. Есть идеи?
|
Ответ: Пауза и свет
Вот ButtonSystem:
http://rghost.ru/4714246 И некая попытка соединить в твою игру: http://rghost.ru/4714341 Что нужно доделать: создать новую кнопку (для GameScr=2) с названием "В Меню" 2St_AnGer, Ага я на Select-Case и сделал.. Проблема в UpdateWorld RenderWorld, написания Text-ов, ну и в конце Flip. Т.е. чтобы было видно меню и на заднике игра - нужно рендерить в каждом case. Фишка в чём, что нужно сначала игровую механику просчитать (движения игрока/врагов), потом рендер, в конце меню нарисовать и тексты, а потом Flip. В общем в примере я затерялся - Update и Render (из-за кнопочек) до расчётов написал. Надо это под конец Case переместить. |
Ответ: Пауза и свет
Делать всю игру в структуре Select-Case. Один case отвечает за меню, второй за игровой процесс, третий (допустим) за меню паузы. При нажатии на клавишу паузы уходить в третий case, в котором отрисовка мира продолжается, но действия никакие не происходят. Как то так. Самая простая реализация помоему.
|
Ответ: Пауза и свет
Спасибо,завтра буду разбираться :cool:
|
Ответ: Пауза и свет
Весьма примитивно и не гибко.
Обычно делают так : 1) Прописывают флаги состояний игры. 2) Формируется хук отрисовки / обновления и он же (хук) регистрируется в системе при запуске приложения. 3) Любое состояние управляется с помощью системы событий. Все это дело есть в БМаксе. В Б3Д надо делать самому ( хуки и события ). в конечном итоге управление состояниями сводится к такому виду : Код:
'Обьявление констант и хуков Смотри сорсы БМакса. Ничего сложного нет. =) |
Ответ: Пауза и свет
Цитата:
|
Ответ: Пауза и свет
Цитата:
PHP код:
|
Ответ: Пауза и свет
Цитата:
На самом деле твой метод ужасен. Зачем плодить отдельные классы на состояния? Init() и Destroy() для игрового состояния - это вообще бред. Во вторых при твоем подходе весьма затруднительно будет комбинировать стейты между собой, а тут все просто : CreateEvent(GAME_WORLD_DRAW_ONLY | GAME_PAUSE).Emit() - дали команду движку что приложение находится в паузе. А движок уже сам допиливает этот флаг ( рисовать но не обновлять мир + рисовать и обновлять меню паузы). флаг GAME_PAUSE - отвечает только за отрисовку потемневшего задника + обновление и отрисовку менюхи, а за застывший задний кадр отвечает впередиидущий флаг состояния. На то она и гибкость - что жестко ничего привязывать не надо. Если тебя испугал тот громозкий код, то там происходит всего-то - инициализация при запуске программы, зато главный цикл - 3 строчки кода. И мне не надо запоминать и где то хранить переменные стэйтов, а вместо этого просто комбинировать 6-7 основных стэйт-флагов. =) ЗЫ Во всех нормальных программах управление ядром осуществляется через события. |
Часовой пояс GMT +4, время: 18:12. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot