Войти на сайт

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

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

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

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

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

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

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

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

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

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

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

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

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • Даритель СтимкеяОраторВетеранПрограммист RubyПрограммист JavaScript
Все. Проверил, дополнил.
Вобщем, количество энергии хранится в переменной из списка.
Номер переменной задается свойством @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

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