Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Рунная магия: Делаем показ цифр на экране

Рунная магия: Делаем показ цифр на экране 7 мес. 3 нед. назад #118956

  • peter8031983
  • peter8031983 аватар
  • Вне сайта
  • Просветлённый
  • Добро-вещь относительная.
  • Сообщений: 464
  • Спасибо получено: 650
  • УчительПроект года 3 место2 место 3 место ГотвРазработчикПроект месяца 1 место1 место в ГотвПроект месяца 2 местоПроект месяца 3 местоКоммерсант
Доброго времени суток, дамы и господа мукеристы.

Сегодня я научу вас как показывать цифры на экране без всяких там дополнительных скриптов или плагинов.

Ну не то что бы совсем без. Я делаю смешанные механики на ивентах, но с использованием строчек кода.
Потому и называю всё это дело Рунной магией. :cheer:

Мне нужна стандартная команда Вызвать скрипт и всего три строчки кода на показ, перемещение и удаление картинки... Ну и как кодом забить переменную.

Показать картинку
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Двигать картинку
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Удалить картинку соответственно:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


И переменная
$game_variables[n]


Всё эти можно найти здесь. И даже больше.
rpgmaker.su/f32/%5Bvx-ace%5D-Простые-скр...ight=простые+скрипты


Погнали.
Для начала «нарисуем» сами цифры и кинем в папку Pictures. Я нарисовал такие вот крупноватые на скорую руку.
Вы можете нарисовать, скопировать или взять откуда угодно и как угодно.

nom_1.png




Теперь нам нужно разбить цифру, которую мы хотим показать, на составляющие. Единицы, десятые, сотые и так далее. В примере до тысячных. Пока достаточно.
Я сделал это без скриптов. Ручками.
Смотрим Общее событие 1

OS1.png


В данном случае переменная 1 это и есть наша цифра для показа. Сделано специально чтобы способ был универсальным, а не завязан на какой-нибудь конкретной цифре.

Потом нам нужно понимать какую картинку для какой цифры показывать.
Делаем это в Общем 2. Возможно есть способ проще скриптом прибавить к nom_ цифру, но я его не знаю и мне так ручками проще.
Смотрим Общее событие 2

OS2.png


Ну теперь лепим сам показ цифр.
Добавляем переменную 9(№картинки) и 10(между бкувами).
Переменная 9 нужна чтобы не запутаться сколько картинок под какими номерами мы показали. Ставлю её от 50 по умолчанию. Можно поставить меньше если вдруг вы захотите показать больше 50 картинок.
Переменная 10 определяет расстояние между цифрами. Если она будет отрицательная, то цифры будут показываться справа налево.
Так же добавляем переменную 11 и 12, х и у положения первой картинки соответственно.
Можно добавить переменные для Зума, но это уже по желанию.

Всё. Собираем Общее событие 3 «Показать цифры»
Смотрим Общее событие 3

OS3.png



Теперь собираем это в рабочую конструкцию Общее событие 4(Комплект)
По сути это опционально, но я люблю такие вот комплектики.

Примечание 1: Всегда собирайте готовые конструкции из нескольких общих в одно.
Понятно, удобно, эффективно. B)

Ну и теперь собираем Общее событие 5. Пусть называется Показ заданной цифры. Смотри примечание 1
Смотрим Общее событие 5

OS5.png


ГОТОВО.
Можно открывать проект-пример, подойти к Скелету и смотреть что получилось.


Усложняем задачу!
Теперь я хочу показать всплывающие цифры.

Для начала делаю Общее событие 7 как шаблон показа ХП игрока.
Далее копируем Общее событие 3 и добавляем несколько строк для перемещения картинки.
screen.pictures[$game_variables[9]].
move(0, $game_variables[11], $game_variables[12]-50, 100, 100, 0, 0, 60)

OS6.png


Соответственно $game_variables[12]-50 — это наш У и цифра улетит на 50 пикселей вверх.
Я сделал на примере Урона игроку.
Грубо, но всё работает и циферки плывут.)

OS7.png


Примечание 2: Величайшая глупость думать, что худ на тот же ХП нужно немедленно пихать в какое-нибудь параллельное. Чаще всего достаточно его пихать общим событием после каждого изменения этого самого ХП. У меня в примере с шипами нет никаких параллельных.

На этом всё. Пользуйтесь на здоровье.

Скачать проект-пример здесь.
yadi.sk/d/6oc2LzaHC4Ulxg
Пример может не запуститься без РТП. Скачайте отсюда, установите один раз и больше не вспоминайте про это.
www.rpgmakerweb.com/run-time-package

Пы.Сы.
Это пример для Аси.
Но его так же можно адаптировать под МВ. Просто найдите здесь аналоги скриптовых команд из урока.
docs.google.com/spreadsheets/d/1-Oa0cRGp...etnvh7OHs/edit#gid=0

Пы.Сы.2
В качестве бонуса в примере есть сундук с золотом.
Последнее редактирование: 7 мес. 3 нед. назад от peter8031983.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, NettySvit, yuryol, Cosmocat, Kirillkrm, Alx_Yago, RobotD, Reynor

Рунная магия: Делаем показ цифр на экране 7 мес. 3 нед. назад #118985

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1538
  • Спасибо получено: 2387
  • Победитель конкурсаКомпозиторУчительОрганизатор конкурсов1 место в Готв3 место Готв2 место Оратор
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


выглядит конечно очень громоздко и страшно, но для новичка будет полезно по нескольким причинам:

1) все структурированно, последовательно, довольно топорно, а потому понятно. Было бы круче каждый шаг по пунктикам, но благодаря картинкам все в голове укладывается

2) алгоритмы нахождения десятков, единиц, сотен много где испоользуется, а потому тоже новичок благодаря уроку поймет

несколько замечаний:

1) новичок,который повторяет урок, замучается событиями совершать действия с переменными. Раз уж ты используешь в скриптах события, то действия с переменными на 1 и 2 скриншоте можно было также написать скриптом, тем более $game_variables ты уже упомянул, типа:
$game_variables[2] = $game_variables[1]

2) еще одна проблема - если человек уже где-то использовал данный подход, и переносит подобный "ивентоплагин" в другой свой проект, но в том проекте эти переменные заняты, то ему придется лезть в каждое событие и переделывать. Опять же запись через $game_variables помогло бы избавиться от многих промежуточных переменных

3) Второй скрин можно было заменить простой строчкой (или как там в руби делается конкатенация), даже "ифы" не надо было бы изучать
$game_variables[8] = "nom_#{$game_variables[7]}"

4) "Я делаю смешанные механики на ивентах, но с использованием строчек кода. Потому и называю всё это дело Рунной магией. :cheer:" - Демий это делал намного раньше, но не помню как он это называл(
Последнее редактирование: 7 мес. 3 нед. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Рунная магия: Делаем показ цифр на экране 7 мес. 3 нед. назад #118993

  • peter8031983
  • peter8031983 аватар
  • Вне сайта
  • Просветлённый
  • Добро-вещь относительная.
  • Сообщений: 464
  • Спасибо получено: 650
  • УчительПроект года 3 место2 место 3 место ГотвРазработчикПроект месяца 1 место1 место в ГотвПроект месяца 2 местоПроект месяца 3 местоКоммерсант
yuryol пишет:
выглядит конечно очень громоздко и страшно, но для новичка будет полезно по нескольким причинам:

1) все структурированно, последовательно, довольно топорно, а потому понятно. Было бы круче каждый шаг по пунктикам, но благодаря картинкам все в голове укладывается

2) алгоритмы нахождения десятков, единиц, сотен много где испоользуется, а потому тоже новичок благодаря уроку поймет
Спасибо.
Мне тупо не хватило терпения расписывать по пунктам.

несколько замечаний:

1) новичок,который повторяет урок, замучается событиями совершать действия с переменными. Раз уж ты используешь в скриптах события, то действия с переменными на 1 и 2 скриншоте можно было также написать скриптом, тем более $game_variables ты уже упомянул, типа:
$game_variables[2] = $game_variables[1]
Много раз видел от тебя такой совет, но я вот в упор не понимаю каким местом проще писать эти громоздкие коды, а не просто тыкнуть пару раз в раскрывающийся список...
Я бы это отнёс к вредным советам больше.
Ну и плюс это и сделано без скриптов чтобы показать, что это можно без скриптов. Как в принципе ты отметил выше.
2) еще одна проблема - если человек уже где-то использовал данный подход, и переносит подобный "ивентоплагин" в другой свой проект, но в том проекте эти переменные заняты, то ему придется лезть в каждое событие и переделывать.
Откровенно говоря не понял замечания. Человек проделает это один раз. Потратит минут 10-15 максимум на заготовку и будет пользоваться всю разработку.
Я лично этот способ придумал для 2003го и переносил его много раз. Абсолютно ни с чем не мучаясь.
И в Асю перенёс, так же потратив чуть больше получаса наверное. Тупо потому что в Асе приходится юзать код вместо команды как в 2003м.
Урок как бы создан не для бездумного копирования, а чтобы человек понял и мог воссоздать.
Опять же запись через $game_variables помогло бы избавиться от многих промежуточных переменных
Чем? Всё те же "мучения", если переменные заняты. Только тут ещё и залезь, выдели, сотри, напиши по новой. Против зайди и выбери. Два клика.
Я ошибся в начале и в 10 условиях вместо nom написал num. Очень неудобно было править.
3) Второй скрин можно было заменить простой строчкой (или как там в руби делается конкатенация), даже "ифы" не надо было бы изучать
$game_variables[8] = "nom_#{$game_variables[7]}"
Ну я как бы сразу и написал, что есть способ проще, но я его не знаю. Чтобы таких замечаний не было. Но ты его всё-равно сделал...
За код спасибо.
4) "Я делаю смешанные механики на ивентах, но с использованием строчек кода. Потому и называю всё это дело Рунной магией. :cheer:" - Демий это делал намного раньше, но не помню как он это называл(
Я уверен, что кто-то где-то делал это ещё раньше, чем Демий. В какой-нить Японии.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Рунная магия: Делаем показ цифр на экране 7 мес. 3 нед. назад #118996

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1538
  • Спасибо получено: 2387
  • Победитель конкурсаКомпозиторУчительОрганизатор конкурсов1 место в Готв3 место Готв2 место Оратор
peter8031983 пишет:
$game_variables[2] = $game_variables[1]
Много раз видел от тебя такой совет, но я вот в упор не понимаю каким местом проще писать эти громоздкие коды, а не просто тыкнуть пару раз в раскрывающийся список...

зачем писать? копировать-вставить. тут преимущество, что даже в эйсе можно написать в вызове скрипта несколько строчек, а потому вместо того,чтоб сделать несколько кликов для изменения напрмиер четырех переменных можно:
  1. 1 раз жмем команду "скрипт"
  2. копируем код из одного проекта или с этого урока
  3. вставляем код
  4. жмем ок

В МВ же вообще можно вставлять скрипт неограниченной длины, а потому можно в один скрипт сделать изменения всех переменных
Чем? Всё те же "мучения", если переменные заняты. Только тут ещё и залезь, выдели, сотри, напиши по новой. Против зайди и выбери. Два клика.

да почему ж "те же".

посчитаем действия в ивентах на скрине про нахождение единиц,десятков,сотен,тысяч:
В единицах 5 раз делаем действия с переменными а потому надо 5 раз сделать 5 действий "открыть команду присвоения переменной - выбрать арифметическое действие - выбрать значение - нажать ок" - 25 действий.
Далее для десятков,сотен и тысяч у тебя для каждой по 6 раз изменить переменную, итого - 3 * 6 * 5 = 80 действий.
всего действий с того скрина за сотку

в скриптах
На том скрине для нахождения единиц у тебя будет одна строчка кода вместо пяти команд. Итого "открыть скрипт - копировать код - вставить - нажать ок" - четыре действия.
В десятках,сотнях,тысячах также по одной строчке вместо 6 действий у каждой.
Учитывая что все строчки можем соединить в один вызов скрипта то будет один вызов скрипта с вставкой туда кода

Итого: 4 действия вместо сотни
Опять же запись через $game_variables помогло бы избавиться от многих промежуточных переменных

Чем? Всё те же "мучения", если переменные заняты. Только тут ещё и залезь, выдели, сотри, напиши по новой. Против зайди и выбери. Два клика.
Я ошибся в начале и в 10 условиях вместо nom написал num. Очень неудобно было править.

переменная "промежуточная" тебе бы не понадобилась
"залезь - сотри - напиши" решается любым простеньким редактором кода. Скопировал код в редактор, нажал волшебную кнопочку для замены символов-фраз и все заменено. вставил обратно. буквально пара секунд. Если ты часто пишешь "скрипто-ивенты" то редактор кода стоит скачать и установить,благо даже в редакторах весом 20 мегов такие функции есть

поэтому первые два общих события перенесутся в новый проект буквально за пол минутки
Последнее редактирование: 7 мес. 3 нед. назад от yuryol.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Alx_Yago

Рунная магия: Делаем показ цифр на экране 7 мес. 3 нед. назад #119000

  • peter8031983
  • peter8031983 аватар
  • Вне сайта
  • Просветлённый
  • Добро-вещь относительная.
  • Сообщений: 464
  • Спасибо получено: 650
  • УчительПроект года 3 место2 место 3 место ГотвРазработчикПроект месяца 1 место1 место в ГотвПроект месяца 2 местоПроект месяца 3 местоКоммерсант
Всё что можно делать ивентами, я делаю ивентами. Что нельзя или гемморно я делаю кодом. Вот и всё.
То что ты написал мне совсем не проще. Я как бы давно мукерю.
Урок не о том, что проще, а что нет.
У тебя есть возможность и время написать свой урок что и как по ТВОЕМУ проще.
Дерзай.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy
Время создания страницы: 0.418 секунд