Я программирую небольшую игру, основанную на RPG Fate. Когда кубики скатываются, я хочу заменить строку другой строкой, используя .replace
. Я могу заставить его работать в изолированной среде, но когда я пытаюсь вызвать функцию изнутри моей программы; это как если бы Обувь совершенно не осознавала этого.Почему не стоит работать в Ruby Shoes?
Вот простой пример того, как работает функция, которая корректно выполняет:
Shoes.app {
@push = button "Push me"
@note = para "Nothing pushed so far"
@push.click { @note.replace "Aha! Click!" }
}
А вот соответствующий код из моей игры:
$results = para "Roll results go here.", :align => "center",
:margin_bottom => 20, :margin_top => 8
@roll_button.click {
current_roll = Die.new
current_roll.roll
current_roll.display_dice
current_roll.tally
current_roll.calc_total_roll(1) #param = skill level
$shift = current_roll.calc_total_shift(2) #param = opposition
$results.replace "Actual results"
}
$results
блок находится в другой позиции в коде, чем блок @roll_button.click
, но я попытался переместить блок кликов во множество разных мест в коде, и это не повлияло, поэтому я не думаю, что он имеет значение. Благодарю.
* редактирование: Удалены ненужные «=» после $results.replace
Здравствуйте, добро пожаловать в SO. В интересах аккуратности я собираюсь голосовать, чтобы закрыть вопрос, потому что у него недостаточно информации для кого-либо, кроме вас, чтобы иметь возможность ответить на него. Но я рад, что вы получили свой код для работы - это здорово! Кроме того, спасибо за добавление ответа. –