Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Скриптинг урок 1, Leon перевод by gromdron

Скриптинг урок 1, Leon перевод by gromdron 17 года 7 мес. назад #4482

  • gromdron
  • gromdron аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 512
  • Спасибо получено: 6
  • Учитель
Ок, большинство программ обучающих скриптингу или скриптописанию,изучающего материал написаны как учебник, и запутывают большинство людей. Этоттуториал совсем непохож на них. Я расскажу все, что должен знать скриптер и даже буду пдробно уходить в нкоторые темы, но все это будет происходить по моей методике.

В первой главе мы будем проходить основу скриптинга и некоторые другие темы:
- Окна
- Рисунок в окне
- Основные функции управляющие окном
- Что такое методы, классы, и супер классы.

Описание руби: обьект ориентирует программа.
Определение Леона: игра в роли Бога , управляя знаками *$ ^ создовать программу. (Не волнуйтесь! Это легко!)

Дейтвительно ли большое различие определений? Нет. Я буду учить, как использовать ориентируемое программирование объекта , но своими словами...

В основном, все в скриптинге руби должно быть определено, прежде чем вы будете работать. Хорошо ... как я определяю что-нибудь? вы наверное задаете себе этот вопрос? Хороший вопрос, и очень легкий.
Если когда-то вы учились алгебре вы знаете что:
X = 7
X+3=10
Теперь я сделаю из этого скрипт. Давайте взьмем это в пример, я сделаю на скорую руку.

class Bogus
def initialize
  @your_knowledge = 0
end
 
def your_knowledge_of_ruby
  @chapter_read = 1
  @your_knowledge += @chapter_read
end
end

Хорошо, признаки здесь могут казаться немного разными, но это - в основном однои то же. Вместо этого компьютеры отличимы от нас. Признаки здесь весьма просты:

class - означает id названия скрипта.
def - это, определяет метод в пределах скрипта.
Символ @ перед your_knowledge означает, что это - переменная.
Я думаю вы знаете что означает = . Это устаовка переменной в число.
И + = означает добовление числа\переменной к числу\переменной.

Теперь, когда есть демонстрация того, как Руби должен определить вещи прежде, чем они могут использоваться, давайте пойдем дальше к фактическому определению вещей, и структуры скрипта окна/сцены BASIC.

Ваш скрипт окна/сцены Basic может быть подомен CMS. Ах ... CMS... стандартный бок обучающей прораммы по скриптингу на первых уроках. Приличная CMS (не любят в RmXP) берет значние больше чем задание. Она также требует задание, как покзывая какртинки, добовляя информацию и т.д. Об этомбудет расказано позже, но поа вернемся к скрипту

Мы фактически начнем с 1 скрипта окна со сценой. Это может показаться нудным, но каждый большой скрипт начинается с маленького, нудного шага...
Комбинация окна/сцены будет показывать окно статуса героя. Основа это понимать как выводить все на экран.

Это не сложно.
Windows имеет 3 супер класса:
Window_Base - окно выводящее все на экран. Без индекса.
Window_Selectable - выбираемое окно с индексом.
Window_Command информации ничьи -супер класс который позволяет различные особенности чем Window_Selectable, типа колонок и дополнительных рядов. Супер класс- класс призывал в другом классе, чтобы вывести кроме того информацию. Вот - основная установка:
class Window_Name   Window_Type
def initialize
  super(x, y, lx, ly)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $defaultfonttype
  self.contents.font.size = $defaultfontsize
end
end

Довайте рассотрим данный скрипт.
Линия 1:
class Window_Name   Window_Type
Каждый скрипт должен быть определен как класс с названием. Это было сделано в 1 линии.
Теперь
Window_Type
это средство призыва супер класса.
Линия 2:
def initialize
Определяет метод инициализации. Инициализация означает, что это настраивает все в том окне. Переменные, определения и т.д. В этом случае, это определяет следующие линии:
Линия 3:
super(x, y, lx, ly)
super определяет строку и вызывет супер переменную 1. (x, y, lx, ly) - измерения окна. Первые два - местоположение окна, вторые два - стороны окна, в этом запросе: (положение справа0, положение 0 внизу, ширина окна, высота окна) Неправда ли просто?
Линия 4:
self.contents = Bitmap.new(width - 32, height - 32)
это идентифицирует то, чему self.contents является. Сам только означает окно (в этом случае).
содержание - то, что - в окне. В этом случае, это называет новый Битовый массив. (Bitmap.new соответственно), теперь, ширина - 32 и высота - 32. содержание окна будет иметь 16 x 16 границами все вокруг внутренней части границы окна. Все это учитывая границу!
Линии 5 и 6:
self.contents.font.name = $defaultfonttype 
self.contents.font.size = $defaultfontsize
self.contents вы должны знать то что является этим окном!
.font.name изменяет название,
.font.size изменяет размер. Устанавливая их равняются переменной в Главном, это будет стандартизировано с другими окнами в игре.
Линии 7 и 8:
end
end
Если вы делаете что-то товы должны закончить это. Вот тогда-то и используется end.

Мы идентифицировали окно. Хорошо. Что дальше? А дальше зависит от окна. В нашем случае, давайте добавим кое-что новое. Между линиями 6 и 7, вставьте слово refresh, у нас получиться нечто такое:
class Window_Name   Window_Type
def initialize
  super(x, y, lx, ly)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $defaultfonttype
  self.contents.font.size = $defaultfontsize
  refresh
end
end

Теперь, если Вы задаетесь вопросом, это слово делает. Хорошо! Я поместил его туда по 2 причинам.
1: я поместил слово в эту локацию до того как задание выполниться потому что слово очищают строку
2: таким образом это вызывает новый метод. (методы должны быть определены).

Куда поместить новый метод? Перед окончанием класса. Так что мы должны вывести в этом окне? Пержде чем вывести что-нибудь надо сначало определить параметры окна. Под этим подразумевается (x, y, lx, ly). Давайте сделаем окно на весь экран. Что-бы сделать это вы должны установить окно в 0, 0 и сделать окно 640 x 480. Вы конечно можете знать как это сделать, но все же давайте ассмотрим это.

Это будет выглядеть так (0, 0, 640, 480). Помните почему? Отлично, потому что x = положение правого верхнего и ниженего углов, y = положение нижнего верхнего левых углов, lx - длинна слева направо, а ly - высота сверх до низу. Это даст намокно в полный экран. Эли вы проверите скрипт то он выдаст ошибку: неопределенная местная переменная или метод reresh ..
Давайте сделаем изменение в скрпте. Он будет похож на тот что мы уже писали. Фактически они одинаковы.
class Window_Name   Window_Base
def initialize
  super(x, y, lx, ly)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $defaultfonttype
  self.contents.font.size = $defaultfontsize
  refresh
end
end

Видите изменения? Единственное различие - супер класс. Это изменение от поддельного до рельного. От этого будет польза, но у нас еще есть нерешенная ошибка с refresh ?
Это может показаться сложным по изучению, но легким в установке. Давайте определим refresh как переменную или метод. Давате определим как метод, потому что вы еще незнаете про переменные.

Это просто:
def refresh
self.contents.clear
self.contents.draw_text(0, 0, 600, 32, “Это тест выших скриптовых способностей.self.contents.draw_text(0, 32, 600, 32, “Очевидно вы узнали что-то новое!end

Если вы незнаете куда это встявлять, то специально для вас я выведу скрипт который у нас должен получиться:
class Window_Name   Window_Base
def initialize
  super(0, 0, 640, 480)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = $defaultfonttype
  self.contents.font.size = $defaultfontsize
  refresh
end
 
def refresh
  self.contents.clear
  self.contents.draw_text(0, 0, 600, 32, “Это тест выших скриптовых способностей.self.contents.draw_text(0, 32, 600, 32, “Очевидно вы узнали что-то новое!end
end

Теперь я отвечу на вопрос почему же все-таки там поставил этот метод, а ответ будет такой: вы неможете определить что-то из класса. Вы должны знать, что к методу вы должны обращаться чтобы он выполнил. Если бы вы удалили слово refresh из метода инициализации, окно было бы пустым.
Теперь, в случае, использования команды Call Script , напечатайте это: Window_Name.new и скрипт должен работать! Но он будет работать несколько секунд, о том как заставить его работать долго я расскажу в слдующей главе.

Coming soon...(Продолжение следует)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Yros, Syrf

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #4926

  • Lokan
  • Lokan аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 912
О-о-о наконец то выложили урок скриптенга...я уже и ненадеялся
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #4935

  • Rolf
  • Rolf аватар
Спасибо.
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #4964

  • gromdron
  • gromdron аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 512
  • Спасибо получено: 6
  • Учитель
Нашелошибку в туториале. Уже исправил.

В линии 1 при обьяснении было написано
lass Window_Name Window_Type
а надо:
class Window_Name Window_Type
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #5436

  • gromdron
  • gromdron аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 512
  • Спасибо получено: 6
  • Учитель
Вообще Леон никогда не писал туториалов для новичков. Он пишет свои туториалы для тех кто знает основы програмирования или rgss. А вообще я подумываю создать толковый учебник по RGSS. Если хочешь можешь приступить к его созданию.
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #5437

  • HoF
  • HoF аватар
Ну, я говорил, что не до конца знаю РГСС. Но чем-нибудь наверно смогу помочь.
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #6522

  • Preston
  • Preston аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 45
  • Спасибо получено: 2
  • Учитель
А почему бы не перевести введение в RGSS от Александра Дюбе?
Одерживая над самим собой крохотные победы, с трудом избегаешь больших поражений.
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #6528

  • Rolf
  • Rolf аватар
Хороший урок для новичка тоже сойдет.
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #6555

  • gromdron
  • gromdron аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 512
  • Спасибо получено: 6
  • Учитель
Потому что у меня нет этого введения. Поэтому я его и неперевожу. Тем более Мне всякие Александры ненравяться. Куда приятнее читать уториал от людей чьи скрипты мы используем.

PS Такой же пример можно привести даже на эстраде, ты же небудешь слешать песни от Шалды-Булды, зная что в этот момент будет идти концерт твоей любимой группы.
Администратор запретил публиковать записи гостям.

Скриптинг урок 1, Leon перевод by gromdron 17 года 6 мес. назад #6628

  • Preston
  • Preston аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 45
  • Спасибо получено: 2
  • Учитель
Dube Alex не такой уж безызвестный. Он как никак админ криэйшин асилум и у него тонна скриптов которые он сам лично написал.
P.S. Днём ии вечером постараюсь выложить перевод первой главы.
Одерживая над самим собой крохотные победы, с трудом избегаешь больших поражений.
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.607 секунд