Войти на сайт

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

ТЕМА: Метод blt

Метод blt 16 года 4 мес. назад #21880

  • Sedric
  • Sedric аватар
  • Вне сайта
  • Познающий
  • Сообщений: 10
У меня странная проблема в скрипте при вызове метода blt. Сразу предупрежу, что это вообще первое, что я пишу на Ruby.
Скрипт выглядит так:
class Dialog_Pic   Window_Base
  def initialize(pic)
    super(0,300,640,180)
    @pic=Bitmap.new(pic)
    @rect=Rect.new(0,0,@pic.width,@pic.height)
  end
 
  def update
    self.contents.blt(0,0,@pic,Rect.new(0,0,@pic.width,@pic.height))
    self.contents.font.name= Arial 
    self.contents.font.size=16
  end
 
end

Maker сообщает, что метод blt не определен для класса nilClass. Что странно - я так понимаю, что он не смог даже определить, для какого класса вызван метод.
В чем тут может быть дело?
Администратор запретил публиковать записи гостям.

Метод blt 16 года 4 мес. назад #21931

  • Warrior
  • Warrior аватар
  • Вне сайта
  • Путник
  • Сообщений: 3
Sedric, само по себе свойство contents класса Window равно nil, поэтому, до вызова .blt нужно присвоить свойству contents класс Bitmap:
self.contents = Bitmap.new(width - 32, height - 32)
т.к. это присваивание должно быть выполнено гарантированно перед любым обращением к contents, удобнее всего его будет сделать в методе initialize
Администратор запретил публиковать записи гостям.

Метод blt 16 года 4 мес. назад #21938

  • Sedric
  • Sedric аватар
  • Вне сайта
  • Познающий
  • Сообщений: 10
Warrior, большое спасибо! Действительно, заработало. :)
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.218 секунд