Войти на сайт

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

ТЕМА: Параметры методов и свойств?

Параметры методов и свойств? 6 года 1 мес. назад #106023

  • Zeromapping
  • Zeromapping аватар
  • Вне сайта
  • Путник
  • Сообщений: 2
  • Спасибо получено: 1
Возможно глупый вопрос, но все же. Прочитав(еще не до конца) переведенный справочник по XP наткнулся на описание методов и свойств классов. Принцип действия понятен, но не понятно в каком формате вбивать параметры некоторых методов и свойств.
Например метод sprite.flash(color, duration) или свойство sprite.color=?, в каком формате задавать данные параметры?

Параметры например свойства sprite.opacity (a.sprite.opacity=200) и так понятны, там одно значение или bitmap.height (b =a.bitmap.height)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Параметры методов и свойств? 6 года 1 мес. назад #106024

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2478
  • РазработчикПрограммист RubyДаритель Стимкея2 место ПаладинОраторПоддержка ФондаВетеранПроект месяца 3 местоЗа 2 место на конкурсе маппинга
По идее всё это должно быть описано в справке, но там не всегда полное и понятное описание. Поэтому, если у вас будут вопросы — смело спрашивайте тут

Zeromapping пишет:
Например метод sprite.flash(color, duration) или свойство sprite.color=?, в каком формате задавать данные параметры?
В параметры color нужно передавать объекты класса Color. Класс Color описан в справочнике в разделе «Документация по RGSS» → «Библиотека игры» → «Встроенные классы RGSS» → «Color (цвет)» (в англ. версии RGSS Reference Manual → Game Library → RGSS Built-in Classes → Color).

Создать объект класса Color можно так:
sprite.color = Color.new(64, 128, 255)
Где вместо 64 нужно вписать долю красного (от 0 до 255), 128 — долю синего, вместо 255 — долю зелёного. (Есть много инструментов, чтобы узнать доли красного, синего и зелёного в цвете. Например, можно использовать вот этот конвертор цветов: щёлкните на чёрный квадратик слева, выберите цвет, и в поле RGB появятся эти три значения.)

Четвёртым параметром также можно передать степень непрозрачности (0 — полностью прозрачный, 255 — полностью непрозрачный):
Color.new(64, 128, 255, 128)

duration задаёт число в числе кадров. Все действия в игре (анимации, команда «Пауза» и т.п.) считаются в кадрах. По умолчанию в RPG Maker XP считается, что кадр — 1/40 секунды, т.е. «40» будет значит «1 секунда». Собственно, это те же самые кадры, которые вводятся в команду событий «Пауза» (она же «Ждать»).

Число кадров в секунду можно изменить, поменяв Graphics.frame_rate (об этом см. «Документация по RGSS» → «Библиотека игры» → «Встроенные модули RGSS» → «Graphics (графика)» в документации).
Последнее редактирование: 6 года 1 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Cabbit, KageDesu, Zeromapping

Параметры методов и свойств? 6 года 1 мес. назад #106025

  • Zeromapping
  • Zeromapping аватар
  • Вне сайта
  • Путник
  • Сообщений: 2
  • Спасибо получено: 1
Ну с одним параметром в свойстве color понятно...но тут задается одно с свойство и заместокакой то переменной задается класс.
А в случае метода sprite.flash(color, duration) необходимо передавать sprite.flash(Color.new(64, 128, 255, 128), 40)?...хотя че спросил, уже проверил...но как то не понял как кадровка работает, сделал изменение цвета,но от изменения кадров ничего не поменялось
i = 0
loop do
  devil.flash(Color.new(i, 128, 255-i), 60)
  i += 1
  if i == 255
    i = 0
  end
  Graphics.update
end
хотя это уже чисто придирка к данному функционалу, со временем вкурю думаю)

скорость анимации самого флэша подогнал при помощи i +=, т.е. как понял duration сделан не для статики
i = 0
loop do
  devil.flash(Color.new(255, 255, 255, 255-i), 40)
  i += 15
  if i == 255
    i = 0
  end
  Graphics.update
end
Последнее редактирование: 6 года 1 мес. назад от Zeromapping.
Администратор запретил публиковать записи гостям.

Параметры методов и свойств? 6 года 1 мес. назад #106028

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2478
  • РазработчикПрограммист RubyДаритель Стимкея2 место ПаладинОраторПоддержка ФондаВетеранПроект месяца 3 местоЗа 2 место на конкурсе маппинга
Zeromapping пишет:
но как то не понял как кадровка работает, сделал изменение цвета,но от изменения кадров ничего не поменялось
flash только начинает изменение цвета. Само изменение цвета производится в методе update. Метод update нужно вызывать один раз за кадр. Вот пример:
# создайте пустой проект и замените код в Main на вот это:

devil = Sprite.new
devil.bitmap = RPG::Cache.battler("075-Devil01", 0)
 
devil.flash(Color.new(0, 128, 255), 60)
 
until Input.press?(Input::B)
  devil.update
  Input.update
  Graphics.update
end

Если вы будете вызывать flash на каждом кадре, то каждый новый flash будет отменять старый, а duration не будет учитываться.
Последнее редактирование: 6 года 1 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: yuryol, Cabbit, Zeromapping
Модераторы: NeKotZima
Время создания страницы: 0.392 секунд