ВХ полна багов и неожиданостей.
Вид для печати
ВХ полна багов и неожиданостей.
В чём тут ошибка. Ошибку выдаёт на @background2.x = 550Цитата:
@background2 = Sprite.new
@background2 = Bitmap.new("Graphics/Title/Background")
@background2.x = 550
http://img-fotki.yandex.ru/get/4405/...628_12110cc2_L
у класса Bitmap нет координат. Должно быть так
PHP код:
@background2 = Sprite.new
@background2.bitmap = Bitmap.new("Graphics/Title/Background")
@background2.x = 550
Нашёл ошибку, не знаю, как я её допустил. чуть выше я написал правильно.
Спойлер оффоп:
Как изменять оттенок экрана в ВХ с помощью скриптов?
Почему в этом скрипте пишет ошибку на строке Game_Time::Second += 1Код:module Game_Time
Second = 0
Minute = 0
Hour = 0
Day = 0
end
class Scene_Map < Scene_Base
def update_Game_Time
if Game_Time::Second < 60
Game_Time::Second += 1
else
if Game_Time::Minute < 60
Game_Time::Second = 0
Game_Time::Minute += 1
else
if Game_Time::Hour < 24
Game_Time::Second = 0
Game_Time::Minute = 0
Game_Time::Hour += 1
else
Game_Time::Second = 0
Game_Time::Minute = 0
Game_Time::Hour = 0
Game_Time::Day += 1
end
end
end
p Game_Time::Second, Game_Time::Minute, Game_Time::Hour, Game_Time::Day
end
def update
super
update_Game_Time
$game_map.interpreter.update
$game_map.update
$game_player.update
$game_system.update
@spriteset.update
@message_window.update
unless $game_message.visible
update_transfer_player
update_encounter
update_call_menu
update_call_debug
update_scene_change
end
end
end
Либо я тупават, либо что то из двух...
Сейчас проверю
Проверил... я не туповат...
Причины ошибки:
1. Нельзя менять значение константы, которую определили ( warning: already initialized constant Const_name)
2. Нельзя переопределять значение константы ( constant re-assignment)
Используй глобальные переменные, хоть они и зло, но всё же без них бывает сложны
P.S. На самом деле значение констант в Руби менять можно... кому надо, те найдут в Вики
А почему тут ошибок не возникает
Цитата:
############################################
# Ставит точное значение шкале под номером #
# num на x. #
# Пример: #
# SetValue( 1, 50 ) ставит значение первой #
# шкале 50. #
############################################
def SetValue( num, x )
Gauge::Value[num] = x
if Gauge::Value[num] > Gauge::Max[num]
Gauge::Value[num] = Gauge::Max[num]
end
if Gauge::Value[num] < 0
Gauge::Value[num] = 0
end
end
############################################
# Увеличивает или у меньшает значение #
# шкалы под номером num на x. #
# Пример: #
# ChangeValue( 1, -50 ) уменьшит значение #
# первой шкалы на 50. #
############################################
def ChangeValue( num, x )
Gauge::Value[num] += x
if Gauge::Value[num] > Gauge::Max[num]
Gauge::Value[num] = Gauge::Max[num]
end
if Gauge::Value[num] < 0
Gauge::Value[num] = 0
end
end
Цитата:
##########################################
# Тут находяться настройки этого скрипта #
##########################################
module Gauge
#Название окна
Window = "Характеристики"
#Количество шкал (после увеличению количества, нужно изменять данные ниже
Number = 3
#Названия шкал
Name = []
Name[1] = "Герой:"
Name[2] = "Злодей:"
Name[3] = "Репутация:"
#Максимальные значения
Max = []
Max[1] = 1000
Max[2] = 1000
Max[3] = 100
#Изначальные значения
Value = []
Value[1] = 0
Value[2] = 0
Value[3] = 0
#Цвет шкал
Color = []
Color[1] = 22
Color[2] = 23
Color[3] = 24
end
Вот теперь я совсем глупый...
проверил - Руби дал добро на второй пример, на первый пример ругается...
Есть глупое предположение - массивы не константы, но это бред...
проверил... бред... но работает...
Не советую так время организовывать. Для хранения времени достаточно знать только секунды с начала игры, остальное легко считается
Скоро напишу как
примерно так
ts = 5*24*60*60+6*60*60+7*60+8 # 5day 6 hour 7 minutes 8 secundes
p day = ts / (24*60*60)
p hour = (ts - day*(24*60*60)) / (60*60)
p min = (ts % 3600 ) / 60
p sec = ts % 60
А там нет случайно, каких-нибудь ключевых слов, определяющих уровень доступа?
Ну или, может в этом случае нужно обязательно определить методы присвоения и т д.
А если очень хочется, создай класс без методов. :)