Инструкции по миграции для ct.js v2.0.
Инструкции по миграции для ct.js v2.0.
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
Изменения в свойстве «rotation» копий или «Мои копии вращаются как пропеллеры»
Раньше свойство «rotation» было прокси-свойством pixi.js с таким же именем, которое измерялось в радианах. Это было сделано для сохранения совместимости с старыми проектами, созданными до появления v1. Мы отказались от этого прокси, чтобы лучше соответствовать поведению pixi.js и устранить неожиданные несоответствия при работе как с ct.js, так и с объектами pixi.js.
В pixi.js есть встроенное свойство «angle», измеряемое в градусах:
- Вместо
this.rotation
используйтеthis.angle
. this.angle
вращается по часовой стрелке по сравнению с предыдущим значениемthis.rotation
, которое вращалось против часовой стрелки, поэтомуthis.angle = 90;
указывает нанизу, 180 — влево, 270 — вверх, 360 и 0 — вправо.
Типы теперь называются "Шаблоны"
Да.
Это то, что я, создатель ct.js, хотел изменить на протяжении уже примерно пяти лет. Большинство названий в ct.js были сделаны с плохим знанием английского языка, и вопреки внутренним свойств и нишевым вещам, таким как "инъекции кода" (которые должны называться "инъекциями кода"), "типы" - это то, что каждый пользователь ct.js ежедневно пишет.
Шаблоны - это лучшее слово для сущностей, из которых создаются копии ct.js, особенно при переводе ct.js на другие языки, и они также более нейтральны на языке. В конце концов, в ct.js всего шесть типов, и ни один из них не является старым типом ct.js.
"Шаблоны" также будут более логично звучать, когда ct.js будет поддерживать шаблоны на основе классов, отличные от простых анимационных спрайтов: идея состоит в том, чтобы позволить создавать кнопки, шаблоны панелей и использовать крутую штуку, как сплайновая террариум. Хотя все это придет позже, лучше сделать небольшие переходы сейчас - чтобы облегчить будущие миграции.
Как это влияет на вас и ваши проекты:
- Вам теперь нужно будет писать
ct.templates...
вместоct.types...
; - Ct.IDE заменит
ct.types
наct.templates
, когда вы откроете проект, созданный в предыдущих версиях ct.js, но есть еще изменения в APIct.templates
, перечисленные ниже.
ct.templates.exists
- Функция
ct.templates.exists(копия)
переименована вct.templates.valid(копия)
- Теперь функция
ct.templates.exists(тип_объекта)
проверяет наличие копий определенного имени в комнате (или в приложенных/представленных комнатах).
ct.templates.make
, ct.templates.copy
.
ct.templates.make
был удален, так как его никто не использовал.
Теперь есть два отдельных метода для создания копий:
Обратите внимание, что аргументы в ct.templates.copyIntoRoom(type, x, y, container, exts)
немного сдвинуты по сравнению с предыдущим методом ct.templates.copy
.
ct.templates.copyIntoRoom
выбросит ошибку, если container
не установлен. Разделение на два метода призвано сделать создание копий более надежным и исключить ситуации, когда, например, вы передаете ct.rooms.list['NonExistentRoomName'][0]
в качестве контейнера и получаете копию внутри основной комнаты без каких-либо предупреждений.
Функции ct.u.rotate
, ct.u.rotateRad
, ct.u.uiToGameCoord
и ct.u.gameToUiCoord
теперь возвращают объект PIXI.Point
вместо массивов.
Объект PIXI.Point
имеет свойства x
и y
, а также несколько полезных методов для манипуляции с ними.
Функции ct.camera.uiToGameCoord
, ct.camera.gameToUiCoord
и все функции ct.camera.get(XY)Corner
также используют эти методы, так как они на них полагаются.
ct.place
изменился, чтобы стать более эффективным и удобным в использовании
- Теперь
ct.place.occupied
,ct.place.free
работают как для копий, так и для плиток, поэтому вам больше не нужно добавлять дополнительную проверкуct.place.tile
. Кроме того, все функции отслеживания теперь также работают с плитками. - Аргумент «многочисленный» был удален из
ct.place.meet
иct.place.occupied
. Вместо этого теперь есть методыct.place.meetMultiple
иct.place.occupiedMultiple
, чтобы сделать код более читаемым. Вам может потребоваться переписать некоторые части кода, чтобы они работали с несколькими копиями снова. ct.place.tile
был переименован вct.place.tiles
, и к нему добавлен аргументcopies
.- Кроме того,
ct.place
теперь поддерживает и учитывает формы столкновений плиток. В настоящее время это мало полезно при использовании больших наборов плиток, но вы теперь можете иметь отдельные плитки круглой и другой формы!
См. новую документацию для ct.place
в вашем ct.js
.
По умолчанию ct.sound
теперь является катмодом. Обычно это не должно вызывать никаких проблем, но если у вас возникают ошибки ct.res
из-за отсутствия систем звуков, включите один из катмодов звука в настройках вашего проекта.
ct.mouse
и ct.touch
теперь являются устаревшими и заменены на ct.pointer
.
Это не вызывает немедленных проблем, но рекомендуется использовать модуль ct.pointer
в ваших будущих проектах. Он включает в себя функциональность как ct.mouse
, так и ct.touch
с знакомым API, а также поддерживает дополнительные функции, такие как чтение давления, положение перья/пальца и абстракцию над API Pointer Lock.