Проблема явно со скриптом

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Проблема явно со скриптом

Страницы: 1  новая тема

Автор Сообщение

мастер
Группа: Сообщество GM
Сообщений: 74
Добавлено: 04-02-2007 16:27
Проблема такова - все работало:сбиваешь все кирпичи на уровне, скрипт проверил что пусто и дает переход на следующий уровень. Счас, после внесения каких-то изменений все рухнуло: перехода на уровень нет. Проверка идет в контроллере пошагово.
примерно так
If check_ready()
then
play_sound;
sleep na 2000;
GoToNextRoom;
Exit this Event;

В чем может быть проблема? Вобще в чем может быть проблема при работе со скриптами?...

гроссмейстер
Группа: Сообщество GM
Сообщений: 173
Добавлено: 04-02-2007 17:10
Сложно сказать не видя исходника...
Скопируй код из скрипта сюда.
Тогда можно будет подумать.
Счас, после внесения каких-то изменений все рухнуло

Тем более, что не известно после каких изменений.

мастер
Группа: Сообщество GM
Сообщений: 74
Добавлено: 04-02-2007 20:00
Вот код - но тут врядли что-то не то...
{
if instance_exists(obj_brick1) return false;
if instance_exists(obj_brick2) return false;
if instance_exists(obj_brick3) return false;
if instance_exists(obj_brick4) return false;
if instance_exists(obj_brick5) return false;
if instance_exists(obj_bricksuper) return false;
if instance_exists(obj_bricksuper2) return false;
if instance_exists(obj_solid1) return false;
if instance_exists(obj_solid1x3) return false;
if instance_exists(obj_lipu4ka) return false;
if instance_exists(obj_brickminusspeed) return false;
if instance_exists(object24) return false;
if instance_exists(object25) return false;
if instance_exists(object26) return false;
if instance_exists(object27) return false;
if instance_exists(object28) return false;
if instance_exists(object29) return false;
if instance_exists(obj_bricklife) return false;
if instance_exists(obj_brickplusball) return false;
return true;
}

гроссмейстер
Группа: Сообщество GM
Сообщений: 173
Добавлено: 04-02-2007 20:11
после внесения каких-то изменений все рухнуло

Так ты в коде скрипта что-то менял или нет?
Если хочешь, вышли мне на damager-69@rambler.ru
исходник игры - там проще будет разобраться,
я исправлю что нужно и комментарии напишу.

гроссмейстер
Группа: Сообщество GM
Сообщений: 173
Добавлено: 04-02-2007 20:28

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

в скрипте не передавать false или true, а просто использовать
его, как хранилище кода.

Допустим скрипт имеет имя "script"

пишем в скрипте:

if instance_exists(obj_brick1) or
instance_exists(obj_brick2) or
instance_exists(obj_brick3) or
instance_exists(obj_brick4) or
instance_exists(obj_brick5) or
instance_exists(obj_bricksuper) or
instance_exists(obj_bricksuper2) or
instance_exists(obj_solid1) or
instance_exists(obj_solid1x3) or
instance_exists(obj_lipu4ka) or
instance_exists(obj_brickminusspeed) or
instance_exists(object24) or
instance_exists(object25) or
instance_exists(object26) or
instance_exists(object27) or
instance_exists(object28) or
instance_exists(object29) or
instance_exists(obj_bricklife) or
instance_exists(obj_brickplusball)
{
//можно вставить, действие, если нужно
}
else
{
//вставляем действие перехода на другой уровень
}


А в шаге вызываешь скрипт по имени: script(); и все.

Но можно сделать так, чтобы не проверять так много объектов, чтобы оптимизировать игру.
Для этого можно создать "пустой" объект и назначить его родителем к другим объектам,
которые ты щас проверяешь в скрипте.

Если не будет получаться - присылай исходник на damager-69@rambler.ru
Так как там значит другая проблема будет, и решить ее я смогу только с исходником.

мастер
Группа: Сообщество GM
Сообщений: 74
Добавлено: 04-02-2007 21:26
Спаисбо - поработаю

Дундук - не беспокоить!
Группа: Модераторы
Сообщений: 1435
Добавлено: 05-02-2007 07:52
Хм, а почему бы не использовать instance_number?

Кстати, скрипт можно заменить вот таким:
return not (instance_exists(obj_brick1) or instance_exists(obj_brick2) or instance_exists(obj_brick3) or instance_exists(obj_brick4) or instance_exists(obj_brick5) or instance_exists(obj_bricksuper) or instance_exists(obj_bricksuper2) or instance_exists(obj_solid1) or instance_exists(obj_solid1x3) or instance_exists(obj_lipu4ka) or instance_exists(obj_brickminusspeed) or instance_exists(object24) or instance_exists(object25) or instance_exists(object26) or instance_exists(object27) or instance_exists(object28) or instance_exists(object29) or instance_exists(obj_bricklife) or instance_exists(obj_brickplusball));

мастер
Группа: Сообщество GM
Сообщений: 74
Добавлено: 05-02-2007 16:51
Damager - послал тебе программу. Надеюсь дайдет. Посмотри пожалуйста...

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 05-02-2007 17:06
дуратцкий скрипт тисяча проверок

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

гроссмейстер
Группа: Сообщество GM
Сообщений: 173
Добавлено: 05-02-2007 20:44
дуратцкий скрипт тисяча проверок

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


Можно и так, но не вижу большой пользы для его игры

У него там кода мало - зато куча объектов drag-n-drop
(или как они там называются).
У него там об оптимизации речь не идет - только чтоб работало все сделано.

А твой вариант тоже применим. Но я уже свой отослал.
Можно в нем родительский объект вставить и только его проверять =)

мастер
Группа: Сообщество GM
Сообщений: 74
Добавлено: 05-02-2007 22:07
Спасибо!!!! Все работает!! И весит почему-то меньше...
Со следующего проекта срочно перехожу на полный код!!!

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Проблема явно со скриптом

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU