Перейти к основному содержанию

Инструкции по миграции для 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, но есть еще изменения в API ct.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 изменился, чтобы стать более эффективным и удобным в использовании

  1. Теперь ct.place.occupied, ct.place.free работают как для копий, так и для плиток, поэтому вам больше не нужно добавлять дополнительную проверку ct.place.tile. Кроме того, все функции отслеживания теперь также работают с плитками.
  2. Аргумент «многочисленный» был удален из ct.place.meet и ct.place.occupied. Вместо этого теперь есть методы ct.place.meetMultiple и ct.place.occupiedMultiple, чтобы сделать код более читаемым. Вам может потребоваться переписать некоторые части кода, чтобы они работали с несколькими копиями снова.
  3. ct.place.tile был переименован в ct.place.tiles, и к нему добавлен аргумент copies.
  4. Кроме того, 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.