Сообщество скриптеров (Академия)

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад #33942 от James
Спасибо. Заработало.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #33944 от James
Помогите справиться с проблемой:

В scene_map в update у меня стоит:
Code:
if $game_variables[25]!=0 @ItmSpr.bitmap=Bitmap.new("Graphics/Pictures/ITEMS/item"+$game_variables[25].to_s(10)+".png") elsif @ItmSpr.bitmap!=nil @ItmSpr.bitmap.clear end
и
Code:
if Input.trigger?(Input::B) if $game_variables[25]>0 $game_variables[25]=0 @ItmSpr.bitmap.clear end …

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

Что делать?

_________________________________________________________________________________________
И ещё кое-что: Куда стоит перенести кусок
Code:
if $game_variables[25]!=0 @ItmSpr.bitmap=Bitmap.new("Graphics/Pictures/ITEMS/item"+$game_variables[25].to_s(10)+".png") elsif @ItmSpr.bitmap!=nil @ItmSpr.bitmap.clear end
Чтобы изображение создавалось только один раз - в противном случае это тормозит процесс игры.
Последнее редактирование: 15 года 10 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 10 мес. назад #33945 от Злодей
Э ! Ты тут не один!)))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад #33950 от James
Я без этих скриптов дему не могу закончить.)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #33952 от dark32
попробуй вместо @ItmSpr.bitmap.clear использовать @ItmSpr.bitmap.dispose

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 15 года 10 мес. назад пользователем dark32.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #33955 от James
Попробую. Сейчас это сделать проблематично:
Дабы избежать торможения, я перенёс кусок
Code:
if $game_variables[25]!=0 $ItmSpr.bitmap=Bitmap.new("Graphics/Pictures/ITEMS/item"+$game_variables[25].to_s(10)+".png") elsif $ItmSpr.bitmap!=nil $ItmSpr.bitmap.clear end
В initialize в Scene_Map (Сделал этот метод). По идее, это значит, что при Scene_map.new должна выполняться проверка и рисоваться картинка. Проверка выполняется (я проверял), но картинка почему-то не рисуется.
___________________________________________________
UPD:Если надо, могу написать весь код


Часть сообщения скрыта для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.


Как можно всё это упростить и исправить ошибки?
Последнее редактирование: 15 года 10 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #33960 от James
Перенёс строчку "$ItmSpr=Sprite.new" из main в Scene_menu. Вначале в initialize (никак не отразилось), потом в update. Это сработало, но игра опять тормозит.

P.S. А в меню это всё равно пропечатывается... Даже с bitmap.dispose
Последнее редактирование: 15 года 10 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 10 мес. назад #33971 от dark32
Ломай (dispose) картинку когда вызываешь меню. Перед заданием новой картинки спрайту ломай её. Не помещай создание картинки в update. А где кусок в котором ты меняешь вещь в игре, не в меню?

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад #33973 от James
Если у меня создание картинки не стоит в update, то она не появляется. В initialize она по идее рисуется, я проверял, но её мгновенно что-то очищает. Поэтому она отрисовывается постоянно, что снижает скорость. Проблему с отпечатыванием картинки в меню я пока решил накладыванием на это место чёрного квадратика - но он появляется немного раньше меню. Т.е. резко появляется в углу квадрат, а уже потом плавно чернеет всё остальное.

P.s. Я пока третий кусок не сделал ещё. Можешь что-нибудь посоветовать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 10 мес. назад #33974 от dark32
насчёт update, сделай проверку на существование картинки, если она существует то зачем её рисовать ещё раз.

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #33976 от James
Я думаю, что проблема с меню также может заключаться в том, что я ставлю рисование в update. Т.е., при вызове меню картинка очищается, но update рисует его заново. Или проблема может быть как-то связана с Graphics. Graphics.freeze или что-то в этом роде. Тем не менее, твой совет проверю.
_______________________________
И как сделать эту проверку? По крайней мере, если использовать if $ItmSpr.bitmap=nil, то он, во-первых, картинку не отрисовывает, а во-вторых выдаёт ошибку при повторном доступе к инвентарю. Если же использовать if $ItmSpr=nil, то ошибка появляется уже при загрузке карты.
Последнее редактирование: 15 года 10 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #33993 от James
Ура! Я сделал это! Я обнаружил ошибку, чёрт побери!

Честно признаться, я идиот. Я при создании спрайта не назначил ему z. Итого он создаётся на одном уровне с картой, и в следующий же кадр карта его перекрывает.

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

Теперь надо бы сделать "прокрутку" - смену предметов по шифту. Что можно посоветовать?

____________________________
Где хранится информация о количестве/наличии/отсутствии предметов в инвентаре?
Последнее редактирование: 15 года 10 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 10 мес. назад #33997 от dark32
Смотрим стандартные скрипты, а именно инвентарь. Если коментарии не были удалены, то там всё написано

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #34001 от James
Всё. Я закончил скрипт - он работает - переключает предметы. Могу выложить:

ВНИМАНИЕ: Спойлер!


Может, можно как-нибудь упростить?
Последнее редактирование: 15 года 10 мес. назад пользователем James.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 10 мес. назад #34003 от Злодей
поподробнее... что делает твой скрипт? В каком смысле переключает!?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 10 мес. назад - 15 года 10 мес. назад #34008 от dark32
Мой мозг категорически отказывается понимать зачем в скрипте loop.
Кажется допёр...
В принципе скрипт нормальный, можно конечно сделать по другому, но и этот хорошо сделан

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 15 года 10 мес. назад пользователем dark32.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Злодей
  • Автор темы
  • Не в сети
  • Заблокирован
  • Заблокирован
  • Настоящее звание: Прокуратор! Просто опечатка!
Больше
15 года 10 мес. назад #34012 от Злодей
поподробнее... что делает твой скрипт? В каком смысле переключает!?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад #34023 от James
У меня в инвентаре есть предметы. Выбирая какой-нибудь предмет я изменяю переменную 25 - она влияет на игру (напр. в эвенте прописать, если равно 2 (нож), то убить, если 4 (палка) - оглушить и т.п.). Причём для каждого предмета есть картинка. Этот скрипт переключает эти предметы - выбирается следующий из имеющихся (Или предыдущий). Если предмет включает коммон эвент, то предмет пропускается.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов Разработчик Писатель Писатель 2 место 2 место Победитель конкурса 3 место
Больше
15 года 10 мес. назад #34025 от James
Кстати, ещё кое что спросить: Мне надо, чтобы когда получил предмет, в углу его картинка замигала (Или просто появилась и исчезла). Как это можно реализовать?

Насколько я понимаю, это делается в Game_Party, в Gain_Item. В таком случае, как сделать паузу (скушать twix не предлагать)? Т.е. на секунду появилась картинка (пауза), исчезла (ещё пауза), снова появилась (и опять пауза), а потом вернулась картинка выбранного предмета. Меня интересует только как сделать эту паузу, чтобы в общем игра не останавливалась (можно было ходить и т.д.) - как сделать остальное, вроде бы, понятно (Если моё предположение о Game_Party верно)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Организатор конкурсов
Больше
15 года 10 мес. назад - 15 года 9 мес. назад #34026 от dark32
MOG в помощь

Часть сообщения скрыта для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.

Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 15 года 9 мес. назад пользователем dark32.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.149 секунд
Работает на Kunena форум