Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Отображение характеристик на экране во время игры.

Отображение характеристик на экране во время игры. 13 года 7 мес. назад #44052

  • Lorienn
  • Lorienn аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 65
  • Спасибо получено: 23
  • Разработчик
Здрасьте всем.
Вопрос у меня следующий: Необходимо отображать на экране значение переменной.
Например пока персонаж едет в гигантском шагающем роботе, в левом верхнем углу экрана отображались бы проценты оставшиеся в батарейке робота. Так вот каждые три шага один процентик тратился бы и это сразу же отражалось бы на циферках.
Или персонаж в лифте катается на большие расстояния, и где-то на экране скачут циферки показыающие сколько метров вглубь он уже спустился.

С помощью параллельного процесса можно заделать динамическое обновление переменной, но вот как выводить её значение на экран?
Администратор запретил публиковать записи гостям.

Отображение характеристик на экране во время игры. 13 года 7 мес. назад #44054

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Либо с помощью тупой картинки-полосочки, либо париться с нарисованными цифрами -на ивентах не советую.
Попроси чтоб скрипт написали.
Администратор запретил публиковать записи гостям.

Отображение характеристик на экране во время игры. 13 года 7 мес. назад #44055

  • Lorienn
  • Lorienn аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 65
  • Спасибо получено: 23
  • Разработчик
Я про скрипт и спрашиваю.
Оно просто обязано существовать, что-то типа: show.variableN at(x,y)
Когда себе домой попаду так начну хелп лопатить, а вдруг мне прямо счас прямо тут ответят. Здоровско будет.
Администратор запретил публиковать записи гостям.

Отображение характеристик на экране во время игры. 13 года 7 мес. назад #44057

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Скрипта такого нет.
Только если эта переменная будет показана в окне с сообщением (типа такие окна появляются,
когда вылетает ошибка).
Тогда есть команда text ток... я забыл какой нужен оператор... game.variables что ли....
Администратор запретил публиковать записи гостям.

Отображение характеристик на экране во время игры. 13 года 7 мес. назад #44061

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • Программист JavaScript ВетеранПрограммист RubyДаритель СтимкеяОратор
Все. Проверил, дополнил.
Вобщем, количество энергии хранится в переменной из списка.
Номер переменной задается свойством @variable_id, а @step_interval определяет интервал, в шагах, между
уменьшением значения энергии(т.е. чем больше значение - тем медленней уменьшается).

class Info_Window < Window_Base
  attr_reader :step_interval
  attr_reader :variable_id
 
  def initialize()
    super(32, 32, 160, 64) # здесь super(x, y, ширина, высота) для окошка
    @variable_id = 45 # номер перменной в списке
    @step_interval = 3 # интервал(в шагах) между уменьшением значения
    @old_val = $game_variables[@variable_id]
    @last_step = 0
    refresh()
  end
 
  def update()
    if((($game_party.steps % @step_interval) == 0) and 
    ($game_party.steps > @last_step))
      minus_value()
      @last_step = $game_party.steps
    end  
 
    if($game_variables[@variable_id] != @old_val)
      @old_val = $game_variables[@variable_id]
      refresh()
    end
  end
 
  def minus_value()
    if($game_variables[@variable_id] > 0)
      $game_variables[@variable_id] -= 1
    else
      print("Энергия закончилась!")
    end
  end
 
  def refresh()
    str = "Энергия: " + $game_variables[@variable_id].to_s # где myVar - имя переменной со значением
    win_width = str.size() * 7 + 32 # определяем ширину окошка, чтоб влезло
 
    if(win_width > 576) # на всякий случай, чтоб окошко за край не вылезло  
      self.width = 576  
    else
      self.width = win_width
    end
    self.contents = Bitmap.new(self.width - 32, self.height - 32)
    self.contents.font.size = 14
    self.contents.font.name = "Arial"
    self.contents.draw_text(0, 0, self.width - 32, 32, str)  
  end
end
И в Scene-map, метод main, вставить:
# после строчки @message_window = Window_Message.new
@info_win = Info_Window.new()
 
# после строчки Input.update
  if(@info_win != nil)
    @info_win.update()
  end

Возможно, можно сделать как-то проще. При написании использовались стандартные окошечки, в кач-ве примера.
Последнее редактирование: 13 года 7 мес. назад от Lekste. Причина: Подстроил под перменные из списка
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Lorienn
Время создания страницы: 0.177 секунд